Archive

Posts Tagged ‘programming languages’

why best technologies don’t always win

March 23, 2010 Leave a comment

It’s a well known fact that very often in the real world inferior technologies win over their better competitors when it comes to widespread acceptance. These days there are probably few people who can still remember perhaps the first major format war of modern times, the showdown between Betamax and VHS. I wasn’t there but many of those who were claim that Beta was the better technology.
Some people may also point to the on-going Windows versus Apple rivalry, it has to be said however that there were times when Windows offered the better technology of the two.
Anyways, what I’m thinking about here is programming languages. It’s kind of ironic that in this realm it too often is the case that better technologies either never rise to the top or totally fail or are left to rot in obscurity for decades. Supposedly software design is a field dominated by professionals and yet those professionals keep choosing the mediocre but hyped-up over the superior but less known. In essence it’s a variation on the famous example of choosing between two restaurants one of which is full of people and the other is empty. With no prior knowledge about the food they offer, you’re more likely to opt for the one where there’s already lots of people. And thus even though revered Bjarne Straustrup once said he had never intended for C++ to become a poor man’s Smalltalk that was exactly what C++ eventually turned into. Originally intended as a systems programming language taking advantage of the new object oriented paradigm it eventually ended up being used to program financial applications and what not until Java came along.
With Java Sun managed to create so much hype and so much buzz around their new language that people started adopting it like crazy even though its early versions were extremely slow and provided only a fraction of the features that were standard in other languages at the time and it was almost as verbose as COBOL. Even the mighty IBM got so scared of the Java steam roller in the mid 1990’s that they abandoned Smalltalk, which they’d at one time practically made their flagship technology in the Visual Age line of products, and made haste to jump onto the new Java bandwagon. Well, truth be told IBM wasn’t exactly mighty at the time it happened and still I personally believe had they been more aggressive in promoting Visual Age, Smalltalk might have had a very good chance to flush Java down the drain, since in the mid 1990’s it was much better and much more robust technology, which was far better at delivery cross-platform scalable applications than Java. In fact the only weakness Visual Age had compared to Java was its hefty price tag at a time when Java was being offered for free to anyone who cared to download it. Well, there went Smalltalk, it’s still alive and kicking in the form of Squeak and Cincom Smalltalk but their market share is laughable next to that of Java and even C++. It’s kind of ironic that some of the features and approaches that are only now making their way into the main stream curly braces world have been available in Smalltalk, let alone Lisp, for decades.
Ok, now the question why better technologies are often left in the dust by their less capable counterparts. Having recently read a book about social networks, I’m led to conclude that it’s not the quality of a particular technology that determines its success or failure, but rather where and when it originates in our social network and its initial adoption rate. It’s not even about marketing, I supposed that MS will have poured plenty of cash into supporting ASP and IIS but the vast majority of the Internet still runs on Apache and PHP. Sure being offered for free is hard to beat when it comes to how many people will be willing to adopt a new technology. But ruby is also free and so is python and yet neither have been nearly as successful as php. There are other forces at work here obviously. Speaking of free, Squeak and Pharo are both free as is Seaside and yet Seaside is currently showing no signs of becoming the next de facto Internet standard on a par with LAMP. And more often than not our control over these other forces is quite limited. Now we can only pity the people who try something new and fall in love with some cool technology like Smalltalk or Lisp, only to find that there’s not real demand for it. Check out the story of Object Arts to see what I’m talking about. They tried really hard to push Smalltalk into the mainstream with all the enthusiasm and expertise they had for over ten years until finally giving up a few years ago.