Sun's also updated Walrath and Campione's Java Tutorial with a lot more Swing material and a redesigned web site.
Sun's released version 1.0.2 of the JavaMail API. This release fixes assorted bugs.
The June issue of the Red Herring has a lot of insightful articles about Java.
Infoworld reports that Sun is reorganizing its Java efforts one more time. As near as I can tell there are now two main divisions, the Java Platform Group and the Java Product Group. The Java Platform Group will be responsible for standards and reference implementations of the Java Development Kit (JDK), the Enterprise JDK, PersonalJava, and EmbeddedJava.
The Java Product Group will be divided into a Tools Group, an Enterprise Software Group, and a Developer Group. The Tools Group will be responsible for Java Workshop and JavaStudio as well as tools acquired with Lighthouse Design and Sun's C++ and Fortran compilers. (How'd that sneak in?) The Enterprise Software group will be responsible for server software, Java WebTop, and the Java Web Server. The Developer Group will create a new Sun Developer Connection along the lines of the Microsoft Developer Network.
Sun's posted version the specification for version 1.1 of PersonalJava. Version 1.1 optionally includes JDBC and RMI and adds internationalization support.
Sun's also released version 2.0 of JavaCheck which adds support for testing your products for compatibility with PersonalJava.
Sun's also posted version 0.9.1 of the JavaServer Pages Specification for registered members of the Java Developer Connection. The final 1.0 release is expected in June.
Sun's posted an early access release of the Java Internationalization/Localization Toolkit for Solaris and Windows on the Java Developer Connection. The toolkit includes four parts: Internationalization Verifier, GenMessage, MessageTool, and Translator.
David Engberg has released version 1.2 release of the open source Java compiler guavac in C++ source and Linux binary forms. This release fixes assorted bugs and increases Java 1.1 support.
Ron Rivest of RSA fame has published a new scheme he calls Chaffing and Winnowing for using message digest algorithms like SHA to hide data using a secret key without encrypting it. He claims it completely bypasses all U.S. encryption laws. I suspect the Federal government may feel differently.
Peter Bertelsen has posted Issue 9 of the Java Spec Report which updathes the errata in the Java Virtual Machine specification.
Apple posted the first early access release of Macintosh Runtime for Java 2.1 which supports Java 1.1.5. MRJ 2.1EA1 features various bug fixes and performance enhancements (though not all the ones demoed at WWDC). This release requires a PowerMac and QuickTime 3.0.
ORO has also released the third beta of OROMatcher 1.1. This version includes allows you to make substitutions a function of a match and adds thread shareable Perl5Patterns.
Sun's posted the draft specification 0.9 of the new Java Advanced Imaging API which will become a standard extension to Java. This API provides the capabilities you'd need to write perform various Photoshop-filter like operations like image tiling, deferred execution, regions of interest, and many common point, area, and frequency domain operators.
Mcgraw Hill has posted an online beta of Karl Moss's Java Servlets book.
Persimmon MLJ is a ML to Java byte code compiler. The first release is alpha 0.1 which does not yet support functors. Persimmon MLJ is available for Windows 95/NT, Sparc Solaris, and Alpha OSF/1 3.2.
IBM's alphaworks has updated XML for Java to support SAX 1.0 and UTF-16 as well as various bug fixes and a few API changes.
Microsoft's released Internet Explorer 4.0.1 for the Mac.
To rephrase what Sun is asking for:
The exact details of Sun's request are unknown. Sun filed the motions under seal, which is a fancy way of saying that they're so egregious that Sun is too embarassed to let the world see them. However, going by Sun's press releases, Sun wants Microsoft to cripple its Java tools and implementations. Sun is allowed to add native code to Java Workshop to support Solaris specific features. Inprise can add native code to JBuilder to support Windows specific features. Apple is allowed to add native code to Macintosh Runtime for Java to support Mac specific features. Only Microsoft is to be prevented from supporting its platform of choice, and limited to producing pure Java.
I suspect Judge Whyte isn't as much of a patsy as Sun expects. I doubt he'll go along with this transparent ploy to single out Microsoft for special abuse. At least I hope he won't. Accepting Sun's allegations at face value would set a dangerous precedent, and be a disaster for developers. It would establish Sun's right to prevent shipment of any Java software it doesn't like.
I think pure Java is a good thing, but I think it should be up to developers to decide whether that's what we want or not. I don't think it needs to be legislated by the courts. The simple fact is developers have expressed collective disinterest in most of Microsoft's proprietary extensions. But the fact is, many of us do need to write single-platform applications. Why is it a good thing when Apple exposes the native APIs of Rhapsody (now MacOS X) to Java, but it's a bad thing when Microsoft does the same thing on Windows?
A truly open language like Perl, C, or Basic is not encumbered by any such restrictions. Vendors are free to implement as much or as little of it as they are able or willing to implement. They are free to add to or remove from the language as they see fit. And developers are free to choose the version that best meets their needs. But obviously, this isn't what Java is. Instead, Java is a closed, proprietary product owned by Sun Microsystems; and Sun Microsystems has demonstrated that it will use Java as grounds to sue its competitors if it can.
Today, Sun is suing Microsoft because, let's face it, nobody likes Microsoft. But if Sun wins its battle with Microsoft expect it to turn its sights to other competitors like SGI, HP, IBM, or even a resurgent Apple. Java is too important a language to be controlled by the whims of one for-profit company that sees it as a lever for gaining the proprietary control over APIs and operating systems that it always wanted but could never win in the marketplace. The bottom line is Sun hates Microsoft because Sun wants to be Microsoft. I don't think Sun will win. But if they do, expect them to be every bit as nasty, monopolistic, and unfair a competitor as Microsoft already is.
Personally, I'm skeptical. Although Macintosh Runtime for Java is improving and I expect that Apple might reach the level of todays's Windows VMs by Q398, they're shooting at a moving target. The Windows VMs are improving too, and Apple is too far behind to catch up in a few months. Apple's stated goals for Q398 are Java 1.1.6 and acceptable AWT perfermance. By the time Apple provides that, the rest of the Java community will be working with Java 1.2 and hot spot compilers.
Also, as today's quote of the day alludes, Jobs announced yet another new operating system to be delivered in 1999. As for the previous flavor of the year, Rhapsody, it's scheduled to follow Taligent, Copland, and Gershwin into oblivion after an initial 1.0 release later this year that no one will pay any attention to.
The new flavor of the year is Mac OS X which merges parts of Rhapsody with about three quarters of the MacOS and is scheduled to ship in late 1999. Cynics will note that that's more than enough time for Apple to change its mind again. Apple desperately needs a new, modern OS and has for years. However I find myself wishing they'd just shut up and deliver the software instead of delivering more speeches.
Sun has posted beta 0.7 of the Java Speech API Specification. This release seems to clean up and systematize the API but doesn't add any major new features.
Bruce Eckel's updated the electronic version of Thinking in Java for JDK1.2 Beta 3. This handles changes in the Collections API and Swing.
ComputerWorld reports that Microsoft's Visual J++ conference flopped with only about 225 total attendees. In a similar vein Mike Loukides of O'Reilly reports that developers at JavaOne expressed almost no interest in Microsoft Java tools. Despite all the hype in the press and online about Microsoft balkanizing Java, both pro and con, there seems to be little chance of it actually happening. Microsoft's efforts seem likely to fail for the same reason ActiveX failed: developers just aren't interested, and they aren't using the technology.
Apple plans to release Macintosh Runtime for Java 2.1 Early Access 1 sometime next week. This version is supposed to be compatible with JDK 1.1.5, Swing, and features optimized java.awt.Graphics and threading. The AWT won't be much faster, but that's scheduled for EA 2 along with faster, asynchronous networking.
Several readers wrote in to tell me that JDK switching is included in the $799 professional version of JBuilder, not just the $2495 client-server version.
Luca Lutterotti has posted a revised 1.0.2 swingall.jar file that includes work arounds for some Swing bugs encountered on the Mac.
Mark Fardal is compiling a new FAQ list about Java on the Macintosh.
Sun's released the first beta of Personal WebAccess 2.0, a web browser for the Personal Java platform.
Sun's posted the first early access release of JavaHelp on the Java Developer Connection. JavaHelp is a standard extension to Java 1.2 for online help that supports the navigating, searching, and displaying of help files.
Sun reports that copies of the JDK 1.1.6 and JRE 1.1.6 downloaded before April 30 had an outdated installer and an incorrect README file. The correct versions are available now. JDK users do not need to download it again, but anyone who's redistributing the JRE should download the new version.
Paul Philion is collecting votes for the top ten bugs in Apple's Macintosh Runtime for Java with the hope that Apple will fix them in short order.
Mozilla source code is now available through Concurrent Versions System (CVS).