My post was ambiguous, but I didn't mean to say that engineers don't specialize. The difference is that an engineer's value lies in their understanding of a technical domain and skill in analysis and design, not the particular tools they use.
It's perfectly valid to describe oneself as a 'web developer' or 'systems programmer'. What bugs me is calling yourself a 'C++ programmer' or a 'Ruby hacker'. Emphasizing skill with a tool is the mark of a tradesman - it abets the industry dysfunction of viewing programmers as interchangeable resources who should be slotted into a project with minimal investment.
While I agree with everything you say, I think one has to accept that not only are many programmers tradesmen, but many of them are happy being tradesmen. I know people who won't consider any programming job where they won't be working on php based web sites, because that's all they know and they have no real interest in learning anything else. Those people are "php programmers" and can be slotted into great number of projects with minimal investment.
What is needed is not to get annoyed at these peoples existence or their approach to programming, but to find a way to differentiate between them and other types of programmers.
It's perfectly valid to describe oneself as a 'web developer' or 'systems programmer'. What bugs me is calling yourself a 'C++ programmer' or a 'Ruby hacker'. Emphasizing skill with a tool is the mark of a tradesman - it abets the industry dysfunction of viewing programmers as interchangeable resources who should be slotted into a project with minimal investment.