Thursday, October 30, 2014

Why Languages Suck

Greetings from the famous room N101 at the Australian National University, where Professor Steve Blackburn of the Research School of Computer Science is speaking on "Why languages suck (and what we might do about it)". He started with the example of the "Patriot Missile Software Problem", which killed 28 U.S. soldiers 1991. A second example was "Hospitals' medication software likely to kill patients within month: Queensland Health report". This should be of concern to ACT residents as the same Metavision Intensive Care software is used at Calvary Hospital Canberra.

Professor Blackburn then gave apparently simple examples of code in PHP which give unexpected results. Steve went on to discuss the cost of inefficient computer programming languages which use more processing power and result in increased carbon emissions and global warming. He claimed that problems with languages occur because they involve difficult concepts and are difficult to engineer. Decisions made in language design get "baked in" to the system. This did not seem to me to be a new insight, when designing any new system trade-offs need to be made and have to be lived with.

An example is the Contact Wire System for the Gotthard Base Tunnel. At the time the tunnel was designed an over-head wire had to be used to supply power to the trains. Today an alternative technology is available which would allow the tunnel to be smaller diameter, saving many millions of dollars. But at the time the tunnel was designed the new technology was not proven and so could not be used.
This talk looks at problems faced by many of today's languages, how those problems arose, what we could do to address those problems and what we could do to avoid history repeating itself. The basic question is why is it that languages like JavaScript, PHP, and Python are so important and yet have such conspicuous shortcomings, both in their semantics and their performance? The talk is part sociological (how do we as a community end up making such mistakes?) part big picture (what are the technological solutions to such problems and why is it hard?). The talk will include a brief description of the micro vm weare designing and building, ( and some recent research that tackles the major barrier to high performance garbage collection in many managed language implementations.