This discussion is backwards. Nobody inside of the software field cares. Job titles are given by HR and are designed to fit certain legal criteria. Inside the office, you do the work you were hired to do. If you’re an independent consultant or whatever, then call yourself whatever you want.
I mean, I’ve never heard software people debating what they’re called by other software people! In fact, they’re usually referred to by the work they do.
The terms you’re using, as well as “hacker” and “developer” and others, are how people OUTSIDE of this field think about us and refer to us.
At my last job, I was chatting with the CEO’s “secretary” (she’d bristle at that term!) and she asked me what I do there. I said I worked as a developer on the xyz project, and she replied, “Oh, you’re a coder. Cool. I wish I could do that!”
That’s how people see us who have no idea about anything we do. To them we’re just different shades of off-white paint.
You’re never going to hear me use the term “coder” to refer to another software developer. Or even “hacker”. These are terms that “outsiders” use and we just tolerate it. If you want to get into a 20-minute dissertation at a cocktail party about this topic with someone who’s clueless, great. Go for it. It’s a great way to kill time and bore the crap out of people. But spare those of us who make a living doing this stuff.
People have jobs to do, and some of those jobs are narrower than others. I think like an architect, but typically I’m given tasks that are far lower-level than that. Especially when I’m expected to noodle through undocumented code tracking down some obscure bug. If a “coder” writes this crap, then what do you call the people who spend most of their time fixing it?
It’s all a matter of perspective.