These questions have a very deep and important meaning. They also are an occasion to make an attempt at defining the qualities of our jobs. On par with naming your variables correctly, defining what are the jobs and what they mean is important.
Here in Quebec, to be an engineer, that is to bear the title, you need proper training and you need to pay your due to the corporation that legislate the profession. The reason backing that is that engineer have a legal liability into what they build. They must take responsibility for their decision.
I don't believe that programming at large as attain this level yet. Perhaps hacking at Mars Rovers for the NASA approaches or is it, but in web dev I think we are far from that.
As for programmer and developers, I'd venture the following:
A programmer is someone that implement the big picture created by someone else. That doesn't deprive her of expertise or quality, she just works at a different level than an engineer.
A developer is a loose term to qualify "working in the field". It's used in every which way to mean: "Hey, this is the far-west, one of the few knowledge work field where you can learn by yourself and reach heights which are regulated and unattainable in other knowledge fields". I definitely am a developer.
The poor guy embodies all that prevents us from marching forward: "I learned about classes, I don't want to learn anymore, everybody knows that the rest is crap anyway! Right?"
If you read this, know that prototype-base programing pioneered the HotSpot and a lot of the JIT in your classical language's VM.
Oh and by the way, if your classes aren't object, does that mean that your language fails to qualify as OO? Maybe your classical language isn't OO after all.
I've done both and front-end work is definitelly harder. If you do RIA with a lot of ajax updates, need to keep state and handle events, it becomes even more complex.
Historically, backend work has always been a piece of cake for me: receive data, persist it, return updated data, start over. This is way simpler.
I've yet to encounter a project where the inverse will be true. End-Users are so ingenious!
Here in Quebec, to be an engineer, that is to bear the title, you need proper training and you need to pay your due to the corporation that legislate the profession. The reason backing that is that engineer have a legal liability into what they build. They must take responsibility for their decision.
I don't believe that programming at large as attain this level yet. Perhaps hacking at Mars Rovers for the NASA approaches or is it, but in web dev I think we are far from that.
As for programmer and developers, I'd venture the following:
A programmer is someone that implement the big picture created by someone else. That doesn't deprive her of expertise or quality, she just works at a different level than an engineer.
A developer is a loose term to qualify "working in the field". It's used in every which way to mean: "Hey, this is the far-west, one of the few knowledge work field where you can learn by yourself and reach heights which are regulated and unattainable in other knowledge fields". I definitely am a developer.
http://en.wikipedia.org/wiki/Nerd vs http://en.wikipedia.org/wiki/Geek. I'm not saying this is the only explanation - languages evolve - but it's an accepted definition and has an history.
Language exists for a reason, precise language denote precise thinking, what is not defined we should strive to define correctly.