Tuesday, February 20, 2007

Technological Evangelism

Since no one actually reads this blog, I can take a moment to vent...

I have been informed that the software project on which I work will be modified to use something called the Spring Framework. Naturally I googled it to get a taste of what it involves before diving in. As near as I can tell, the "core" framework involves building XML files that contain all the definitions and dependencies of your classes and then using Spring to instantiate them , blah blah blah. Whatever. The lulu is that the proponents of Spring are claiming that this "removes the class dependencies from my code." Huh? Do these guys not realize that my new XML file IS my code. To boot, the XML is far harder to read than Java! Guess what? Since the XML is essentially my Java program rewritten in XML, I better have a way to test it. I have gained something questionable at the cost of more complex and error-prone code.

This reminds me of the Code-To-Test movement where you write a bazillion unit-tests and then use them as your "specification" - once you pass all the tests, you're done. Um, guys... your unit-tests ARE your code. They have to be tested, too. You gonna write unit-tests for your unit-tests?

A number of critiques of Spring make the disclaimer that they are not impugning Spring originator Rod Johnson's intellect. I am not sure I can extend the same charity to every one of his disciples. Aside from the marketing copy quality of some of the tutorials (isn't "versatile and flexible" redundant?), the concept of what constitutes "code" is a pretty basic to computer science. Is this too abstract for the average open source user?

It has sometimes been claimed that the problem with software development is that it is not enough like engineering. Having at least graduated as an engineer, I can see some truth to that claim. The alarming thing is that we are moving rapidly in the opposite direction. People are adopting all sorts of crap because it's hyped and it's free (I was personally burned by Log4J) .

Perhaps a great new software paradigm will emerge from this wild west free-for-all. Perhaps we can all get back to writing applications instead of tools. Or maybe I will just continue in my curmudgeonry, decrying the poor state of our university education system.

No comments: