Page 2 of 4
So what exactly was J2ME? It appeared to be a solution to what many perceived as the complete failure of the PersonalJava platform. However, while it may serve that purpose as well, what was really interesting was that it was the outgrowth of a project inside Sun Labs to create a very small version of Java that could run on embedded devices. Whereas PersonalJava was considered by many a failure, Java Card -- the Java specification for smart cards -- was considered by just as many to be a success. (See Zhiqun Chen's article on Java Card in last month's issue of JavaWorld.) The difference, perhaps, was that Java Card was the solution to the problem of programming smart cards, whereas PersonalJava was a product in search of a problem. J2ME is a solution to another problem: "Does it make sense to put Java on my pager, and if so, what does it get me?" To find the origins of this question -- and its answer -- let's step back in time a moment to the early days of the Java platform.
Java is, for many, a wonderful language in which to write code. When I joined First Person (which was the wholly owned subsidiary of Sun that was formed out of project Green and which begat Java), I interviewed with, among other people, Tom Lyon. Tom showed me a prototype called the *7 ("star-seven"). This was a small, handheld device running Java (called Oak at the time) with a very creative user interface: an animated agent named Duke ran around in Oak-land (bad pun, I know) and helped you out with your day-to-day activities. The theory was that Oak was going to run on everything. And with Oak running on everything, you would not, for instance, have to buy a new remote with your fancy new television; instead, the television would send any Oak-enabled device the classes needed to control it, and poof! You'd have an instant TV remote.
As it turns out, Oak eventually became targeted for Web browsers, which had few memory constraints. One of the problems with this development was that it eliminated the restrictions on the amount of memory needed to run Java (as Oak eventually became known); its footprint got bigger and bigger. When Java was released in March 1995, it wouldn't have fit on any handheld device of the day, only on high-end laptop computers. For most developers, that state of affairs did not change significantly until last month.
I don't know how many people responded the same way I did when I heard John's statement, but my reaction was to reach into my backpack and rip open the shrinkwrap on the Palm V.
Normally, when you buy a Palm V at a store, the rechargable batteries are pretty close to being dead. In my case the battery was about three-quarters full. That was wonderful, but the even more exciting part was seeing Duke, hand up in a wave, over the icon title, KJava. Whoa! was my reaction. Poke here and there and, yup, there appeared to be a virtual machine in my Palm (pun intended). Just under seven years after I had interviewed for the position in the Java group, I was once again holding a portable digital assistant (PDA) that was capable of running Java -- at least in the form of J2ME.