I think GWT, Android and its Dalvik VM and Google App Engine for Java are all very interesting. But as a developer I’ve been a bit put off by this nagging worry that they’re not “real” Java, and that going off in that direction would progressively take me outside the (so far) relatively-benign stewardship of Sun and the JCP.
The worry is that things like this would take me away from the community standards with a choice of competing and compatible implementations, and into a world of arbitrary single-vendor products with quirks and foibles, lock-in, arbitrary changes and suprise announcements that can suddenly turn your world upside-down.
With the Oracle acquisition of Sun, that perception could change very rapidly.
Hopefully Oracle will play nice and keep the good bits of Sun’s approach to Java whilst sorting out the problems. Hopefully they’ll manage to retain at least the key people, put in sufficient resources to finish and “polish” the things that Sun never managed to, and make better decisions on strategy and marketing. Make the JCP better, or at least not make it worse. And find a way to make good money from Java without having to do anything untoward. If we’re really lucky they’ll do all of that without making a mess of the technology itself.
But back in the real world, does anyone really think that’s how it’s going to go? I’ve only a little experience of Oracle products and their way of doing things, but what I’ve seen from them in the past doesn’t fill me with any great confidence for the future of Java.
So in my head I’m expecting this to degenerate into a rather old-school fight between Oracle, IBM and to some extent Google, with them all pushing increasingly proprietary and “integrated” stacks that live in their own idiosyncratic universes and gradually diverge from each other. With lots of theatre about joint specifications and standards, but increasingly nasty disagreements and battles over licencing. There will always be some independent open-source alternatives and smaller players for particular parts of the stack, but in this scenario I can’t see these managing to keep up with the big guys (nor having any real impact outside of their own small niches).
On paper, out of Oracle, IBM and Google, the advantage might now appear to lie with Oracle. But in practice they are all big enough to mess things up very badly. There’s certainly plenty of scope for them to do so.
On that basis, the Google stuff suddenly looks no more proprietary or risky than anyone else’s solutions, and could easily be the least-bad (and least-evil?) of an imperfect bunch. Arguably they already have a head-start down the road that the others are now about to follow. They’re also way more “zeitgeist” and future-oriented than IBM or Oracle.
Theoretically Microsoft and .NET might gain from all this. If people stop seeing the Java world as a neutral, no-lock-in platform based on community-agreed specifications, then .NET starts to look like just as valid an option as Oracle’s Java stack or IBM’s Java stack or Google’s Java offerings. But I’d expect that anyone with reason to choose Java rather than .NET would still do so even if Java were to fragment into separate vendor universes.
In the end this all depends on what Oracle actually do with Java, and with products such as Glassfish. At the moment we’re all just speculating based on our own experiences of Oracle and their products; their history with previous acquisitions; and an awful lot of guesswork. So for now I guess I have to give them the benefit of the doubt and wait until we see their strategy and plans and their actual behaviour.
But if I ever get any spare time, I’m now far more likely than before to spend it looking into Google’s java-related platforms and tools, and I can’t imagine I’m the only one…
So if I was Google I’d be feeling pretty happy about it on the whole.