Sitting here at AdobeMAX I can't help but think that Adobe have created exactly what a bunch of people, including myself, have been campaigning for in the Java space for a while. Namely a lightweight profile that concentrates on the desktop area.
I've said before about profiles being an important direction for Java and to my mind that exactly what Adobe are doing with Flex and AIR. They've created a restricted profile based on a limited (but therefore powerful) set of functionality. What they don't have is a consistent model that works on the server (they use Java for that) but they have clearly defined a profile that works.
The point here is that the "kitchen sink" mentality pushed by the core Java SE team has clearly retarded the ability of companies to innovate and deliver different approaches for different environments. We are seeing this in part in the mobile space where Apple, Google and others (including Adobe) are moving away from J2ME towards more specific approaches which are often around taking desktop technologies and shifting them onto the powerful smartphone platform. With Java SE 6 being so large this just wasn't an option in the Java space (SavaJE have done some work, but who wants all that stuff on a mobile phone? MIDI support?
So while companies like Adobe are demonstrating, as are Microsoft with Silverlight, that new models work we are seeing Java turn into an ever bigger beast. This is really sad as many of the things here at Max are stuff I've seen demo'ed in Java many, many, years ago. The problem therefore is not that Java can't do this stuff but that the trajectory that Java has been on has prevented it.
So can Java get back into the lead? Potentially, but it requires a fundamental reassessment of how Sun view Java, both its core and the profiles and models that are acceptable. With the JCP appearing to be abandoned for Java SE 7 the omens are not great, but you never know. Until then it means we have to all start working in a mixed technology environment which is a pain in the arse, but it just isn't sensible to insist people download a web-server to run your client application.