The Three Worst Programming Languages
Richard Kenneth Eng

Darwinian Selection of Programming Languages

Despite the awful character of these languages, most businesses are loathe to switch. Why? There are principally three reasons:

  1. They have a very heavy investment in their existing software infrastructure and trained development staff. It would be prohibitively expensive and risky to replace the infrastructure and retrain/replace the existing staff.
  2. They have many legacy applications that must be maintained and extended. It would be prohibitively expensive and risky to rewrite the applications in another language for unknown benefits.
  3. They are uncertain about the benefits of alternative programming languages. Reliable data about languages is difficult to come by.

Change, if it comes at all, will be slow and incremental. These businesses may investigate alternative languages through small, pilot projects, but they need to be convinced.

What languages should they look at if they wish to separate themselves from the Demons Three? There is an embarrassment of riches to choose from: Ceylon, Clojure, D, Dart, Erlang, F#, Go, Groovy, Haskell, Julia, Lua, Nemerle, Nim, Python, Ruby, Rust, Scala, Scheme, Smalltalk, Vala…just for starters. How are they supposed to choose?

Somebody must convince them. That’s the job of language evangelists. It’s a very challenging job. Language advocates must present evidence of benefits and create a marketing brand for their favourite language. Logic and reason alone will not persuade them. However, advocates face huge obstacles. Businesses are floundering in a fatal fog of Fear, Uncertainty, and Doubt. They don’t know who to believe, who to trust. Switching languages is a very costly affair and their conservative stance prevents them from taking risks of any kind. I know this, because I’m the Campaign Director for Smalltalk Renaissance and I’ve encountered these exact same obstacles.

As long as businesses are trapped in their software environment, they will continue to develop software uneconomically, inefficiently, and suffer long development cycles, which unnecessarily lengthens “time to market” and lowers the bottom line.

So the objective of language advocates is to persuade companies to at least try a pilot project for the target language. Success in this regard comes down to who can tell the best story, who can present the best marketing. It’s a matter of which language is the fittest and the strongest in their public profile.