Killer Apps

The D programming language lacked a “killer app” to break through. Another brilliant language suffered from this situation, objectively deserving a much better fate than the one it had; Smalltalk.

Other programming languages have had more luck, and did have their “Killer Apps.” These “Killer Apps” have taken various shapes across the ages. Some took the shape of other programming languages, some were operating systems, some consumer products, some were specific people, IDEs, open source projects, or other.

Let’s look at some programming languages and their “Killer Apps.” In this article we’re going to concentrate on programming languages, leaving aside killer apps in other contexts, like for example VisiCalc in the case of the rise of the Personal Computer, horizontal killer apps as described by Joel Spolsky, and other cases. The list below is ordered roughly in chronological order of killer app introduction.

In each of the cases above, the existence of the object or event on the right propelled and boosted the use of the language on the left, and vice-versa. Without its “Killer App,” the language would have not thrived and achieved the massive popularity and spread it enjoyed; and without the language, the “Killer App” on the right might not have existed at all.

Languages that lacked a killer app even though they deserved one: D, Smalltalk, Delphi, Ada (?), PL/I, and maybe Crystal nowaways, too, although it’s not too late yet.

Interestingly, Dart and Flutter were conceived together; in a way, they mutually reinforced each other, one being the killer app of the other. This is exactly the same case as C with Unix, C# with .NET, Java with the JRE, or ABAP with SAP. The language and its framework mutually reinforcing one another. There’s an interesting corollaire of this situation: if you’re creating a programming language, you might want to create with it its “Killer App” and release both at the same time. Stephen O’Grady from Redmonk observed this in 2011, and it’s spot on: Frameworks Lead Adoption2.

This reinforcing mechanism once again shows how platforms work, how they trigger and sustain their own growth past a critical threshold, and why the competition finds it so hard to fight against them.

It’s also worth noting the explosive nature of a “Killer App” upon appearance; it can upset the dynamics of an established market almost overnight, catching everyone (including critics) completely off-guard, changing the course of (predicted) history in a snap.

Objective-C existed since the mid 1980s; the iPhone App Store appeared in 2008 and by 2013 Objective-C was the top language in the TIOBE rankings. Ruby existed for 15 years in relative obscurity until David Heinemeier Hansson used it to create Rails in 2004. JavaScript had existed in browsers for 7 years until Crockford taught us its true nature.

Programming languages can lay dormant for years or decades, and all of a sudden somebody figures out exactly what to do with it, and the world changes completely.

  1. Google decided to get rid of the Eclipse-based Android development toolkit (one of the wisest ideas in the history of software development) and asked JetBrains to provide Android Studio based on their IDE toolkit in 2014. This migration paved the way to JetBrains’ own new language Kotlin to thrive, but there is another possible reason: given the tortuous lawsuit between Oracle and Google about the use of Java in Android, it is possible that allowing Kotlin to be the primary language for Android may have saved millions of dollars to Google. Who knows. On the other side of the fence, Google hiring JetBrains also left many iOS developers wishing Apple did the same, ditching Xcode for AppCode. Le sigh. ↩︎

  2. The exception to the rule is probably Objective-C, who in spite of coming hand in hand with those wonders of NeXTSTEP and AppKit and Cocoa, had to wait for the iPhone to came along to get some popularity. And then Swift swept all of that away. Le sigh, again. ↩︎