Oracle breaks, then mends Eclipse with new Java build

Somewhere in the JVM (Java Virtual Machine) is a company field, identifying the source of the JVM. Following its acquisition of Sun, Oracle reasonably enough changed the field in version 1.6.0_21 to reference Oracle rather than Sun.

Unfortunately some applications use the field to vary some command-line arguments according to which JVM is in use. “If Sun JVM do this, if IBM JVM do that.” Eclipse was one of these, so Oracle’s update caused “crashing and freezing issues” for Windows users. There is more information here.

When the problem was discovered, Oracle issued an update that reverts the change. Hence Ian Skerrett at Eclipse has posted Oracle Demostrates Great Community Support and Fixes Eclipse.

The issue demonstrates that almost any software change can have unintended consequences, especially if the software is an application runtime.

Should Oracle have checked for this before release? Possibly; though it cannot check every build against every application on every platform. Still, everyone has done the right thing here.

Will the JVM now say Sun for ever? I would think for some time to come, bearing in mind that companies may standardise on specific Eclipse builds and stay on them for an extended period.

Microsoft and the NHS: what went wrong?

Microsoft UK’s John Coulthard, Senior Director Healthcare and Life Sciences, has posted a comment on the decision by the NHS not to renew its EWA (Enterprise Wide Agreement) with Microsoft. His summary:

The bottom line is the NHS benefited from the productivity gains delivered through a suite of Microsoft software worth in excess of £270m per year. The actual cost to the NHS was £65m per year, delivering a saving of saving of £205m to the NHS and British taxpayers. For the next three years the cost would have risen to £85m as the NHS deploys more and more technology while the National Programme rolls out.

Software supplier whinging at loss of a lucrative contract? Of course; but at the same time I’d be interested to know whether this results in greater expense for UK taxpayers, of which I am one, and what is the real reason for the contract’s termination.

I’d like to think the decision is part of a strategy to end vendor lock-in and promote both competition and use of open source systems; but the truth may be less inspiring.

What are we to make of this report in Computer Weekly which says:

“Out of the blue, the Cabinet Office rejected the cut-down version of the renewal," said a source. "The noise from the top is that they are not sure national agreements work. It will be down to the trusts to make sure they are fully licensed."

One of the odd things reported is that the cut-down agreement was to have cost £21m, I presume annually; but the government is paying an immediate £50m to Microsoft:

The Cabinet Office did agree to pay Microsoft about £50m to cover software used in the previous agreement that was not licensed, but attributed the spend to the last administration’s budget.

That does not sound like a strategy to save money, when you consider the licensing costs now facing NHS trusts who no longer have an agreement in place.

Now, it is possible that the long-term effect will be to reduce lock-in, though that is optimistic; I do not know if any NHS trusts are actually planning to move away from Microsoft’s platform and even if they are, it is not something that can be done quickly. Another scenario is that most of them make their own agreements with Microsoft, the total cost of which exceeds what the EWA renewal would have cost.

Still, the outcome will probably please Google which has its own idea about how to provide IT for healthcare.

Nothing I’ve read really explains the decision and I would like to know more.

Stats that matter: Android grows in mobile, IE stops declining, eBooks take off

This should be three blog posts; but you’ve read this news elsewhere. Still, I can’t resist a brief comment on three recent trends.

Browsers

The first is that usage of Microsoft’s Internet Explorer has levelled off after a long period of decline. Microsoft says it is increasing but the numbers are too small to say that with confidence. StatCounter global stats for May to July show slight decline for IE (52.83% –> 52.37%) and FireFox (31.54%->30.88%), with Google Chrome the main beneficiary (8.81%->10.32%).

On this blog Chrome has grown from 4.2% to 12.4% in the last year. IE is still declining: 44.9% in July 09, 39.6% in June 10, and 38.2% in July 10.

My guess is that the success of Windows 7 might have brought back a few FireFox users. The interesting story though is where Chrome will be when it stops growing its share. My second guess is that it will be ahead of FireFox, though that is speculative. It is WebKit though, and I think that will be bigger than Mozilla’s Gecko thanks to adoption by Google, Apple, Adobe and others.

Mobile

Next, Google Android. Nielsen reports that it has pulled ahead of Apple iPhone in the US SmartPhone market; both are behind RIM’s Blackberry though that is in steady decline. RIM is announcing Blackberry 9800, the first on OS 6, later today; but I doubt it will disrupt Android’s growth. The developer angle is that Android is now equal to Apple’s iPad/iPhone in strategic importance, which will be a relief to Adobe – Flash runs on Android but not iPhone.

Android owners lack the satisfaction of Apple iPhone owners. 21% of them are eyeing the iPhone for their next upgrade, whereas only 6% of iPhone owners want Android next. Only 42% of Blackberry owners intend to remain loyal. It is all tending to confirm my speculation back in April that Android is the new Windows.

So in two years time, what will be the market share for RIM, Nokia Symbian/MeeGo, Windows Phone, HP Palm WebOS? It will not be easy for any of them.

eBooks

Finally, eBooks. The Kindle vs iPad vs Nook vs Sony is one story; but the bigger one is that the eBook is happening at last. David Carnoy’s recent articles on Amazon give the background. One is an interview with Amazon’s Ian Freed in which the retailer says eBook sales have tripled in the first quarter of 2010 vs that in 2009, and claims 70-80% of the market. Another looks at what Amazon didn’t say. However the market shares work out though, what matters is that screen, battery and wireless technology are now good enough, and publishers and authors willing enough, for eBooks to become mainstream, with huge implications for the media industry.

SOA, REST and Flash/Flex – why Flash does not PUT

Adobe’s Duane Nickull has an illuminating post on how the Flash player handles REST. Nickull is responding to a post by Malcolm Box in which he complains how hard it is to use Flash with a REST web service. Box observes that Flash cannot send POST, PUT and DELETE requests when running in the browser, and does not send cookies.

Nickull defends the Flash behaviour:

Flash’s HTTP libraries currently support GET and POST. My architectural view of this is that the HTTP libraries only should really support these and not worry about the others.

He also notes that cookies are a poor way to manage state:

Cookies are for the browser and belong in the browser. Having Flash Player able to access cookies would be a mistake in my own opinion. Any logic that is facilitated by a browser should probably be dealt with at the browser layer before Flash Player is used.

Now, I think the comments on REST are important to read if you are engaged in designing a web service, as many of us in these days of cloud+device. There is a kind-of “word on the street” approach to web services which says that REST is good, SOA/SOAP is bad; but in reality it is not so simple, and these distinctions are muddled. REST is arguably a form of SOA, you can do SOAP with REST, and so on.

One factor is that reading data in a web client is far more common than writing data. It is easy to be an advocate of the simplicity of REST if all you are doing is GET.

The question Nickull asks is whether the transport protocol has any business dictating how the data it transports should be processed, for example whether it is an operation to retrieve or to write data:

In an SOA world, the transport functionality (usually implemented using SOAP) should focus on just delivering the message and it’s associated payload(s) to the destination(s), optionally enforcing rules of reliability and security rather than declaring to the application layer processing instructions to the service endpoint.

Read the post for more of the rationale behind this. Maybe, even if you are doing REST, restricting your web service to GET and POST is not such a bad idea after all.

That said, whatever you think about the architectural principles, you may find yourself having to write a browser-hosted Flash client for a service that requires an HTTP verb other than GET or POST. There are ways round it: see this discussion of Amazon S3 (which uses PUT) and Flash for an example.