Stephen wrote a great post based on data from our new RedMonk analytics platform the other day that set me thinking. Its easy to blithely assume that all developers use Macs these days, but the data doesn’t bear such a thesis out.
Briefly, Ian Skerrett of Eclipse asserted that, according to Eclipse’s community survey data, Mac had fallen behind Linux as an operating system of choice for developers. Rolling up their numbers, I get the following distribution of operating systems:
Windows is the easy winner, but Linux is as clearly second to Mac’s third. The primary takeaway for most is that Linux traction is strong amongst Eclipse users. The obvious next question is whether this trend holds amongst a wider development community or whether it’s a more localized Eclipse phenomenon.
Stephen’s post goes on to show that Windows is the dominant OS across a number of developer spaces – only in Javascript was it not above 50% marketshare, and even there its a respectable 46.4% of the market, according to our logs. Why were Ian Skerrett, Eclipse marketing director, and I pondering the numbers? For the simple reason that Apple has announced it is going to deprecate Java in its operating systems going forward, thus neatly skewering the many Java developers that choose the Mac for flow and productivity reasons. Apple has obvious and simple business reasons for making the choice – this is by far the best post on the subject.
The Apple news wouldn’t be so problematical if broad questions weren’t also currently being asked about Java governance and commitment – basically who will support the development required to ensure an awesome Java experience on the Mac going forward, especially given all the neat tricks Apple has hitherto done to make Java work so slickly on the machine? The business problem is that the only constituency really hurt by the news are Java developers- that is to say folks using Eclipse or Netbeans: Adobe, Google, IBM, Oracle, SAP developers, more than end-user customers of same? hmmmm.
Stephen’s data led me to consider another alternative: how about Microsoft as a white knight for the Java development industry? While I appreciate this sounds like an extremely weird scenario… lets consider the facts. Windows is already the leading platform in the space, so its really a question of supporting existing customers. Even by doing nothing Microsoft is likely to pick up some of those that feel they can’t keep using Macs for their day job. Of course some might go virtualised, or move to Linux. But Microsoft could pick up malcontents.
Its important to note that Microsoft has been making a long slow road to support of the the kind of open source innovation that Java supported. It has already invested in the Eclipse ecosystem via Eclipse Tools for Microsoft Silverlight. So why not invest directly in making Microsoft the absolute best place to run Eclipse or other JVM software? Certainly laptop makers want to appeal to developers, because for all RedMonk’s data the perception is that the cool kids all run Macs. Microsoft could work on a Windows developer workstation edition with its OEM partners. Windows Vista sucked too much for developers – but Windows 7 is a lot better, and we’re not even into SP1 territory yet. Some developers use Windows Server on their machines.
My basic premise is this – at the moment everything is in play in the market, and if Microsoft is really serious about attracting developers- all developers – to Windows then it needs to be strategic about Java. Its investing in supporting WordPress, Joomla and other open source technology through its Web Platform Installer Tool (gotta love the .aspx URL, eh). It recently lost Jim Hugunin to Google, at about the same time it open sourced IronPython and IronRuby, dynamic language implementations to run on the Microsoft Dynamic Language Runtime (DLR).
Jim had this to say about his departure:
However, I leave feeling respect for the many great people and products produced here. I will suffer some pain when I have to write code in Java now that I’ve learned to love the elegance of C#. I will suffer some frustrations when I have to use Google Docs instead of the finely polished UI in Microsoft Office. More than anything, I will always value the chance that I had to work with and learn valuable lessons from some truly great people.
But more interestingly in the context of this piece:
Given my new employer, I will be throwing my lot in with the Java side of the virtual machine world. I think that C# has truly evolved into a nicer language than Java and that .NET has some cool features that the JVM is missing. However, I also see great things in the Java world both technically with features like the adaptive compilation in HotSpot and more significantly in terms of the vibrant community it has managed to create that adds huge value to the platform. When I weigh them both in the balance, neither side has a clear advantage. I respect Google’s decision to standardize on a uniform set of primary programming languages with Python, JavaScript, Java and C++. I don’t see any reason to push against that set – particularly if it means I get to consider Python a primary language!
The post indicates to me at least that we’ll see an even stronger JVM play from Google going forward. But the Google App Engine JVM is designed for the cloud, not the Mac. And the whole Oracle suing Google over Dalvik thing (please see our coverage here and here) does create some fear, uncertainty and doubt around Google JVMs. Will Google be the white knight for a desktop JVM that runs beautifully on the Mac? Its quite possible. Google supports a fair bit of native Windows code to help it try and hollow out Microsoft from the inside. I, for one, love the Outlook gmail support and Picasa rocks. So why wouldnt Google play around with Apple native code around for a high performance JVM with UI extensions for goodness? Actually that sounds like a pretty tall order doesn’t it?
Microsoft should be able to engineer awesome JVM support on Windows a lot more easily than Google on a Mac. Does it make sense to continue relying on Oracle to provide the JVM? The broader question is what’s the surrounding community management and infrastructure to make Windows a more obvious choice for Java developers. And then there are the potential legal issues. But the bottom line is this: the more developers use Windows the more they’re likely to at least try other technologies from the Microsoft stack. Developers, developers, developers, developers. That much seems obvious.
Microsoft’s Professional Developer Conference starts today in Redmond. I don’t expect Microsoft to spend its time lauding Java environments – but an opportunity seems to have opened up here. I would take it. Step one – call the Eclipse Foundation and consider a full membership [yes Eclipse is a RedMonk client, and no that is not the point of this piece]. For that matter I know Oracle is offering pretty sweet terms for corporate JCP membership at the moment…
I haven’t even discussed the continuous integration to cloud disruption (see our VMware SpringSource Click2cloud coverage here. and Collabnet buying Codesion) that’s changing the way Java development is done, but like I say, disruption is happening in multiple dimensions. Apple is running around creating new competitive dynamics left right and center – which also means its creating new collaborative opportunities as well. Microsoft as a white knight in the Java space – have stranger things happened or am I batshit crazy to even ask the question? What do you think?
Adobe, Eclipse, IBM, Microsoft and SAP are clients.
SteveL says:
October 28, 2010 at 7:46 pm
MS have little to gain by having Java developers switch back to windows if they are still doing Java apps. that said, it’s better than have them switch to Linux, as then they are completely lost.
What is worth considering about is everyone using eclipse and the other IDEs for web dev, CSS style sheets, HTML, PHP coding, JavaScript dev and test. These people aren’t embedded in Java the way the server-side coders are, and if they can be encouraged to switch to VisualStudio PHP and web edition, they can test their code in IE., Firefox, Chrome and Safari on Windows. That’s something you can’t do developing on Linux, not without some VMs. If this hypothetical IDE edition also worked well with deployment onto Azure, rather than say google app engine or EC2, well, even better.
Ric says:
October 29, 2010 at 12:25 am
James – how much of that Java developer “preference” for Windows is driven by the (still extant) dominance of Windows as a target application environment; and how much will/might that change as mobile and Web/cloud become better established as target environments?
SteveL says:
October 29, 2010 at 8:42 pm
@Ric – look at it differently. Windows is the corporate desktop; even those of us who dev on Linux have to have a windows VM to handle sharepoint sites with docx files, to mark ourselves as busy in outlook to avoid meetings, to use office communicator as the “approved” IM tool. Windows is institutionalised on the desktop, and that is where you code -regardless of whether the destination server is a linux box in the basement or a VM you pay by the hour for.
The Java IDEs were cross platform, a lot of the independents use their macbooks, and now IntelliJ will have a problem.
Now, a future IDE for JavaScript (client and server) that is built on Mozilla, that would be interesting.
Daniel Karlsson says:
November 4, 2010 at 4:02 pm
“Mac had fallen behind Linux as an operating system of choice for developers”
or my take:
Java developers who have switched to Macs have then switched to other languages since the UI experience of a Mac Java app is so poor.
sorry could not resist 😉
The Apple Developer Backlash – notes from the field #dropple says:
November 12, 2010 at 6:14 pm
[…] post – hashtag #dropple. Please check out my other coverage on Apple and the permission-based web here and […]
CommaSV says:
January 19, 2014 at 1:36 pm
How to lie with statistics…