Comparing Programming Languages
Here is some material that I have come across recently that strikes me as useful:
Colourfully titled essay discussing some flaws of comparing languages: The Computer Jihad
Insight into how and why a startup might choose a programming language: Beating the Averages
Two tables comparing the availability of selected features in a range of languages: 12
The final one is the report of some fascinating research. It attempts to allocate a level to a langauge based on the number of lines required to achieve certain Function Points:
I find this last one particulary interesting because it looks at the effectiveness that a language delivers to the developer rather than a simple comparison of features. For example, the designers of Java and C++ chose to be strict about features for valid reasons, but it turns out that the result of that strictness is much more developer effort. Agile languages such as Perl, Ruby and Python score well on this metric as many would expect (Lisp didn't score well but Eiffel did). What I wouldn't have expected until recently was for Objective-C to score so well. While Objective-C relies on very simple extensions to the standard C syntax (which scored 2.5), the concept behind it is so powerfull that it scored 12. Almost as high as the agile languages at 15.
What this means is that you can write (a certain class of) programs in Objective-C with a similar number of lines to what would be needed in Perl or Ruby. Yet Objective-C is all the things that people say are missing in Agile languages (like the speed and obfuscation of native compiled code for example).
As Ovid said (see the first link), there are valid reasons to choose different languages in different situations. After browsing a lot of analysis of features and effectiveness, it is hard to see how Java or C++ could ever be the right choice (with the exception of Java for binary distributed cross platform gui applets).
I'm sure some readers have feedback to give on this post :)
How Apple Does It [www.time.com]
Grossman does give some good insight into Apple's current practises that enable this, which is worth the read, but the answer given in general is Steve Jobs. All the three innovations listed (the Apple II, the Mac and the iPod) are Steve's babys. The Apple II was Steve Jobs + Steve Wozniak, the Mac was Steve Jobs + Burrell Smith + Bill Atkinson + Jef Raskin + Andy Hertzfeld, the iMac was Steve Jobs + Jonathan Ive and the iPod was Steve Jobs + Jonathan Ive + PortalPlayer.
Let's look at those projects some more:
- The Apple II was Jobs taking Wozniak's brilliant machine, guiding it's development and identifying the market.
- The Mac was Jobs driving a project against the wishes of the (then) Apple management
- The iMac was Jobs dragging a (then) reluctant Apple corporate machine in yet another crazy scheme
- The iPod was Jobs obsessively refining a seemingly simple product into not a category killer, but a category definer
Between the Mac and the iMac of course, there were some terrible times. Really the two good things to come from that time were the PowerPC changeover and the Newton. Of course as we all know, Apple botched the PDA market and Jobs canned the project when he came back. I wish he hadn't, but I understand why he did. And how did Apple make up for the years lost in aimless Copeland/Taligent/Pink development? By modifying NeXTstep - one of the companies that Steve built in his forced Apple exile.
Steve Jobs is not perfect, but he does some things well. And now we have the video iPod. As Adam Curry said in the Daily Source Code a few days ago, "f#$%ing brilliant Steve, f#$%ing brilliant".
So lets see what useful info did Grossman collect (other than being thoroughly charmed by the reality distortion field).
Steve Jobs told him a short story, the "Parable of the concept car":
You know how you see a show car and it's really cool, and then four years later you see the prduction car, and it sucks? And you go, What happened? They had it! They had it in the palm of their hands! They grabbed defeat from the jaws of victory!
That sounds a lot like the question addressed to Intel's CEO Paul Ottelini by a Wall Street Journal journalist:
No wonder Apple and Intel are getting along.
Another thing that really caught my eye was when Grossman was comparing the "success" of Apple (Steve) with the "success" of Microsoft (Bill) he said this:
But Job's doesn't just care about winning. He's willing to lose. He has done it often enough. He's just not willing to be lame, and that may, increasingly, be the winning approach.
Always has been in my book.
My last quote (I promise) is this:
What Jobs has accepted—the truth that he's willing to face and others cower from—is that new things don't want to be born. Innovation causes problems, and it's much easier to avoid it.
Worth buying Time for just that article.
Update: More press is giving Steve a good time - an independant panel assembled by USNews voted Jobs among the top 25 "America's Best Leaders". Also honoured in the list were Bill & Melinda Gates, Condoleezza Rice and Oprah!
Blog Categoriessoftware (41)
..heads up 'tunes (5)
..black and white (6)
..A day in Sydney (18)
..The Daily Shoot (6)
Book Review (2)