Except that it is.<p>Programmers always have to deal with tradeoffs and maintenance.<p>They always need to have some kind of process.<p>They always need to use tools and naturally create them.<p>And the actual software design is part of the engineering also.<p>The most important part of software engineering in my mind mind are the error-correcting feedback loops. 100% of programmers use these, whether it's just thinking about their design and iterating on it, or using a compiler, debugger, tests, or user feedback, etc.<p>The idea of making the distinction between software engineering and programming is usually brought up to support some kind of cargo-cult belief about particular "best practices".<p>This isn't to say that we shouldn't study software engineering or have tools, processes, frameworks, etc.<p>But it seems that people get confused into thinking that the number and heft of frameworks, tools, tests and complex processes that you add into a programming task determines whether you are a "real engineer" or just a "programmer".<p>In reality, you cannot produce and maintain software effectively at all without using knowledge, skills, and tools that are in the software engineering domain.<p>And often using a lighter-weight process and tooling but with tight feedback loops with end users can be more effective than, for example, a complex set of tooling and processes that have long iterations.