Friday, August 20, 2004

The Tao of Babel

There’s been a lot of buzz in the newsgroups over the past months about languages. Should I switch to Java? Will Chrome be the next big thing in .NET languages? What new features will the Delphi language offer in Delphi 9?
The world of computer programming languages is in need of real innovation, not myriad permutations of syntax. I say, the next big thing in languages needs to come by way of completing the UML (as Scott Ambler has so ably stated, “The UML is incomplete”) and making it applicable to real world problems faced by real world businesses. Users need tools that let them create solutions by laying out UML-style diagrams and charts that map to RAD layout tools, and that directly create IL or machine code from those UML and RAD designs, bypassing intermediaries like C++, C# and all other guru-enrichment schemes of similar ilk. The coder is an expensive luxury that the process does not really need.
“Jake, you’ve flipped your lid. There will always be a need for software coders, because there will always be a need for the human element in software development.”
Hello? What is the end user, a Martian? The end user is the only human in the process that is really necessary, everybody else is simply a means to his ends, a tool. Tools do not need to be humans, and the history of technology shows that humans ultimately are poor tools that can and should be replaced by specialized technology. The history of Western wealth and prosperity has been this process of increasing capitalization over time, a process that makes the process more and more efficient in meeting the needs of the final consumer. The fact that this process works very well is attested to by the fact that modern standards of living are so much better than the standards of living of even the most fortunate members of prior ages. The poorest Americans have access to things that even kings from a hundred years ago could not even dream of having, like television and radio. Extended to the process in which software development attempts to serve end users, this means that end users get more control over the process, the process works better, and the process requires fewer human intermediaries--like coders.
The future is not one populated by well-heeled software programmers. It is one populated by well-heeled business analysts using their domain knowledge to directly create solutions within the business process. The days of the generalist software consultant who flits from client to client cranking code, are numbered. The days of the C#/C++/Java/etc. language bigot who does nothing all day but crank code in his favorite programming language, are numbered. The days of the religious fanatic praying to his favorite technology, are numbered. We now know from animal behaviorists that several types of animals use tools. But it seems that only humanity falls in love with tools.

No comments: