Not quite a Yegge long.

I Didn’t Sign Up to Drive a Bulldozer

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

Talkback x 3

  1. Stephan Schmidt
    2 January 2009 @ 10:00 pm

    “Thousands of lines to do pretty much nothing doesn’t appeal. ”

    As explored on my blog, e.g. Python is just 2x smaller than Java so your claim looks exaggerated (4x for the applications on Oloh).

    Comparing a Wicket/Seam/JPA solution to Django/Rails would be nice to see if you’re right concerning frameworks. I did compare a small Grails application to the same in Seam and would think the factor is between 2x and 4x smaller for Grails – the same as comparing Python to Java.

    Not sure for example how Clojure would stack up.

    A nice comment from someone on Twitter lately: He rewrote an app from Java to Scala and got huge reductions in LOC, but only small reductions in CC. I think CC cannot be massivly reduced by changing the language.


    Programming is hard –

  2. admin
    3 January 2009 @ 4:09 pm

    Stephan: Using a functional language, you should be able to achieve much lower CC for individual functions, since much of the complexity can be abstracted away behind things like map(), filter(), fold() etc. Thoughts?

  3. Flahloops
    10 December 2009 @ 2:57 am

    you just got yourself a place in my bookmarks

Share your thoughts

Re: I Didn’t Sign Up to Drive a Bulldozer

Tags you can use (optional):
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>