The next versions of the Jave runtime which will ship in the middle of July will not run on Windows XP. How will this impact developers?
Despite the fact that Microsoft ended support for Windows XP on April 8, 2014 it still has lots of users.
Some of these are in large organizations that have negotiated extended support contracts with Microsoft; others are sticking with tried and trusted hardware, hoping to avoid problems arising from the lack of Microsoft security patches.
The fact that Java, which has a reputation for security problems which probably reflect its ubiquity as much as its inherent buginess, will no longer deliver security patches to XP systems is probably of greater concern to XP "hold-outs" than simple lack of Microsoft support.
While Microsoft made a concerted effort to ensure XP users know about the end of support, with a 3-year countdown campaign, Oracle has posted an unobtrusive note on the system requirements section of the Java Download site:
As of April 8, 2014 Microsoft stopped supporting Windows XP and therefore it is no longer an officially supported platform. Users may still continue to use Java 7 updates on Windows XP at their own risk, but support will only be provided against Microsoft Windows releases Windows Vista or later.
Many of those clinging to XP are trapped there by apps or the role and responsibilities these legacy systems perform. For example our local office has an XP machine running a Java based alarm system - there no firmware update and it refuses to run under compatibility mode - so switching from XP would mean ripping out an extensive and still serviceable system.
The problem is exacerbated by the fact that retails sales of Windows 7 officially ceased on October 30, 2013 and that that be are rapidly approaching the date set as the cut-off for being able to buy the Home versions pre-installed on new hardware, October 30, 2014. Due to pressure from customers Microsoft retracted this date for Windows 7 Professional and its End of sales table also now states:
Note that when the retail software product reaches its end of sales date, it can still be purchased through OEMs (the company that made your PC) until it reaches the end of sales date for PCs with Windows preinstalled.
Given that Windows 8.x isn't popular as a desktop OS is another reason making satisfied XP users clinging to their existing hardware until Windows 9 becomes available.
So should developers continue to support their XP apps?
The "write once run anywhere" language seems to have become the "write once and run anywhere but XP" language. Java 8 has never been supported on Windows XP, but it you force install the current version it seems to work. There is no particular reason why Oracle should support legacy operating systems, but in this case the user base is quite large - three times the installed base of Windows 8 and half Windows 7.
What this means is that if you are going to include Windows XP users in your target market then you are going to have to forgo the attractions of Java 8 and hope for the best with unsupported old versions of Java 7.
Support for existing users probably isn't sensible and simply following Oracle in announcing that your app no longer supports XP seems like the best idea. The only problem is going to be with any users who have an expensive custom support contract with Microsoft to keep XP in the expectation that their Java apps will also continue.
It looks as if Oracle has just nudged XP even further into the dead OS category.
Xamarin has produced a handy cheat sheet showing how app controls differ between iOS, Android and Windows Phone. It makes a fascinating comparison and you can't help wonder why we can't have a standar [ ... ]