Related link: http://www.oreillynet.com/cs/user/view/cs_msg/15469
That article is an alpha-geek level article, to use Tim’s coinage. Well, guess what? Most programmers aren’t even geeks, period - they are just punching the clock. And that’s why complicated technologies fail, and that’s why the whole comparison game (like J2EE vs .NET) is essentially useless.
I don’t really think the above point of view is cynical (as the poster disclaimed a couple of times). I do believe that it points to all that is wrong in software development, and far more important than SOAP vs CORBA or XML vs CSV. When we program computers, we are effectively constructing simulacra of the real world. The most egregious failures occur when our
models diverge from the real world in unexpected ways. It takes an extraordinary amount of skill to model the world as we attempt to in our work, and I am skeptical that there will ever be a technology that comes along to make it a casual
There has never been a shortage of products promising to make programming easy enough for any odd punter. From the early 4GL packages to Powerbuilder to Visual Basic in software to the “Dummy” books and seemingly recesison-proof prorammer “bootcamps”, I am not exactly woried that Joe Codeloader suffers too much neglect. However, I have long argued that XML and even Web services are not technologies appropriate to his contingent. See here for my rant on the idea that an XML user would not understand the concept of a labelled tree. See here for my rant about boiling XML and WS down to glossy wizards. The former link is part of a relevant and interesting thread that’s nicely summarized here.
Even though I got a formal Computer Engineering degree, I don’t think at all this means that all developers who meet my idea of basic standards should have done so as well. I’ve been very privileged over the years to have worked with a variety of developers who have attained the highest level of craft and knowledge through individual study and effort. It takes some aptitude (and I am firmly convinced that aptitude plays a gigantic role in the craft of programming) and it takes a lot of motivation and hard work, but I really bristle at the idea that one should not expect much craft of programmers. It’s not so important that this is an offense to those who have put an extraordinary amount of work into learning how to program well. It is very important that shoddy craft by some programmers brings the entire profession into disrepute.
The question comes up “well, how many developers of such standard have you worked with in real life”. This question used to surprise me. Throughout my career, from my consulting to help pay college bills to my first jobs upon graduation through my overall progress as a professional consultant, I’ve almost always worked with programmers of the highest caliber. Very few of them have made a near-profession of commenting on technology, as I have, but of course loudness is no mesure of competence. I have come to realize that I’m very lucky, and that my direct experience is an odd corner of the full picture.
I do hope that techologies such as XML, which are very useful in saving time and improving expressiveness for conscientious developers, do not get sabotaged because of all the reflex considerations for the less engaged.