Results Matter

Jeff Atwood:

Some of the largest sites on the internet — sites you probably interact with on a daily basis — are written in PHP. If PHP sucks so profoundly, why is it powering so much of the internet?

The only conclusion I can draw is that building a compelling application is far more important than choice of language. While PHP wouldn't be my choice, and if pressed, I might argue that it should never be the choice for any rational human being sitting in front of a computer, I can't argue with the results.

Results are and should be what matters. There’s no point in writing extremely elegant code if it doesn’t work. There’s no point writing elegant code if it requires herculean efforts to deploy in production. There’s not even any point writing elegant code if it takes you twice as long unless you can actually justify that in maintainability.

The reality is that even code that feels vastly more elegant is often only marginally more maintainable than average code. There is a huge maintainability benefit going from lousy code to average code but from there it starts to rely more and more on domain knowledge and particular coding patterns than on the elegance of the code.

As developers we need to keep in mind that while theoretical excellence is a really important thing to investigate and pushing the boundaries of technology with new techniques and languages, but they’re not everything. When it comes down to it most of us are paid for results, not theories. If those results come from a clunky, out of fashion programming language then so be it.

2 Responses to “Results Matter”

  1. Scott Thomason Says:

    Let’s bend your argument a bit to discuss a problem I experience on a frequent basis. What if it’s not the programming language that’s inelegant, but the programmer(s)? Do you let them use any old slop as long as it gets the job done, or do you hold them to certain standards of elegance?
    —scott


  2. Adrian Sutton Says:

    Elegance, no – elegance doesn’t matter. If it’s unmaintainable slop then yes you do need to improve things. The key is to worry about maintainability rather than elegance. The phrase “any old slop” tends to indicate a lack of design, unit testing and lots of code duplication all of which would cause serious maintainability problems. It doesn’t need to be the neatest or most efficient way of doing something as long as the intent is clear.


Leave a Reply

(Valid OpenIDs will skip moderation)

Alternatively, subscribe to the Atom feed.