The TIOBE programming community index is a report published by TIOBE software that attempts to rank programming languages by popularity. The validity of these rankings is frequently questioned, but they are often still referenced when discussing the popularity of different languages. The index is compiled by analyzing search terms related to the languages from all of the major search engines.
They just published their April 2012 index. I haven’t looked at the index in quite a long time because the metrics are shallow, but one thing that caught my eye was that Objective-C, the programming languages used by Apple for OS X and iOS, was sitting at number 4. I knew for a fact that Objective-C had never been a terribly popular language before iOS came about, but I didn’t realize just how popular it has become. The index might not be science, but it is indicative.
So, out of curiosity, I decided to pull up the TIOBE index for Objective-C over time. The chart is impressive; Objective-C has traditionally been so unpopular that even today, the only main-stream use of the language is by developers working on Apple platforms. Yet here we are, in 2012, with it being the 4th most popular language after just a couple of years of crazy growth in popularity. The iPhone was released in 2007, the App Store in 2008, but you can see that where the development really starts to take off is somewhere after 2010. When the iPad, iPhone 4, and the Mac App Store were born.
Then you look back at commentary like this piece by Fred Wilson, saying that startups working in mobile should focus on Android first because in a year Android would be number one. Yet Java, a language that is used widely outside of Android, is ceding ground. Obviously it will never fall out to Objective-C any time soon on a wide scale because of its huge range of uses (I write almost exclusively Java code at the lab), but in spite of the fact that Android is gaining marketshare, it isn’t gaining developer share.
Developers want to be where the money is, and the money is the platform that sells apps. Consumers who use Android phones don’t buy apps, for a multitude of reasons. Some of them probably don’t even know that they can; they just know that they have a phone and they don’t care about its capabilities. These are people who just want a free upgrade and get hocked an Android pitch by the local phone store rep. Some of them just don’t like the experience; I know a lot of people with Android phones that are fully aware that they can download apps but choose not to. Some because they don’t want to deal with the performance and battery penalty. Some because the experience of using
the Android Market Google Play is so unfriendly. You can even take a look at mobile browser share, where despite Android’s dominance it seems that nearly nobody actually browses the Internet on their Android phones. It is also widely known anecdotally that Android users tend to not pay for apps, focusing on free apps. Google Play’s app library is being driven by a race to the bottom, and this has a horrible effect on ROI for developers as well as app quality.
The drastic rise in popularity of Objective-C only serves to reinforce the idea that developers don’t want to work on Android, or minimally that they don’t want to work on Android exclusively. If you had gone back to the 80’s at the beginning of the NeXT era and told third party developers that one day Objective-C would be the 4th most popular programming language, you’d probably have been laughed out of the whatever building you were in and back in to your time machine. With the exception of folks with a great deal of passion and zealotry for the language, many people will admit that Objective-C, while not a terrible language, is also not many people’s favorite language to work with. Yet it is dominating in popularity. It’s getting harder and harder these days to find ways to refute the fact that iOS will not stop growing wildly any time soon, in spite of all the “disappointing” products we’ve seen over the years. People will still try, but it’s gotta be getting so difficult.