I'd always classified a Programmer as someone who writes code to someone else's spec, and a Developer codes to their own spec
A Programmer is a specific role - write code to do exactly this. A Developer has a broader role - they're often also heavily involved with the BA side of things, overall architecture and DB design.
Developers tend to exist in smaller companies, and are replaced by more specific titles an the company grows. A startup may have a handful of Developers, whereas a larger company will have a team of BAs, a team of DBAs, another team of Architects and sometimes multiple teams of Programmers. In large companies like this, Programmer sits almost at the bottom of the IT food chain, just above Helpdesk
Agreed. In my experience, a programmer would usually work in a team lead by a developer. In banking tech (my domain), a programmer is usually a contracter or offshore. A developer would be a employee and would be onshore.
Largely because it is self-enforcing: most "Developers" don't like to refer to themselves as merely "Programmers", because programming is only a subset of what they actually do. People who just code have no problem referring to themselves as "Programmers".
You also see this reflected in the way companies communicate: companies for whom the people writing code are at the bottom of the food chain will commonly refer to them as "Programmers".
Basically, the term "Programmer" has over time become the IT-equivalent of "grunt".
In South Africa, the terms "junior developer", "developer" and "senior developer" are used in job ads/specs. I haven't seen the word "programmer" for a while here. Maybe here it's people who work with older technology (mainframes etc) who are called programmers, and people who work with modern technology are called developers.
Overall, I think this is a pointless discussion that gets resurrected by blog writers (or are they "authors") periodically, and doesn't add much to the field.
A Programmer is a specific role - write code to do exactly this. A Developer has a broader role - they're often also heavily involved with the BA side of things, overall architecture and DB design.
Developers tend to exist in smaller companies, and are replaced by more specific titles an the company grows. A startup may have a handful of Developers, whereas a larger company will have a team of BAs, a team of DBAs, another team of Architects and sometimes multiple teams of Programmers. In large companies like this, Programmer sits almost at the bottom of the IT food chain, just above Helpdesk
I don't think I've ever met a Computer Scientist