Contrary to my earlier report, release candidate one of the JDK 1.3 is available for Windows 95/98/NT only. It is not available for Solaris. Sun's moving to unify the reference and production releases for Solaris, and consequently won't have the JDK 1.3 for Solaris ready until sometime in the second quarter.
Sun's posted release candidate one of the JDK 1.3 for Windows on the Java Developer Connection (registration required). This release mostly fixes bugs in the beta and speeds up the whole package in various places. The Java Plug-in can now cache applets and more easily install optional packages like the Java Mail API or the Java Cryptography Extension. It's also available in a Japanese version.
API Changes since the beta include:
org.omg.CORBA
java.media.sound.*
packages to java.sound.*
.
java.lang.Runtime
can now change the working directory for exec'd subprocesses.
JobAttributes
and PrintAttributes
classes are now in the java.awt
package instead of java.awt.print
.
Sun's posted two new Java Specification Requests for server side Java. JSR 53 describes the "Java Servlet 2.3 and JavaServer Pages 1.2 Specifications". New features include improved support for localization of applications, less required flushing, application events , better debugging, explicit XML support, tag libraries, and WebDAV and WAP support. JSR 52 proposes "A Standard Tag Library for JavaServer Pages". In particular new tags will allow data sources to be specified, such as from JDBC and LDAP. Both of these were proposed by Sun, and review closes February 7 for both.
Sun's also posted JSR 54 describing JDBC 3.0. Goals are to "consolidate the current core and optional package into a single entity", "align JDBC 3.0 with the Java2 Enterprise Edition Connector Architecture", and "add minor new functionality to reflect support for SQL99". This was proposed by Sun, and review closes February 17. This may become a standard part of Java 1.4.
Release candidate 1 of JPython 1.1 has been posted. JPython is a Python-to-Java byte code compiler that allows you to script Java class libraries with Python Version 1.1 features better compliance with C Python 1.5.2. There are also lots of bug fixes.
Yesterday U.S. District Judge Ronald Whyte partially reinstated his injunction forbidding Microsoft from shipping Java software that fails to pass Sun's Java compatibility test and requiring them to warn customers that applications built with Microsoft tools may run only on Microsoft's implementations. The order had previously been lifted by an appeals court. I haven't been able to get the actual text of the order yet, so I'm not sure how sweeping this order really is, but the actual impact of this decision seems likely to be quite minor.
IBM's alphaWorks has posted a beta of version 2.0 of the RAS (Reliability, Availability and Serviceability) Toolkit for Java. The RAS Toolkit for Java offers message logging and tracing services to Java programs. It includes loggers, handlers, events, and formatters.
Red Hat, Caldera, and Turbo Linux have all agreed to include IBM's non-free Java Development Kit for Linux in their respective distributions. Personally, I'm still hoping for a real clean room, open source Java.
The source code for the Mailpuccino pure Java email client has been released under the Gnu General Public License. Experienced Java Developers are invited to participate in further development.
IBM's alphaWorks has updated two products. JTAPIChat now supports Java 1.2 on all Java 1.2 capable platforms, notably Solaris. And version 0.7.4 of the Log Package for Java fixes a few bugs.
Version 0.1.82 of Tritonus, the open-source implementation of JavaSound for Linux has been released. This version sports a configure script that makes installation easier and now builds and runs with JDK 1.1.x.
Sun has posted two new Java Specification Requests. JSR 50, the Distributed Real-Time Specification proposes something along the lines of making RMI work in real time applications (or perhaps designing a real-time safe replacement for RMI). This was proposed by the Mitre Corporation. I don't know enough about real time programming to have an opinion about this proposal. The review closes February 14, 2000.
JSR 51,
New I/O APIs for the Java Platform proposes to create some
new standard I/O APIs for Java to address some well-known
shortcomings in Java I/O. These include asynchronous I/O, memory
mapped I/O, better I/O exceptions, a better cross-platform
understanding of file types, scanf
-like character input,
printf
like character output, and direct access to the
character set converter classes now hiding in the undocumented sun.io
package and used internally by InputStreamReader
and OutputStreamWriter
as well as String
.
These will be partially in a new
standard java.nio
package and partially in existing
packages like java.io
. These classes will follow
existing I/O design patterns (streams, filters, readers, and
writers and so forth) to the extent possible and will be mostly
unsynchronized, like the existing I/O classes. This one was
submitted by Sun, which virtually guarantees it's approval. The
review closes February 3, 2000.
This one I do know enough to have some very strong opinions.
Most of these seem like good ideas. Asynchronous and memory
mapped I/O are longstanding needs in Java. Adding them should go
a long way towards improving Java's performance in and fitness
for certain I/O intensive operations (like 3D Fast
Fourier Transforms on 500 MB data sets). A better understanding
of file types and attributes is crucial for a lot of end-user,
client side applications though I do pray that Sun gets
somebody in the working group who actually understands the
Macintosh for a change. I am strongly opposed, however, to any
attempt to add anything like scanf()
or
printf()
to Java. They are completely unnecessary.
Java already has fully adequate classes to accomplish anything
these can accomplish. These functions are
only requested by unreconstructed
C programmers and computer science professors who are using the
same tired Pascal exercises they've been using for the last
twenty years. (This may not be exactly what Sun is proposing. The
JSR isn't perfectly clear on this point. It also talks about providing Perl-like
regular expressions. This might be a good idea if the API
were extremely clean, and if it didn't get in the way of programmers
who weren't using these facilities.) If nothing else, this at least gives me plenty of
material for a second edition of Java I/O.
Sun reported earnings of $353 million, i.e. 21 cents a share, for the second quarter of fiscal 2000. This is a 30% rise in net income from the same quarter last year, and exceeds analysts consensus by a penny a share.
Sun's posted the first beta of version 1.2 of the Java 3D API for Windows and Sparc Solaris on the Java Developer Connection (registration required). Version 1.2 has a "completely different internal architecture than that of Java 3D 1.1.3" that allegedly allows Java 3D to scale better. This release also fixes many bugs and adds various features. This release requires Java 2.
The Apache Project has released JServ 1.1. JServ is an open source servlet engine that works on any Java 1.1 virtual machine. It supports version 2.0 of the Java Servlet API.
IBM's alphaWorks has released the first public version of Weblets, software for manipulating the live browser Document Object Model (DOM) with Java.
AlphaWorks has also posted a new release of the ClassBroker for Java that adds support for Java 1.2 delegation model for class loading (even in JRE 1.1).
Version 0.2 of the Jazilla pure Java web browser has been released. Version 0.2 cleans up the source tree, uses the XBEL format (whatever that is) for bookmarks, and fixes assorted bugs.
Version 1.0.1 of the free BlueJ Integrated Development Environment has been released. This release adds the ability to open non-BlueJ packages, Linux support, and syntax highlighting.
Since I least checked in on the Java Community Process back in November, Sun has accepted eight new Java Specification Requests. These are:
assert
would be horribly misused by unreconstructed
C programmers who have never learned how to use objects and exceptions and who probably never will,
at least not unless they're forced to by the lack of their familiar tools.
I feel the problems that programmers want assertions to solve
are adequately addressed
by IllegalArgumentException
s and unit tests, both of which are dramatically under used
in existing code.
In addition the reviews have closed on two more:
They will likely be accepted any day now.
IBM's alphaWorks has released version 0.7.3 of their Log Package for Java with various enhancements and bug fixes. Essentially, this is echo printing on steroids.
Horst Heistermann's HTMLWindow is a free (as in free beer, not open source) pure Java component for displaying HTML documents.
Sun's posted an early access release of the Java Mail API 1.1.3 on the Java Developer Connection (registration required). This releases adds support for SMTP Authentication and SMTP Delivery Status Notification as well as fixing assorted bugs.
Sun's posted the source code for the Java 2 Platform, Enterprise Edition (J2EE) version 1.2 for Solaris Sparc and Windows NT. The license doesn't seem too onerous (though it's certainly wordy enough that I might have missed something) but as a matter of general principle I recommend that people not download or use this source code. In the long term too many programmers having had access to Sun source code could have extremely negative consequences for potential clean room, open source implementations of Java.
Sun's released version 1.0 of the Java Access Bridge for Windows. This product allows Windows based Assistive Technology to get at and interact with the Java Accessibility API.
Tek Tools has released version 3.50 of the Kawa IDE for Windows. Version 3.50 adds Code Completion and supports the Java Platform Debugger Architecture (JPDA). Consequently the debugger is a lot more powerful and robust. Project Management has also been improved and a lot of bugs have been fixed. Kawa is $59 payware.
IBM's alphaWorks has released HyperJ for multi-dimensional separation and integration of concerns in standard Java software (whatever that means).
AlphaWorks has also released a new version of their Log Package for Java with various enhancements and bug fixes. Essentially, this is echo printing on steroids.
Finally, alphaWorks has posted a new version of the RAS Toolkit for Java to reinclude some class files that were unintentionally missing from the previous version.
ICEsoft has released the first demo of ICE Browser 5.01, a pure Java web browser component which supports HTML, XML, CSS, DOM, JavaScript, MathML, and so forth. Version 5.01 adds PDF rendering, XML namespace support, and fixes assorted bugs. ICE Browser 5 is $1500 per product you use it in, and is not license compatible with open source projects. The demo expires February 1, 2000.
FatBrain has posted my latest Straight Java column, Overloading int Considered Harmful.
Stuart Roebuck has written five Sherlock 2 plugins that search Sun's Java Website Apple's MRJ-Dev Mailing List Archives, the Advanced-Java Mailing List archives, Cafe au Lait and Apple's Developer site. They're available here at Cafe au Lait in StuffIt format via http or ftp. (If any Sherlock experts can figure out why these don't work with Sherlock 1, please send email to sr@adolos.com.)
Sun's posted release candidate 2 of their version of the JDK 1.2.2 for X86 Linux on the Java Developer Connection (registration required). This release fixes a few bugs.
Sun's posted version 1.0.2 of the Java Message Service (JMS) Specification. The Java Message Service API supports message queueing and publish-subscribe styles of messaging. According to the Sun's JMS FAQ,
JMS messages are asynchronous requests, reports or events that are consumed by enterprise applications, not humans. They contain vital information needed to coordinate these systems. They contain precisely formatted data that describe specific business actions. Through the exchange of these messages each application tracks the progress of the enterprise.
Happy New Year! Happy New Millenium! May this one find you well. Following tradition, I thought I'd post a few New Year's resolutions for Cafe au Lait/Cafe con Leche.
There's a lot more I could promise, but that should be enough to occupy me for some time; especially since I also have to find time for actual paying work. I had four things I really needed to get finished before I left for Christmas vacation. I finished one of them, so I start the New Year already in the hole. The next several months will be extremely busy. I'll be finishing one book for Spring release at the same time I'm starting on a new XML book for O'Reilly. I'll be speaking about XML and Java at various venues in New York, Silicon Valley, Mississippi and London between now and April. I'm also exploring a number of opportunities to do hands-on training. I'll continue to teach my Intro to Java course at Polytechnic University. I'm even noodling with the design of a radically new user interface that would be to Windows what the Macintosh was to DOS (but don't tell anyone. It's a secret; OK?) 2000 may well be my busiest year yet. Wish me luck; and have a happy, healthy and fun third millenium.