Are XML, Web Services, CORBA and such for Joe Codeloader?

by Uche Ogbuji

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
effort.



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.


4 Comments

arvedhs
2003-03-16 22:41:09
As an alpha geek.... :-)
I'm actually who you quoted, Uche. My first name is Arved and I am a voting member of the ASF.


I give enough of a damn about professionalism that I took six semesters of software engineering (my background is physics) at my own expense, from the Technical University of Nova Scotia. Now called Daltech, because it is subsumed into Dalhousie University.


I care enough about professionalism that I agree exactly with all the attitudes you have, based on reading your supplied links. I recently left the last company I worked for, largely because the boss was contemptuous of prototypes, UML, testing, and all manner of things pertaining to software development. And my co-workers were (with one notable exception) code drones - just pumping out crappy Java on the fly.


It offends _me_ when coworkers don't even know who Donald Knuth is. I have his 3 books. It offends me when they don't know who Richard Stevens was, and haven't glanced at his classic UNIX books even when they are engaged in programming related to TCP/IP. It offends me that they don't recognise the name of Robert Sedgewick, who wrote a classic, and they don't have the first clue when I refer to Alan Pope, or Leslie Lamport, or Guido van Rossum, or Larry Wall, or Ken Thompson.


If you don't know the history and personalities of your profession than you ought not to be in it. My personal opinion. The lack of this knowledge is a significant indicator, IMO, as to whether the person is dedicated and knowledgeable.


I'd like to make the point that I am _not_ talking about stupid people, nor undedicated people. The problem is that the dedication is diverted completely to non-career aspects, and that therefore these people are not truly professionals.


The problem is not that most of the folks I have worked with _can't_ grasp complicated technologies _ I'm sure they can with training - but that they simply don't want to. And to be honest, I'd rather work with someone who is not exactly an Einstein, but who is keen and willing, rather than a bright person who is just collecting a salary.


Arved Sandstrom


anonymous2
2003-03-18 04:11:16
Get a GLUE
The problem is not one alphabet soup versus another... but the pots used to make the soup. And the current pots are very primitive.


So, get a GLUE.

uche
2003-03-18 11:46:46
As an alpha geek.... :-)
Hallo, Arved.


I haven't had the pleasure of meeting you, but I'm certainly familiar with your work. I didn't recognize you from the earlier post, but I also hope it was clear that I was not attacking that post in any way, but rather using it as a touch point to switch the topic a bit.


I certainly agree with everything you have said in this message. People may call this a cynical or elitist position, but anyone who has see the havoc that non-professional programmers can wreak should at least understand such sentiments.


Could you imagine someone calling himself an professional sailor, who didn't understand the function of the masts or rigging on his ship?


--Uche

arvedhs
2003-03-18 13:10:11
As an alpha geek.... :-)
Uche, it was quite clear that you were not attacking my original post. :-)


In fact, both of these threads that you have started are related to the continuing issue that we have with the definition of software development as a _profession_. Considering the fact that we are called upon to deliver software that can affect peoples' lives - tax programs that if written incorrectly can cause serious grief with the IRS or other tax agencies, or software for military systems that will have an obvious bad effect if badly done, or software for medical systems - should _we_ not have the right to call this a profession? And demand appropriate standards for the people who work in it?


I personally think that it's not elitist at all. Without disparaging service workers at McDonald's, _we_ are _not_ service workers at McDonald's, and because of what we do, there should be an attitude and level of professionalism and craft that is sadly lacking.


And I am familiar with your work also. Not very, because I have only used Python enough to use a few features that were not necessarily available elsewhere. But I am a Perl guy, having started with that in 1994. :-) And right now I am wrapping my head around Haskell (with thoughts of how it might work for XSLFO), and am the team lead for my local community WiFi effort.


Arved