Thursday, May 08, 2008

The Changing Attitudes of Software Developers

As I watch my PC obey my commands at the pace of a snail (yes, I know I've ranted about this before), it gives me ample time to consider why the user experience never seems to get any better from a performance standpoint (and often, it gets worse, much worse).

I think it's largely because of the changing attitudes of software developers.

Back in the day (when I walked to school and back uphill, both ways, in several feet of snow, an hour in each direction, and I liked it), it used to be a badge of honor to write software that performed well. Almost everything else was secondary. Performance was King (or darn close). If you wrote software that performed poorly, you were pretty much a loser (in software development circles), and your users were appalled.

In other words, you did whatever it took to make sure your application performed well on reasonable hardware (where reasonable was anything five or less years old).

These days, it's all about ease of development. The program runs 50% slower? No problem, using this high level language made it easy to develop.

The program uses 100% more memory? No problem, using this high level language made it easy to develop!

The program stresses my old PC badly? No problem, using this high level language made it easy to develop! Look how few lines of code it uses! Whee!

The user experience hasn't improved? That's OK, I'll make up for it by shoveling in more bloated and slow features. It's so easy using this high level language!

The problem is compounded by developers wanting to use elegant languages these days. Developers are no longer engineers trying to create something useful; instead, developers fancy themselves as Picasso or Monet, trying to create an "elegant" source code base using an "elegant" programming language.

So what if the end result is slow, bloated, and unresponsive? Who cares if it performs like a pregnant hippopotamus? It's so elegant! Look at my pretty, pretty code!

Nobody seems to care about performance anymore, beyond making software just barely fast enough to be just barely acceptable to the user.

How disappointing.