Founders, Coders & The Wheel Going Round

I’ve recently put my hand on two excellent books, titled Founders at work and Coders at work. The first includes interviews with successful entrepreneurs such as Max Levchin (PayPal) and Steve Wozniak (Apple), while the latter features interviews with famous coders such as Brendan Eich (father of Javascript) and Donald Knuth (father of all software, I guess).

Other than a very interesting read for any avid programmer, I find that the books are an excellent Litmus Test for one’s inner nature. Programmers with a vision of product generally prefer Founders,  while those who posses unique talent for hacking and architecture tend to prefer Coders. For me, as some of you may guess, Founders at Work has been a much more enjoyable read. I find a founder’s view to be so much richer than an experienced programmer’s, even when aforementioned founder was serving as CTO.

Both books are heavy on the technical side, however Founders tackles the software challenge from a very down-to-earth approach that considers market limitations, financial challenges and other “foreign” considerations, whilst Coders draws more attention to programming styles, best practices and so forth.

One interviewee in Founders I was particularly impressed with was done with Dan Bricklin, co-founder of VisiCalc – the first spreadsheet. Bricklin outlines their efforts at producing a spreadsheet for the Apple II computer. The whole memory of that machine was 64KB – OS included. Yet, into this crammed space they managed to deliver a program that stunned the world by it’s usefulness and usability. Bricklin emphasizes the effort put into usability, and the tricks they had to pull in order to get it to fit into memory. I have tremendous appreciation for old-timer programmers.

Nowadays, in a bloated Java runtime with a full windowing environment, it is hard to grasp the effort that had to be put into each tiny program back in the 70’s. If you want a taste of it, just try working with ed for a week (although real programmers use butterflies, of course). Now imagine you have to do everything in assembly. Some of you might be familiar with the demo-scene, which is truly mind-boggling. Sometimes it might seem as if these days are over. In the tradeoff between speed of execution and speed of development, Moore’s Law has tipped the scales in favor of rapid development. Very rarely do application programmers think of low-level performance. Even on mobile platforms such as iOS and Android a high-level abstraction level prevents developers from performing their assembler black magic.

However, as software development accelerates new performance boundaries are met and heavy performance tuning is back in style. It’s the age of clusters in the cloud, with million of requests traveling over slow network pipes every second. In such an environment, every 1KB saving in the size of the served site could mean tens to hundreds of GB of bandwidth saved every month. So, as Dan Bricklin in the days of yore, the generation of web developers must indulge in a whole set of low-level optimization solutions: Sprite images, Javascript Minifying, ditching RDBMS, and so forth.

Be Sociable, Share!
Posted Thursday, October 28th, 2010 under Growing Software.

Leave a Reply