Minor thought about Nokia's strategy...
I've kept quiet publically about my views on Nokia, my former employer, simply for the reason that quite a lot of the public discussion is just mindless bashing - the public opinion in Finland in general is quite bipolar: if things are going well, you can't say bad things; and if things are going badly, you're supposed to be competing about who can invent the most creative bashing. And I think a lot of the discussions has so far been pretty destructive, and kindly put, context-free.
Anyway, one thing that really irks me about this whole Windows Phone strategy is something that worried me already with Symbian: the fact that it's completely bound to the Windows ecosystem. Yes, Visual Studio is a nice environment, but if you take a look at the offices of any random self-respecting innovative startup, or peek at any gathering where alpha-geeks congregate, you'll see overwhelmingly nothing but Apple logos. And this has been true for the past seven or eight years or so.
Still, a few years ago, mobile development occurred on Windows and web development on Mac - mostly because mobile operating systems were their own beasts, and you needed a host environment to write stuff on them (though you could write Java code for feature phones both on Mac and Linux too, but mostly it was a pain). Now, both dominant players in the smartphone world, Android and iOS have very deep roots in Linux and BSD, respectively, and many of the engineers who built those systems are Mac and Linux users - so the development environments are available on those platforms as well.
Now, when your average alpha geek realizes that mobile is cool, are they going to ditch their existing platforms, toolchains, email clients, etc so that they could be first in a completely unknown environment? Will a hipster ditch his Mac and iPhone to use Windows to code for Nokia? Or lug two laptops into the cafe? Or reboot his machine to switch between operating systems?
I have my doubts. The preference of the work environment is ingrained pretty deeply into people. Yes, some people have the ability to keep switching between OSs, and some people just plain prefer Windows. But my guess is that whenever someone creates a mobile startup, they first code for what they're familiar with (which in these days will be iOS & Android), and only if it works, they hire an offshore consultant to replicate the experience on Windows Mobile to get the rest of the market. You can get some pretty great talent from Romania, Ukraine, Russia or India for quite cheap...
Now, obviously there is value in being the first-mover in Windows Mobile space - less apps is less competition. If you're really good, both MS and Nokia will use their marketing muscle to highlight your app in order to promote their own platform and phones. But still, it's an awfully big risk to start off with the small market - 'cos in order to be big, you absolutely must get to the Apple and Android stores. And someone else might make it first. If someone clones your best-selling iOS app on Windows Marketplace, well, the loss isn't great.
Of course popular apps will appear on Windows Mobile as well; once you have the concept proven, it's easy to replicate. But still, will Windows Mobile be the platform on which the Next Big Thing will be born? Or will it be the "Can Haz Too" -platform, nice and comfy for your dad to join Foursquare after all the hipsters have already done their final check-in and moved to Wherever?
I don't know, and I certainly don't want to underestimate Microsoft's marketing muscle... but it seems to me that they'll need to do something fairly radical to start winning back developer's hearts. A lot of the server-side stuff these days is pretty much "sorry, we don't really support Windows that well", and for many developers it seems that Windows is the place where you pop in to check whether your site still works on Internet Explorer. So it's hard to see why it would be different for mobile any more.
(If I'm wrong and for some reason there's some sort of a selection bias here and it just so happens that all the Macs owned by developers happen to be people I know and everyone else uses Windows, please do let me know in the comments.)
(Update: Just learned that Nokia is even kicking out excellent developers from their dev program for not developing on Windows Phone. So they're turning to Android/iOS. Oh well. Developing for Symbian wasn't ever fun, but this isn't the way to end it.)
Back to weblog
|"Main_blogentry_220712_1" last changed on 23-Jul-2012 09:39:21 EEST by JanneJalkanen.|
It doesn't really matter now, but some people had the Symbian toolchain up and running on Linux.
Anyway, I personally have a Windows machine at home. Work was Windows for Symbian and Linux for Android (or further back, Unix). I've never had a Mac and for the price I think I'd rather have a more powerful Linux or Windows machine.
And on the other hand, isn't it more-or-less impossible to develop for iOS on Linux/Windows? As I understand it, you have to shell out for that expensive Mac.
Anon, my entire argument was that you would probably be in the minority here. Apple's hardware is pretty cool as is, and the build quality is rather excellent (and Magsafe has saved my laptop countless times :-). And besides, for a developer the computer is the most important tool they have, so it's okay to shell out a bit more money for it, so I don't think price is really the deciding factor for most developers. It also looks to me that once people have switched, it's kinda hard to switch out. Windows 8 and new Ubuntu desktops look great though, but there's quite a bit of inertia, and especially with Windows it's so hard to develop software to be deployed on Linux, as you have to rely on all sorts of hacks and go around platform peculiarities - starting with path separators. New stuff also comes late on Win - node.js for example wasn't available for Windows for quite a while.
Yes, Apple is very particular about their own toolchain running only on their OS. I think they're happy to ignore developers who don't want to switch - but it's easy because they're winning. Google is approaching the situation by embracing all platforms, so I think they have a chance, but Microsoft brings a mutually exclusive choice on the market: you either develop for iOS or for Windows Mobile. (So you either dual boot or have a second computer.)
I've tried to find some survey results for this. Of course, the target audience of each survey will of course skew the results, but it gives a general idea.
The 2012 Eclipse Community Survey ("Each year we survey the Eclipse community to gather some insight into what developers are doing with Eclipse and open source") says (slide 8):
* 55% continue to use Windows; a decrease of 8% from 2011
* Linux usage increased 4.5% to 32%
* Mac usage increased 3.5% to 12%
"The Mac operating systems has surpassed Linux in popularity as a development environment in North America according to the recently released Evans Data North American Development survey. Although Windows remains overwhelmingly the most popular operating system for development with over 80% of developers using it, Linux has slipped to third place with only 5.6 percent using it as their primary development platform, while 7.9 percent now use Mac OS."
"From the statistics below, collected from W3Schools' log-files over a period of seven years, you can read the long term trends of operating system usage."
For June 2012:
* Windows: 84.2%
* Mac: 8.6%
* Linux: 5.0%
Anyhoo, I think looking at the statistics like that is a part of the overall problem. First, this calculates everyone, including all the corporate software developers who use just whatever the company tells them to, as well as all game studios, who develop for consoles or PC, everyone who builds large custom web apps for corporate internal use (J2EE anyone?) and of course not forgetting all the offshoring companies. However, in web startups and more established companies that haven't yet had a CIO push them a cheap Microsoft solution, Mac seems quite prevalent. Just glancing around at any geek conference tends to tell you a different story than what the numbers are.
The other thing is that mobile developers are obviously using Macs. If Windows Mobile has 50,000 apps (1/2012) and Apple App Store has 500,000, but yet there are ten times more Windows developers, that would mean that each individual Mac developer is 100 times more productive than an equivalent Windows developer. Which obviously isn't true - I like to think that it's pretty much 1:1, so obviously there is far more than just the 8% when it comes to mobile development. Yes, you can count in other factors as well, but I think you have to stretch it pretty far to claim that Windows has a strong lead on developers - especially in mobile and/or new companies - these days.
Also, there are different classes of developers. Some are good, and some are bad. One good developer can do stuff a thousand bad developers could never do. A massive part of innovation comes from the good developers (though bad developers can innovate too, if lead properly). Reducing the developers by platforms to rough-and-tough buckets not only misinterprets the issue; it's also a bit demeaning, thinking that you can just switch developers like you would parts to a computer.
Unfortunately, there's no way to tell what portion of the good developers are Mac users. My gut feeling (which is what this entire article is about) is that it's a far more significant portion than what number-crunchers think.