Consulting
Musings
Bio + Résumé Contact
Home >> Musings >> Blog >> Joel is Back

Blog:

Joel is Back
Posted 19-Sep-2007 by Robby Slaughter (@robbyslaughter)

For years, a Jewish kid from Albuquerque dominated the technology op-ed marketplace with oodles of lengthy, hilarious articles on his website. Then he vanished, looking for new office space and writing the occassional book review. Now he's back, with the Strategy Letter VI. On behalf of practically everyone: it's about time. Welcome back, Joel.

Joel Spolsky
Our hero.

History Repeats Itself

We humans are dumb. We can't seem to learn from our mistakes. The classic software development mistake we make is the same: add another layer. Webpages weren't fancy enough, so we added the support for forms. Then we added plug-ins to the browser for Flash and support for in-browser interpreted languages like JavaScript. Now the hot new thing is leveraging elements of JavaScript, the DOM and CSS with and server-side utilities to create a "rich Internet" experience, in the form of AJAX. This systems like GMail and Flickr kind of neat. But really, they aren't that great. I like to say that thanks to the overwhelming development advances in web technology, you can now achieve in the browser what was only possible before using commodity hardware built after 1992.

Too Much Cream

The real problem is that there's too much cream in the economy. We can afford to buy new computers every couple of years, which means software developers don't need to worry about using resources efficiently as they can just wait for the hardware to be fast enough. This is precisely the opposite of most other kinds of engineering. When a new building material, such as steel-reinforced concrete appears---it is used in the market for ages before being replaced. No one would ever design a bridge expecting a new material twice as strong to be ready in time for construction. You simply have to work within the constraints of what is currently available.

Another Reason Software Stinks

This is another reason why software is terrible. Since you don't have to worry about things like efficiency, developers are tempted not to worry about much anything else beyond getting the system to only kind of work. It's easier to build something on top of existing infrastructure than within, meaning people often overload the existing system. There's a widespread sentiment that you don't need to understand anything about what's come before, because everything is changing so quickly it won't matter anyhow.

The NewSDK

Joel predicts a brand-new development system that will "compile" into a web application. This already exists to some degree in integrated environments like .NET, which let you write interactive web pages with dynamic backends all in the same language and editor. This, of course, is horrible wasteful. Why have another language that compiles into a crude combination of duct-taped elements, which are then in turn executed by another framework (the server and browser), which are themselves hovering on operating systems? Why don't we just get a network operating system together?

Oh right. That's because it's hard and will take some time. Why not just wait until we have plenty of hardware to do it the easy way?

Would you like to leave a comment? Read this.

###

Blog: Turning Left Against Traffic
Current Project Email List
signup@right.here
Low Volume, Spam Free