No, I think even though it was early in the morning I said what I wanted to say. We need professionals, not amateurs, in the programming biz. Whether they're professional engineers, artists or whatever, we need people who approach the problem seriously, do the best work they can and make sure to finish the odds and ends that make good code. There's far too much "slap it together" code dragging down both the user's experience and our collective reputation.
One can be a professional artist as well as a professional engineer. I prefer the former generating visualizations and the latter doing operating systems. But I really want the #!~!&@$~! to work.
There's far too much "slap it together" code dragging down both the user's experience and our collective reputation.
I have absolutely ZERO experience with slap-it-together code coming frompeople who think programming is an art form.
All, and I repeat my n=1 anecdote at the top of my voice, ALL, of the shit code I have seen was written by people who viewed programming as a profession, namely something to be done for money using processes that valued delivery over quality.
Which is not to say that other programmers who view themselves as professionals have not written terrific code. But I vigorously dispute the notion that there is a correlation between slap-it-together fecality and someone's self-images as an artist.
Fine, if all you want is software that works, i'm sure you can find some bored engineers to write software that just works.
Meanwhile, the rest of us will continue to have fun with software that does amazing stuff and sometimes breaks.
There's a not-so-old saying: "Brilliant people are often hard to work with, but if I've got to choose between working with a brilliant person that is hard to work with, or a stupid person that is easy to work with, I'll always choose the former."
The same is true of software. When you're pushing the envelope, things break. Learn to live with it, or stop bothering with computers until those of us who are more passionate about doing extraordinary things have left the field. We should be done in about 50 years.
Note: this is not a defense of cowboy programming. It's a defense of genius cowboy programming. If someone like Linus Torvalds, as an amateur student programmer, wants to write something as awesome as Linux, who are you to suggest that he shouldn't?
You're (aggressively?) missing the point. If you're doing research, pushing the envelop, then by all means have a go! If, however, you're writing stuff to sell, that people will depend on, then do it well. Calling somebody a professional != calling them an engineer. Slowhand's certainly a professional guitar player, and I think there's general agreement he's not an engineer...
When Linus did his groundbreaking work, that was pure creativity. Redhat, however, better be a little more grounded.
So then we arrive at exactly the point that the article made: you need both.
You need the "artists", i.e. the extraordinary, unprofessional people who do something crazy that no professional would ever attempt, and come up with something that pushes the envelope in new and unexpected ways.
And you need the "engineers", the professionals who will convert that (or other things) into something steady, reliable, rock-solid.
I don't think that your rephrasing helped, personally. It made a point which was in agreement with the article look like it was a disagreement.
"There's far too much "slap it together" code dragging down both the user's experience and our collective reputation."
This, perhaps, is most true in those who term themselves user interface developers. They probably started with HTML and CSS, and started learning Javascript from snippets pasted across the net in the early 00's. Unfortunately, most never took the time to actually learn the language, so these days they just slap together jQuery plugins and call it a day... crossing their fingers that it works, and having no idea what to do -- other than an ugly hack. Like user agent sniffing (something about jQuery not being fully compatible with IE6. If you've run into these issues, you know what I mean. Prototype is even worse -- hell, it doesn't realize that you can actually determine what the rendered CSS of an element is...).
One can be a professional artist as well as a professional engineer. I prefer the former generating visualizations and the latter doing operating systems. But I really want the #!~!&@$~! to work.