Friday 2 January 2009 - Filed under Code
Software systems are getting bigger, but not really better. Instead, our advances in tooling are absorbed by pushing further out the point where we throw our arms up and say:
"This thing is too big, it sucks."
We’ve got gigabytes of memory, and more gigabytes of disk, so we don’t have to worry about running out of space (for the code itself!)
We’ve got smart code-browsing tools, so we can find our way around things that are too big to hold in our heads.
We’ve got static analysis tools, in an effort to prove something about the behavior of systems too big for us to reason about.
We’ve got automated refactoring tools, so we can change models that are otherwise too unwieldy to manipulate.
Now I’m not against better tools. I enjoy the extra leverage I can get from my IDE, and I’m always on the lookout for more tools that could make life easier.
However, it does feel more and more like we’re just moving dirt around, and improved tools just allow us to move more of it, faster. We used to only have little shovels – simple compilers, assemblers, text editors. Now we’ve got powerful bulldozers and diggers that can sling around mountains of code with very little effort, and they’re getting bigger and more powerful all the time.
This is why I don’t do Java anymore, and why I could never stomach Java EE. Thousands of lines to do pretty much nothing doesn’t appeal. I don’t care if the tools work well enough that I can shovel a hundred thousand lines from one pile to another without it really hurting – it still sucks.
2009-01-02 » admin