The Joys of Software Complexity

December 16th, 2005

I was driving along today, thinking (yes thinking) that I have a love-hate relationship with Steve Loughran’s blog. Sometimes its like a mini bile blog for all the little things that go wrong or how things should be with the software he uses or attempts to use. The thing I like is that I supsect the reason for all these posts is that he still expects software to work right (however rare that is). This realization gets me thinking even more.

Being quite young, I don’t have a lot of perspective on the last 30 years regarding how our expectations for “buginess” have changed. I would like to harken back to olden times when everything “just worked,” but I doubt things were ever like that. I actually think we’ve gotten better at managing complexity. There are are still a lot of issues though. Take Java for instance. First we have the VM. Then we have libraries. Then we have libraries which use other libraries. And if we’re lucky, finally an application. Oh and don’t forget about knowledge in Servlets, JEE, XML, HTML, and database programming. I tried to bring a PHP programmer into the world of Java recently, but it was all a bit overwhelming. To create a simple webapp he had to master Servlets, Hibernate, Webwork, Velocity/Freemarker/JSP, and Java. No small task. Maybe tools like Maven can help manage this and help people get started a bit easier, yet you still need to know every underlying layer.

<rant>
AND when will CS departments get their acts together. I skipped out of CS because I looked at the course schedule and found it basically worthless. How many schools even cover beyond the basics of Java or writing a webapp or, god forbid, web services. I recently hired an 18 year old fresh out of high school. He knew more about writing enterprise software then most freshly graduated computer science grads I’ve met.
</rant>

Lets not forget about SOA. If you subscribe to the web service point of view there is WSDL, SOAP, WS-*, BPEL, and all the XML intracies. Writing a good WSDL is no easy task for the average programmer. Maybe it doesn’t need to be though, maybe it just needs to work Good Enough like all the VB apps that are laying around.

This all leaves me with a lot of questions:

  • Are we ever going to be able to work at a higher level of abstraction?
  • Will domain specific languages play a part?
  • What other tools might help us get there?
  • How can we educate people better?

(For all of you who don’t know the answers to the above questions, it is of course Ruby)

Comments are closed.