JDK 1.4.2 is out, with 3000 bug fixes, big speed ups (possibly just for Intel),
Swing look and feel for Aqua, GTK and Windows XP.
JDK 1.5 is due Summer 2004 and has a bunch of new languages features (more on
this later). The main focus is ease of development, monitoring and management.
JDK 1.5.1 is due Spring 2005, and JDK 1.6 (Mustang) sometime in 2006.
There's a big focus on pushing Java into the "corporate developer" space, currently occupied
by the Microsoft ASP/VB folk and the world of PHP etc. Much talk of growing the number of developers
from three million to ten million. Hence, there's a lot of focus on "ease of
development" and tools.
One colleague (you know who you are) dubbed it "dumbing down the platform".
In addition to the JDK 1.5 languages features of generics, enumerations, for
iterator (discussed here) there
was much cheering for autoboxing, printf and metadata.
Autoboxing (JSR 201) bothers me because I don't yet know how
it's going to behave. The idea is simple enough, in that you can now write
Integer x = 3.
Integer x = new Integer(3). But I wonder what's going to happen when you try to add together Integer objects where one of them is null. I guess it'll be a runtime cast exception: I've tried the 2.0 early
access release of these features, but they're too
incomplete to say what happens. I'm sure it'll all sort itself, but it's the first part of Java that's ever
given me a bad feeling.
- In the same vein, metadata (JSR 175) is worrying.
It seems to be
xdoclet formalized in some way, such that you can replace
naming conventions (e.g., getX, setX) with an "@something" tag
in your class definition (or maybe javadoc) and then something (the compiler?) will
generate code for you. That's my take -- it may be wildly off the
there were very few slides on metadata in the entire
conference. So... very early days for metadata, but it
was mentioned many times in all sorts of places, so it's
going to be big.
Very interested in the Project Rave tool. It's a drag-drop-click
MS Studio-like tool for building web sites, all backed by good
stuff like JavaServerFaces. Early access release due Autumn 2003. Related articles: Sun: Rave on over to the other side (The Register).
In other tools news, there was a brief demo of Project Relator,
which allows you to build a user interface in SVG, and then connect
SVG hotspots to Java actions. I thought this was just going to
be for J2ME devices, but the guy I spoke to was thinking it
was for all sorts of user interfaces, and that maybe it wouldn't
be available under MIDP 1.0. During the demo we saw an Illustrator SVG
file wired up to web services, with a throw away line about the
web services library being about 3k, which was probably
the most impressive part. Early access due 2004.
JAXB 2.0 (JSR 222) enhances the XML-to-Java-code mapping framework
by supporting partial mappings. That's great news, because it means you can pick which
bits of an XML document (schema) you want to work with and ignore
the rest. There's the possibility that it'll also support updating
partial documents. Sounds dull, but is quite exciting, honest.
JSR 223 is intriguing: Tomcat is to be the
reference implementation for web scripting in Java, initially using PHP. Does this
mean PHP developers will be able to make use of Java back end
code? Don't know.
JTWI (Java technology for the wireless industry) aka JSR 185
is intended to pre-empt wireless device manufacturers from introducing
their own APIs. E.g., trying to avoid the situation where, say, MIDP 1.0 comes out, and the handset manufacturers go and add
their own com.nokia or similar APIs for the bits that were missed out. It consists of a road map
for where things are heading, and an accompanying set of APIs. The first road map is out now (PDF).
JavaServerFaces is big. The final release is due autumn 2003, and I like to think of it as a formalization
of Struts. One of the core ideas of JSF is to make web site development under Java something that tools manufacturers can support. I won't be using it until 1.1 because it
doesn't have any templating features.
- Location based API (JSR 179) is out there. It looks like a really well thought-out
API for getting location-based information on the handset. This can either be from GPS or from some
network-based (cell) solution, but as an API user you don't have to worry about how you get the information. I asked which
mobile networks were supporting the cell-based location services, but no information was available. However
I did learn that there are standards for exposing this information over a network.
Guy Laurance, CEO of Vodafone Global Content Services, told us that downloaded phone apps were selling for an average of US$2.50, of which
the developer received US$1.20. Some of these apps were selling in the millions.
Went to see a great presentation on how eBay have been using Java to handle traffic on their web sites.
Interesting in that they're only using bits of J2EE that they know perform, with the general
message being that you don't need -- and probably don't want -- to use all of J2EE. For example,
they use code generation for database access rather then the J2EE-way. I also found it interesting
that they don't use server-side sessions at all. They either keep what information they need in
the user's cookies or just go back to the database every time. This allows them to remove the need
for server affinity and just make use of a round-robin server architecture.
- There was a great presentation on concurrency utilities scheduled for java.util.concurrent in JDK 1.5.
What I didn't realize was that these utilities have been out there for some time.
The summary: if you're doing anything Thread related (pooling, queues, etc) you want to use
- New websites: java.net is for the community with a daily
news section at today.java.net edited by O'Reilly. java.com
is the consumer home page, and Sun are pushing
ahead to get Java recognized by consumers by having (maybe)
adverts and some kind of branding on devices. Good idea.
- And finally...
|Bad old logo
||Good new logo
Sun v. Apple ice hockey.
Thinking time in the Alumni Lounge.
Gareth catching up on sleep.
Entertainment before a keynote.
During a keynote.