The Economics of Computer Programming, or Why System Architects should be Investment Bankers

There’s been an utter collapse in the investment banking sector of the US economy over the past few weeks. It’s truly sad that such a thing has happened, but I don’t buy the line that nobody saw this coming. Either way, that subject isn’t really the focus of this post.

According to many, the ill-regulated system of repackaging bad home loans as other instruments allowed banks to leverage themselves too much with bad debt, and when one very large domino falls (and by that, I’d be referring to dominoes named AIG and Merill, amongst others), the whole system destabilizes and risks collapse as well. This sounds an awful lot like other situations I’ve seen in my own line of work. Suppose, instead of financial systems, I replace that with software systems, and instead of banks being dominoes, I say classes or functional systems.

The economy overall is facing a dependency management problem! Sounds funny, right? However, it’s striking the similarity between financial markets and spaghetti code right now. Think of a big, fragile system – if one part collapses or starts behaving in weird ways, the whole system can go down. “Even CEOs don’t understand these investment vehicles” has been a phrase I’ve heard bandied about as of late. That sounds an awful lot like “We have no idea how that COBOL system works, but it’s essential in our business.”

Proper dependency management was and still is a big problem in the practice of programming. In well functioning systems, dependency management is controllable. Good interfaces and proper system design, along with oversight in the form of design and code reviews lead to systems that function well over time. This is why, in theory at least, good system architects could make for good finance regulators.

Word to the Wise

Never name a web control “description” and expect to be able to use it without errors. Why? Freaking IE and it’s crappy rendering engine, that’s why. It gets confused, at least in certain instances, when you use the word “description” as a control id and starts to do strange things you’ll have a hard time explaining. The same behavior in Opera/Firefox/Chrome is all good. Word to the wise…

Chrome, Freaking Chrome

Google Chrome

I recently wrote of the merits of Opera 9.5, which is a truly pleasant browsing experience. However, and somewhat unexpectedly, Google just yesterday released a new browser, Chrome, which I believe changes the game.

Being the browser junkie that I am, I downloaded it within hours of being released. From Google’s own admission, Chrome is less about innovation in the features arena, and more on the browsing experience as a whole. There’s even a beautiful web comic dedicated to explaining the more geeky aspects of the browsing experience, produced by the kind gents at Google

The first thing I noticed after starting up Chrome for the first time is that it renders fast. As in FAST fast. I mean, this thing screams. The rendering of Javascript is a big thing in browsers nowadays. In one geeky corner, you can see the web developers that have been working on Prototype and jQuery, wishing and waiting for a Javascript engine that doesn’t disappoint them – these guys are celebrating today, as all of us should be.

Javascript, as non-natively OO as it is and all, has been shown to be by in large the wonder of the web. Want interactive features across the web? Better know how to write Javascript. Want flashy stuff without requiring the user to install add-ons? Look at Javascript. AJAX? Yeah, that’s all Javascript. The browser has been okay on the side of Javascript – it’s always been supported by just about every browser out there, but it’s never been at the forefront. With Google Chrome (and the pending release of the new Firefox Javascript engine), it’s the star, and with great results. The web has never been faster of more responsive.

Javascript aside, Chrome seems more leveraged to provide an online platform. I can certainly see motive behind Google to go that route – it suits their overall goals remarkably. Making the web responsive enough to replace the desktop only plays into the pocket of Google, and providing the browsing experience to so is definitely in their interest. At the same time, the entire thing is open-sourced, which has never been a bad thing. The tools to work with the browser aren’t really there yet, but knowing Google I think we’re going down the right road. As a web developer, I know I’m probably being biased and unfair and all, but I just have to say thanks.