January 21, 2008The myth of the Killer App
I'm sure you've heard this expression before, and the idea is very simple: it's an application which, in and of itself, will promote its infrastructure (the operating system, or the programming language or the framework it's built on) from obscurity to instant fame and de facto standard overnight. For example, one might say that Microsoft Office was Windows' killer app. Of course, this would be simplifying the equation somewhat since a lot of factors made Windows the success it is today, but you get the idea. While reading through these comments, I started questioning the very existence of the killer app concept. Especially for programming languages. Let's start with Java. Does Java have a killer app? Did Java go through the transition "obscurity -> killer app -> fame"? Back in the early Java days (circa 1996), there was one thing that made Java stand out from other languages. It doesn't mean that Java was more popular than these languages, nor that it was gaining momentum: it's just that it was attached to a particular concept that was unique to it and because of that, it received a lot of hype and was discussed heavily on Usenet and other forums. Do you remember what that killer app was? Applets. Thanks to applets, Java was going to take over the world and redefine the web as we know it. We all know what happened. Applets never went anywhere, but Java had enough interesting properties that a lot of programmers started working with it in many areas, most of them never envisioned by any pundit at the time. Who would have guessed back then that Java would become the de facto standard on the back-end, sharing an equal footing with .Net in delivering millions of transactions every day to users around the world? Let's take another example: PHP. Does PHP have a killer app? None that I can think of. Of course, a lot of very successful programs and web sites are written in PHP (forums, blogs, etc...), but none of these can be considered "clinchers". Instead, PHP became successful quietly, discreetly, behind closed doors, while both programmers and the required infrastructures (massive support by Internet Service Providers) were being slowly achieved without anyone realizing it. To onlookers, it looked as if one day we woke up, and PHP was everywhere. But make no mistake: the process was continuous, slow and developed on a massive scale. A similar argument can be made for Javascript. The more I thought about it, the more I started wondering if the idea of a killer app isn't a fallacy. Or worse: a kiss of death. As soon as a programming language or a framework finds itself in need of a killer app, it has already failed and its proponents are just reaching and trying to save a product that they know is already slowly falling back into obscurity, as the rest of the world inexorably percolates toward the next big thing, one that makes them truly more productive and that doesn't need bigot advocates to sell. Maybe what we are really looking for is not a killer app but killer apps. Not one defining product by which all the others are measured, but a multitude of tiny ones which, individually, don't really deserve any particular mention, but when put together, create a comfortable ecosystem in which programmers thrive, are productive and enjoy working in. Now, let's see if we can find the Next Big Programming Language using this criterion... Comments
Sorry, I'm being picky, and I'm not trying to pick a fight or be a troll or anything, just making a silly remark! In response to "Who would have guessed back then that Java would become the de facto standard on the back-end, sharing an equal footing with .Net in delivering millions of transactions every day to users around the world?" - surely nobody, because .Net wasn't around in '96? :P Posted by: Rich at January 21, 2008 08:59 AMWhat about Apache Tomcat? Sure, that's not really an "app," but I bet people would call RoR Ruby's "kill app" and RoR isn't an app, either. Think about it. Do you really think Java enterprise programming would be where it is today if it wasn't for Tomcat? Posted by: Erik Engbrecht at January 21, 2008 09:49 AMI think the rest of this story is that the killer app also had to be "backed" by some entity. With Windows, there was trust (however misplaced) by corporations in Microsoft that made it 'ok for decision makers purchase large quantities of Windows and Office. IIRC, there was something called GEM and something else from Logitech that much more stable, user friendly and less resource intensive than the first 3 version of Word and Windows. From where I stood around 1998-9, for Java, the "killer" combo was IBM/Websphere/WSAD. Even though the first versions of Websphere were buggy as hell, enough of it worked (along with BEA and Scientific Atlanta??) that the decision makers in corporations felt that they go this direction trusting IBM's support. WSAD/Websphere pulled the Java out of being just another niche language / environment and into the mainstream. Posted by: Scott at January 21, 2008 10:07 AMI think a killer app is like a movie blockbuster, it represents a marketing coup. It doesn't matter if it's really useful or really works, as long as it gets attention. And applets did do that for Java. And EJBs did that for the enterprise. The nice thing about these failures is that they forced other people to meet the failed promise of the original overshoot. So even a failed 'killer app' can be good for the larger ecosystem. Also worth noting, in the way of things, the worm has turned, and Applets and Rich clients may be becoming respectable again. Honestly, what I think the real driver of magic outcomes is, is the arms race. The arms race between Microsoft and Sun led to both pushing hard and fast in a variety of markets, innovating and copying off each other as fast and hard as they could. And who won? Developers, developers, developers, developers. Whichever side you were on, technologically, huge leaps forward in terms of support occured. And the Apache and Jakartas and the like came in behind and limited the ability to back into the ghetto of compatibility warfare. Posted by: Michael McLawhorn at January 21, 2008 05:10 PMSome of the next approaching killer apps: No question, Scala is all set up to be a champion. It is statically typed, so it allows refactoring and working with big teams. It merges functional programming style with object-orientation. It comes with message passing. It runs on Java VMs and therefore it can go anywhere. If someone pumps a couple of millions into a really strong Scala Eclipse plugin, Scala will be wildly successful very quickly. Your Android team did a nice job at writing a full-blown VM and very strong Eclipse integration. If you would have been really courageous (and smart, and looking into the future), you could have chosen Scala as the language for Android. ...but I suppose there would have been no way to do this for political reasons for a platform that is supposed to "feel mainstream". Posted by: Carl Rosenberger at January 22, 2008 03:27 AMCarl: Nobody would use Android if Google have used Scala. Plus It would take years to prepare the tools, and some more years to build the developer base. They leveraged the Java language, libraries, IDE and tool support nicely. After reading comments like yours i am understanding how making business decisions is more than trying to plug just another "language" to everywhere. get real. Posted by: ahmetaa at January 22, 2008 04:32 AMahmetaa: I can prove you are wrong with "Nobody". ...but I do understand business decisions a little bit, I even mentioned the concern in the last sentence of my post. I just felt like showing Cedric a mirror that he himself is sitting on one big killer app framework that can make a language mainstream. Posted by: Carl Rosenberger at January 22, 2008 09:40 AMyou can use Android with Scala, or some other people. it is still nothing comparing with the number of other developers. Fame is fleeting and fickle. Replace "killer app" with "fame". Posted by: Grant Rettke at January 28, 2008 07:29 AM@ahmetaa @ahmetaa Post a comment
|