Today I'm pondering the importance of aesthetics in computing. There seem to be a lot of people out there who are perfectly fine with whatever, so long as it works. If the underlying data or code is wildly inefficient or overcomplicated, it's just fine, so long as what appears in their inbox/object/screen/whatever is what they expected.
I've defended spaghetti code and similar things in the past as necessary. In part it's just that spaghetti code is a step most people have to take on the way to getting a project to work - the emergence of refactoring as a topic all its own suggests that very few people get everything right the first time around. (There are a few, but they seem to be exceptions. I'm certainly not one of them.)
The problem isn't that first efforts are bad. The problem (as I see it) is that first efforts are sometimes cast in stone. Most frequently, this is because no one gets around to fixing them. If it ain't (badly) broken, don't fix it. Occasionally, though, a horrible mash gets canonized as some kind of standard.
That seems to be the case lately at the W3C. Members want their specs and they want them now, giving us charming things like W3C XML Schema and the lightly-modified but still deadly SOAP. While human-readability of markup probably isn't the best or only guidelines of the success or failure of a specification's use of markup, these specs reach new heights in creating XML documents that are actually embarrassing to show to an audience.
It's exasperating to me that XML people sometimes pick on Web developers because they take a more aesthetic approach. Sure, XML doesn't have much room for questions about syntax aesthetics, but there's enormous room for markup aesthetics, and we don't seem to take the time. We should learn from Web developers, not dismiss them.
I've been reading Jeffrey Veen's The Art and Science of Web Design for the last few days, and I'm delighted to see that this book manages to express an awful lot of aesthetic judgments I've shared without being able to explain them. Aesthetics seems a more obvious issue in Web design, with its generally explicit visual approach, but programmers and markup developers could use a similar set of discussions.
Maybe the answer is just to insist that people pay more attention to the aesthetics of what they're creating, even as the impatient howl for anything that works. I don't know how to make that stick, but it seems like it's at least worth considering. Talking about issues sometimes gets people thinking..
