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.
- COBOL: IBM System/360 and Mainframes.
- C: Unix.
- BASIC: microcomputers.
- Pascal: Turbo Pascal.
- ABAP: SAP.
- C++: Graphical User Interfaces (
Widgetand so on.)
- Visual Basic: Microsoft Windows and Microsoft Office.
- Perl: the World Wide Web and CGI scripts.
- Java: Netscape.
- VBScript: Active Server Pages.
- Python: NumPy and, thanks to it, the Machine Learning craze of the 2010s.
- PHP: LAMP and the Dot-com bubble of 2000.
- C#: .NET.
- Lua: game programming.
- Ruby: Rails.
- Scala: Twitter and its Failwhale.
- Objective-C: iPhone and App Store.
- Go: Cloud Native tools such as Docker, Prometheus, Kubernetes, and pretty much every project sponsored by the Cloud Native Computing Foundation.
- Erlang: WhatsApp.
- Elixir: Phoenix Framework.
- Haskell: Swift.
- TypeScript: Visual Studio Code and lately Deno.
- Kotlin: Android Studio1.
- Dart: Flutter.
- Rust: Linux Kernel (maybe?)
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.
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.
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. ↩︎
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. ↩︎