When I was finishing up my last book, Java Secrets, John Osborn, one of my editors at IDG, asked me what I thought would make a solid book for IDG's new professional series. "Beans! Let me write about beans!" I practically shouted. It was obvious, even then, that JavaBeans were going to be hot, and that this is where Java was moving. It's four months later; I know a lot more now about JavaBeans than I did then, and I'm more convinced than ever that JavaBeans is going to be an essential part of the future of Java, and indeed of the broader software development world. This book is your introduction to the exciting and fast-growing world of JavaBeans. With this book you'll learn how to write your own unique beans that can be loaded into builder tools to quickly produce powerful and customized applications.
The JavaBeans Power Guide is 355 pages, $39.95, and includes a CD with the JDK and the BDK (Beans Development Kit) as well as an assortment of beans and builder tools. It's now in stock at Amazon, Computer Literacy, and better bookstores everywhere. I've posted the preface, examples, table of contents, and some other material here on Cafe au Lait. I'll add some more in the New Year. In the meantime, why don't you check out JavaBeans and let me know what you think?
Netscape's also released a version of the Java 1.1 patch for Windows Communicator that can be manually installed from a zip file.
Sun's released version 1.0 of the JavaMail API Specification. The current early access release of JavaMail does not fully implement the 1.0 specification. A new beta expected in January is expected to fully implement the 1.0 specification.
Object Plant 1.4.5, a $25.00 shareware program for object-oriented analysis and design, is now available. This version fixes a number of bugs and adds a few minor features.
Webmasters using other web servers who still want to use servlets, should check out IBM's Servlet Express 1.0, now in beta, that adds servlet support to the Lotus Domino Go Webserver Release 4.6.1 for Windows NT, Sun Solaris, and AIX, Netscape Enterprise Server 2.01 and higher for Windows NT, Sun Solaris, and AIX, Netscape FastTrack Server 2.01 and higher for Windows NT, Sun Solaris, and AIX, Microsoft Internet Information Server 2.x and 3.x, and last but most definitely not least, Apache 1.2.4 for Sun Solaris and AIX.
Sun's also released version 0.06 of the Infobus 1.1 draft specification and version 0.95 of the Drag and Drop Subsystem for the JFC.
Apple's released the first non-beta of Macintosh Runtime for Java 2.0 (MRJ). This release is based on Sun's JDK 1.1.3 and fully supports Java 1.1. It requires MacOS 7.6.1 or later. MRJ 2.0 may be selected as the virtual machine in Internet Exploror 3.0.
You can download MRJ 2.0 from the following sites:
The .hqx files are 13.5MB, the .bin files are 9.9MB in size. you'll need Diskcopy 6.1 to mount the disk images. This is only a runtime. No corresponding SDK (compiler, profiler, etc.) has yet been released.
The W3C has recommended that the HTML 4.0 standard be approved. Formal voting among W3C members will take about six weeks and formal approval is expected.
Symantec is shipping the $299.95 Visual Cafe 2.0 Pro and the $499.95 Visual Cafe 2.0 Database Edition for the Mac, and version 2.1 for Windows 95 and NT. 2.0 users can upgrade for free from Symantec's web site.
Separately, Sun has released an idltojava compiler that you'll need if you want to implement ORB-based network services in Java.
Version 1.1b of JConfig for the Mac now allows you to enumerate the user's monitors, and get information about each of them.
IBM's released an allegedly final version of their port of JDK 1.1.1 to OS/400 and the first beta of a JDK 1.1.4 for AIX.
Clemens Lahme has published JACOB, The Java Commando Base, a free emacs hosted class browser and project manager for Java.
I've added about a dozen new books to the Java books list.
IBM's alphaworks has released BeanExtender 2.0. This tool which is itself written in Java allows more dynamic customization of Java at design time without access to the beans' source code.
One noticeable trend in this direction was the number of hardware companies with big booths like Dell and Compaq that didn't have anything special to show except fast X86 boxes to run web servers. There were similar unexpected booths dedicated to word processors, OCR, package delivery, and other technologies not normally thought of as Internte products. Internet World is no longer just a show about niche technologies for the Internet. Internet World is fast becoming a show about anything and everything to do with computing because the Internet is borging the rest of the computing world. (borg, verb: to assimilate, resistance is futile, cf. Microsoft)
On the other hand, I must admit I didn't see anything really interesting or new on the Java front. I can confirm an earlier report. Of the several products I looked at in the Java pavilion, not one was using pure Java. Most were mixing and matching Java pieces with native code written in C or C++. 100% pure hype notwithstanding, commercial developers perceive a need to integrate native code to deliver adequate performance.
Version 1.1.5 of the JDK is now available for for Windows 95/NT 4.0 and Sparc and X86 Solaris. JDK 1.1.5 features significant performance improvements over JDK 1.1.4 through recently tuned class libraries and also includes several bug fixes.
Sun's also released the final version of the Native Threads Pack for Solaris that uses native Solaris threads to distribute Java threads across multiple processors.
Jackson denied the Justice Department's request that he hold Microsoft in contempt of court for violating the 1995 antitrust agreement. Both of these rulings are preliminary, and subject to reevaluation and change during the ongoing proceedings.
Sun's posted version 0.5 of the JavaBeans Activation Framework (JAF) draft specification. An earlier beta implementation is also available. JAF lets JavaBeans programmers dynamically determine the type of an arbitrary piece of data, encapsulate access to it, discover the operations available on it, and instantiate JavaBeans components to perform those operations. For example, if a browser loaded a Quicktime movie, JAF should find a bean that can play the movie.
IBM's alphaworks project has updated their Jikes debugger so that it works with the JDK 1.1.5 debugging API.
Alphaworks has also released the first point release (1.0.1) of the Attachlet applet proxy server that relays applet originated socket connections from the applet host to remote hosts, thus avoiding the normal security restrictions imposed on network connections from applets.
Sun's still promising a JDK 1.2 beta by the end of the month; and since Sun effectively shuts down between Christmas and New Year's, that means before Christmas. They've also released a draft specification for server-side Enterprise JavaBeans.
Finally they've released the first beta of a Windows 95/NT 4.0 plug-in for Internet Explorer 3.0 and later called the Java Activator. The Java Activator lets web page designers specify the use of the latest version of Sun's Java Runtime Environment (JRE) instead of the bundled Microsoft VM. A future version will support Netscape Navigator 3.0 and later. Between the Java Activator and the Java Porting and Tuning Center, it seems that Sun is finally realizing what users have know for a long time: they simply can't rely on third parties to port Java to their platforms. If they want it done right, Sun has to do it themselves.
The Beanery, from IBM's alphaworks, is a wizard tool for creating JavaBeans. The beanery allows developers to prepare a bean's properties, serialization behavior, bean info, custom property editors, customizers, and documentation; then generate source code. The source code can then be edited by hand to add more psecific features, or loaded into other builder tools like JBuilder.
Netscape's released beta 2 (excuse me, preview release 2) of Communicator 4.0.4 for Unix (Solaris 2.4, Solaris 2.5.1, IRIX 6.2, HP/UX 10 and AIX 4.1 ) that supports Java 1.1. This is primarily a bug fix release.
Version 1.1.1 of Sun's $299 payware HotJava HTML Component is now available. (1.1 was never released. This is the first release since 1.0.) Improvements and changes include fairly liberal redistribution rights, compatibility with more JavaBeans Builder tools like Symantec Visual Cafe, support for developer-provided security managers, a few API Changes, and a lot of important bug fixes.
Version 1.1b2 of Patrik Lundin's symbolic math package is now available.
The first beta of version 1.1 of the Java Naming and Directory Interface is now available to registered members of the Java Developer's Connection. This release adds LDAP 3 support, documentation for LDAP and NIS service providers, and updated security information. The final release is expected in January.
Next, on Thursday February 12, I'll be giving two intermediate level talks on Java Network Programming at Software Development 98 at the Moscone Convention Center in San Francisco. At 2:00, I'll show you how to use Java's URL and URLConnection classes to download data and content from Internet servers. You'll learn how the URL and URLConnection classes are integrated with Java's content and protocol handlers. You'll also learn how you can use these classes to communicate with CGI programs on a web server. Possible applications include web spiders, link checker robots, and persistent server-side storage.
At 4:00, I'll cover Java's Socket and ServerSocket classes. Sockets are a powerful abstraction that let you communicate with remote network hosts as easily as you'd read or write a file on your hard drive. This talk shows you how to take advantage of Java's Socket and ServerSocket classes to communicate with any TCP server or client. Possible applications include both standard protocols for email, ftp, and news, and custom protocols for networked multiplayer games, interactive chat, whiteboards, and more.
The W3C has issued a proposed recommendation for XML 1.0. This recommendation will be voted on by the 229 W3C Member organizations in about six weeks. No significant hurdles to its adoption are anticipated. Both Microsoft and Netscape have pledged to support XML in 1998.
Mizutori Tetsuya has posted instructions for running the beanbox on a Macintosh made using the November release of the BDK and Macintosh Runtime for Java 2.0
IBM's alphaworks has released a new OS/2 beta of their High Performance Compiler for Java that supports part of Java 1.1.1.
Beta Version 0.1.1.5.1 of Javide fixes a few bugs in this $25.00 shareware IDE.
Version 0.39d of the Pizza compiler is now available. Pizza is an extended version of Java that supports p arametric polymorphism (templates), first-class functions (function pointers) and class cases and pattern matching (visitor-style patterns).
ORO Inc. has released an early beta of version 1.1 of their regular expression class library OROMatcher 1.1 that adds a serializable Perl5Pattern class and a Perl5ReaderInput class. These require Java 1.1.
They've also released version 1.2.1 of NetComponents which fixes a bug in the handling of dates in the FTP classes. This bug would probably only bite programmers who are writing mirror programs that automatically transfer changed files.
Lawsuit or no lawsuit, Microsoft's gone ahead and released version 2.0.1 of its Java Software Development Kit (SDK).
Sun's released draft 0.05 of the JavaBeans InfoBus Specification. This release adds Data Controllers, security considerations and database access interfaces as well as various improvements in the other interfaces and classes.
The first beta of the JavaServer Toolkit 1.1 has also been released to registered members of the Java Developer Connection. This is a class library for building network servers. A variety of classes are included that provide server-configuration administration; authentication, access control, and authorization; Secure Sockets Layer 3.0; connection and thread management; servlets and servlet beans; and regular expressions.
I've updated the trade shows page.
Cafe au Lait is now mirrored in Austria.
Outside of annoying international users, this release's primary purpose is to fix various bugs. Nothing new of significance has been added.
The README.txt file in Swing 0.6.1 says
This release is called 0.6.1. If you've been keeping track you may be wondering if you missed Swing 0.6. A version of Swing called Swing 0.6 will be shipped along with the first beta release of JDK1.2 which should be available in a few weeks. Our release cycle is substantially shorter than the full JDK. Thus Swing 0.6.1, which contains a few bug fixes that are not in Swing 0.6, will ship first.I've been working on an applet that allows you to explore your virtual machine's support for different Unicode character blocks for my next book with O'Reilly. If you have a Java 1.1 capable web browser, you may want to check it out.
The first version of the JDK 1.1.4 for MkLinux has been released by an independent team of programmers.
Sun's released version 0.6.1 of the Java Foundation Classes to registered members of the Java Developer's Connection. This release adds two new look and feel implementations: the cross-platform Java Look and Feel (JLF) and the Motif look and feel. The Rose look and feel has been eliminated.
The CD bundled with O'Reilly's Perl Resource Kit includes th first version of JPL, a Java/Perl interface written by Larry Wall, creator of Perl. JPL allows programmers to write Java classes with Perl implementations. In essence these are "native" methods written in Perl rather than C. Thus bilingual Java/Perl programmers can use Perl's powerful string processing and regular expression features in their Java programs. So far, JPL is only available from the CD in the $149.95 Perl Resource Kit.
Microsoft has released Internet Explorer 4.0.1 for Windows 95 and NT. 4.0.1 fixes various bugs and adds accessibility features such as enlarged fonts and keyboard navigation. Depending on options you select, you'll need to download between 13-25 megabytes which will occupy 56-98 MB of your hard disk.
If you think you might be a problem Mac user, you should check out Appleholics Anonymous.
Ernest Friedman-Hill has released Jess 3.2, the Java Expert System Shell. This release fixes assorted bugs and includes a manual for the first time.
If you're Maria Lewis at Sun Microsystems, or someone with a similar sounding name who called me on the phone yesterday, please call me again. My wife accidentally erased your message from my answering service :-(
Sun's released version 0.1 of the JavaMail API classes to registered members of the Java Developer Connection. This release includes the core JavaMail packages javax.mail and javax.mail.internet and early access versions of the IMAP and SMTP service providers. The JavaMail specification and the APIs in this release are still subject to change.
Netscape's released the final version of a patch for Communicator 4.0.4 for Windows 95 and NT that supports Java 1.1.
Less than a week after releasing NetComponents 1.1, ORO, Inc. has released NetComponents 1.2, a free networking class library. Version 1.2 adds an SMTP package. Version 1.1 added an NNTP package and improved the FTP and Telnet classes.
Henrik Bengtsson has released a free Java Format class that provides C-like fprintf(), printf() and sprintf() methods. Personally, I think this is the wrong way to approach this problem. Java isn't C, and attempts to reproduce C-like APIs, especially APIs that depend on such unusual C functionality as variable length argument lists, are guaranteed to be kludgy. Nonetheless, a lot of people seem to want this; and as such efforts go, Bengtsson's Format class seems like one of the best.
IBM's alphaworks has posted a minor update to their PilotBean for writing Java programs that communicate with a PalmPilot.
Novell's released the first public beta of Moab, their next version of NetWare that includes a Java virtual machine. To receive it you have to give Novell your name and address so they can ship you a CD.
JDE is an Emacs hosted development environment for Sun's JDK. It supports syntax coloring, compilation, debugging, class browsing, javadoc browsing, and running of Java programs from inside emacs. The current version is 1.9.1. It's distributed in source form under the GPL.
IBM's released a new version of their port of JDK 1.1.1 to OS/400.
NetForge 0.2.4 is an $80 shareware Web server written entirely in Java 1.1.3 that features a small server kernel extended by responder objects. Version 0.2.4 adds an administration GUI, file uploads, on the fly compression of outgoing data, web page counters, and improved servlet support.
Zelix KlassMaster is a Java bytecode viewer, editor, obfuscator and deobfuscator. The newly released version 1.0.1 fixes a few bugs.
This does not yet mean Java is an international standard. Sun must now decide which Java standards to submit to the ISO, and have each of them approved by separate vote.
Redmond WA, (AP) Microsoft (MSFT) has announced a 54 million dollar lawsuit against Bandai, makers of Tamagotchi. Microsoft is claiming that the Tamagotchi electronic pet is an infringement of its intellectual property. Microsoft spokesperson, Erik Loregard stated "Software that needs constant attention or else it dies? Sounds like Windows to me. This is clearly an infringement on our technology." A Bandai spokesperson said that any resemblance to Windows 95 was "coincidence."(Word to the humor impaired: This has been a joke. This was only a joke. If this had been a real story, you would have received instructions on how to proceed to the nearest Tamagotchi Lobby Alliance Conference for 100% Pure Digital Pets web site.)
Bill Gates died and went to stand before God...God stood over Bill Gates and said, "Well, Bill, I'm really confused on this one. It's a tough decision...I'm not sure whether to send you to Heaven or Hell. After all, you helped society enormously by putting a computer in almost every home in America, yet you also created that Windows95, among other things. I believe I'll do something I've never done before... I'll let YOU decide where you want to go."
Sun will now decide which specifications it submits to the ISO for an up-or-down vote. The ISO will have to either accept or reject the specifications in their entirety. They will have no opportunity to correct even most the blatant mistakes and omissions in the specs, and certainly no ability to make significant modifications or additions.
The final vote tally was 20-3-2 with the U.S., China, and Ireland voting against Sun's application. Australia, Austria, Belgium, Brazil, Canada, Denmark, Finland, France, Germany, Hungary, Japan, Korea, the Netherlands, New Zealand, Norway, Romania, Russia, Slovene, Sweden, and the United Kingdom voted in favor of the application. Switzerland and Italy abstained.
Javide 0.1.1.4.1 beta, a $25 shareware IDE written in Java 1.1, is now available.
Netscape's also released a new beta of Communicator 4.0.3 for Solaris, HP/UX, and Irix that supports Java 1.1. This release supports the 1.1 AWT, the delegation event model, JavaBeans, and printing. JNI is not yet supported.
Metrowerks has acknowledged a bug in the 68k version of Code Warrior Pro 2 that prevents it from compiling Java source code. A patch may be available next week. In the meantime anyone using a 680X0 Mac should put Code Warrior purchases on hold.
Microsoft's released a fix for the latest non-Java security bug in Internet Explorer 4.0 for Windows.
Macintosh Runtime for Java (MRJ) 2.0 Early Access 7 and the and the accompanying software development kit have been released to subscribers to Apple's MRJ-DEV mailing list. This release includes various bug fixes and other improvements. It requires a PowerPC or 68040 Macintoshes with at least 16 megabytes RAM.
JavaSci 0.761 is now available. This update fixes a bug in the SpecialMath.gamma and SpecialMath.iGamma methods and adds BarGraph and PieChart classes.
A new security hole unrelated to Java has been uncovered in Internet Explorer 4 for Windows. By overflowing the URL buffer (max 257 characters) for a res URL, a web server can theoretically execute arbitrary code on the PC.
Sun's released the first more or less full beta of the Java Media Framework (JMF) for Unix and Win32 to registered members of the Java Developer Connection. JMF is an API for integrating and playing media data types, such as audio and video, into Java applications and applets. This beta supports JPEG, MPEG-1, MIDI, AVI, AU/AIFF/WAV, and QuickTime.
URL
and URLConnection
classes to write applets and applications
that communicate across the Internet. The course
emphasizes writing client-side programs that
communicate with Web servers and CGI programs.
After completing this course, you will be able to:
InetAddress
class
URL
class
URLConnection
class
Web Client Programming With Java is intended for intermediate to advanced Java programmers. It is not an introductory course and requires previous Java programming experience. To successfully complete this course, students must have a thorough understanding of input and output streams, buffered streams, and the Reader and Writer classes of Java 1.1. This course also assumes that students have at least a basic knowledge of Internet host names, email addresses, and URLs, as well as how these elements are related to each other.
IBM's alphawork's Pilot Bean is a Java interface to the memo pad and datebook of a U.S. Robotics Palm Pilot PDA. This software uses native code and is only available for Windows 95 and NT.
IBM's fixed a few compatibility bugs with some IRC servers in their IRC Client for Java.
Sun's released the Java Electronic Commerce Framework (JECF) alpha 0.8. This release adds:›
Version 10 of Bruce Eckel's Thinking in Java is now available. This release adds an index as well as assorted changes and corrections.
Australia's voted "Yes" on Sun's application to be a PAS submitter for Java specifications which Sun would retain ownership and control of.
Microsoft's fixed some bugs in the installer for their XML parser 1.6. If you had trouble with it before you might want to try again.
Meanwhile, Scott McNealy continues to embarass himself and Sun with his increasingly hysterical and hypocritical tirades against Microsoft. Now he's encouraging Java dittoheads to mail bomb Bill Gates. Lawsuits and mail bombs didn't work for Apple (in fact, they're partly responsible for the mess Apple's in) and they won't work for Sun. If anybody on Sun's board is awake, would you please stop McNealy before his obsession with Bill Gates destroys Sun and Java along with it?
Denmark has tentatively voted Yes on sun's application to be a PAS submitter for Java specifications.
IBM's released a new version of the JDK 1.1.2 for AIX.
Version 1.1d of Chris Kelly's JConfig class library for the Mac now includes utility classes to
I've updated the books page.
Apple's released the final version of Macintosh Runtime for Java 1.5.1. This release fixes a major security hole that affected users of MRJ 1.0 through 1.5. All users of MRJ 1.5 or earlier should upgrade.
Microsoft has released the first beta of Internet Explorer 4.0 for Solaris and the second for Windows 3.1/NT 3.5.1. Both releases support Java.
I've updated the notes for week 5, Applets, and Week 6, Components of my Introduction to Java Programming course.
The W3C has released the first public draft of the Cascading Style Sheets 2.0 specification. CSS2 is meant to work with HTML 4.0 and XML. It adds web printing, downloadable fonts, audio cascading style sheets for visually impaired users, and greater control over the position of elements on a page.
If you're really interested and you've got an hour or more to waste trying to download overly graphical pages from Lotus's overburdened Domino servers that simply can't handle even a medium load, you may want to check out the hype on Lotus's web site. Otherwise, you can check out a few interesting tools from companies that are actually shipping products but don't have big bucks to spend on schmoozing the press:
Guido Kruger's Java 1.1 lernen is an introduction to Java 1.1 written in German. The complete text is available online.
NetForge 0.24 is a web server written in Java 1.1 that supports servlets.
Martin Pool's JavaGDBM is a Java interface to the Gnu GDBM flat-file database library. JavaGDBM uses JNI and native C code.
Zelix KlassMaster is a free byte code utility written in Java that allows you to view, edit, obfuscate, and deobfuscate Java .class files.
Version 1.6 of Microsoft's XML Parser (written in Java) supports the latest draft of XML.
Today's Windows' shareware pick is Silicon Joy's Applet Button Factory, a program for making animated buttons.
In related news, Gary B. Little, Apple's Java Product Manager, has stated that Macintosh Runtime for Java 2.0, the first version to support Java 1.1, will require MacOS 8. It will not initially run on any version of System 7. In other words it won't run on the majority of existing Macs. However, he also says that at an undetermined future date there will be an incremental update for System 7.
Microsoft has unbundled the Java virtual machine included with Internet Explorer 4.0. It is now available for separate download and can be installed with IE 3.0.2 for Windows 95/NT.
Michaki Tatsubori's OpenJava 0.2 is an extensible language based on Java. Through the OpenJava Meta Object Protocol (MOP) programmers can customize the language to implement a new language mechanism. You can think of OpenJava as a toolkit for constructing a Java preprocessor. OpenJava is itself written in Java 1.1, so it runs on any platform that supports Java 1.1. However, OpenJava generates Java 1.0 source code. Source code for OpenJava itself is available. Anyone interested in a pool on how many days till Sun's lawyers go after this?
Version 1.03.1 of Patrik Lundin's symbolic math package fixes various bugs.
Netscape's opened up the fourth pre-release version of Visual JavaScript for Win/95 and Solaris 2.5.1.
Netscape's also released the Zigbert 0.60 digital signature tool, formerly known as Jar Packager Command Line Edition. Zigbert signs Java applets, JavaScripts, and SmartUpdate packages. Version 0.60 adds support for SmartCard based certificates. Zigbert is available on Windows 95/NT, Solaris, and Irix.
The vote of was 15-10 in favor of allowing Sun to be a PAS submitter. However a two-thirds majority in favor was required for a yes vote. Only companies willing to pony up several thousand dollars in dues are allowed to vote. Whether this sort of poll tax is appropriate for a quasi-governmental standards making body in a democracy is a good question. Certainly, the whole process is wrought with companies like Microsoft and Sun attempting to subvert the standards process for their own profits.
At the international level, the vote now stands at 6-1 in favor of granting Sun PAS submitter status. 20 countries remain to be heard from. The ISO does not specify how many yes votes are required in order to grant the application. Certainly more yes votes than no votes are needed. However, a simple majority is probably insufficient, especially if that majority doesn't include some of the major players.
Netscape has released a version of Communicator 4.0.3 for Unix (Solaris, HP-UX, AIX, and IRIX but not Linux or SunOS) that supports Java 1.1.
I don't take the counter-suit too seriously. I haven't finished looking over the complaint yet, but I suspect it's got as little or even less merit than Sun's suit against Microsoft. Counter-suits are just another weapon in the pointless legal battles between high tech companies that don't like each other, and don't have anything better to do with their excess cash than pay lawyers.
Sun Microsystems reported net income for the most recent quarter, which ended September 28, of $108 million, 27 cents per share. This is down from $123 million, 32 cents per share, for the same quarter last year. It's roughly three cents per share less than was expected, even after accounting for $52.2 million worth of acquisitions. Scott McNealy blamed part of the shortfall on poorer than expected licensing of Java, JavaOS, and Java chips.
JLex 1.2.2 improves compliance with Java 1.1.
Sun is releasing the $79 payware Java Studio 1.0 today. This program is supposed to allow non-programmers to build JavaBeans based applets and applications. It's available from all the usual sources of payware developer software.
Andreas Pfaller's API2Mac converts javadoc generated API docs into a format usable on the Mac by renaming the html files and adjusting the html links. Version 1.2b1 is now available via anonymous FTP from ftp://ftp.codewell.com/pub/apf/API2Mac1.2b1.sit Source code is included.
stop()
,
suspend()
and resume()
methods in java.lang.Thread
.
Instead programmers are supposed to simply poll and use wait
conditions.
Version 1.8 of IBM's Jikes Debugger
is a graphical debugger written in Java that allows you to inspect
the current state of a remotely
executing Java program. The Jikes debugger
uses the undocumented
sun.tools.debug
package to
interact with the remote virtual machine.
The first developer release of Apple's Rhapsody has shipped; and it seems likely that Java will be the preferred programming language for the new platform for essentially all high level software, much as C is the preferred language for Unix development. The AWT is not yet supported, but full access to the native API is supported. This is probably easier for Rhapsody than other OS's since Rhapsody's API was originally written for Objective C which Java imitated.
"Wiiiiilliam Gaaaates..."Continued..."Oh, hi, Satan. What's up downstairs?"
"It's tiiiiime..."
"Yeah, but we're still debugging Memphis, and Ballmer swears he'll wipe out Adobe before lunch, and Melinda wants to change the tile in the third-floor kitchen again, and..."
They've also released TclBlend, a new package for Tcl 8.0 that allows TCL programs to load and interact with the Java VM.
Both JACL and TCLBlend require JDK 1.1. TCLBlend requires JNI so it doesn't work in Microsoft's VM.
CrossBasic DR 1r21 is now available. CrossBasic is a Macintosh Basic compiler that produces Java applets.
IBM's alphaworks has updated their IRC Client for Java.
Sun's released the first public version of the Java Mail API to registered members of the Java Developer's Connection. The Java Mail API provides a set of abstract classes like Message, Store and Transport that make up a mail system. Concrete subclasses of these abstract classes handle specific formats and protocols like SMTP, POP3, and IMAP.
In there a law of conservation of lawsuits? In the wake of the highly publicized Sun-Microsoft and Microsoft-DOJ suits, Amazon and Barnes and Noble have dropped their suits against each other; and Intel and Digital appear to be close to a settlement. Both Amazon and Barnes and Noble wasted a lot of money on their suits, though Digital's suit appears to have netted them in the rough ballpark of a billion dollars or so when the chips are counted.
One correspondent asks how I would feel if I had licensed software to Microsoft and they had chosen to leave a crucial suite out of the distribution. Good question! If they had paid me $15 million for the license, I would treat them like a customer, and see how I could work better with them. I remember that the customer is always right. It would take me a very long time, a lot of phone calls and meetings one-one before I would file a lawsuit against a customer.
On a side note, I think this indicates that web site navigation has a long way to go if multiple, intelligient people took several days to finally find a piece of crucial information at a major web site.
Comments abouts Sun's PAS application for Java standardization (a bad thing in the opinion of this site) from members of the US TAG to JTC1 are starting to to be trickle in. Sun, Microsoft, and Intel have already weighed in. Sun and Microsoft's positions are no surprise (pro and con respectively). Intel also votes no.
There are also a large number of individual comments which are overall supportive of Sun's position. Most of these are a result of a JavaLobby campaign in favor of Sun's PAS application. JavaLobby is a well-intentioned organization that nominally acts in the interest of independent Java developers. In practice, however, JavaLobby's been too blinded by the light of the Sun-Microsoft battles to recognize that a third path is available that would suit the needs of independent developers better than either of the paths offered by Microsoft or Sun. JavaLobby is so busy fighting the Scylla of Microsoft that it hasn't noticed it's falling straight into Sun's Charybdis.
The US will prepare its position at a TAG meeting on October 28 and 29.
ORO, Inc. has released version 1.0.7 of its
OROMatcher
regular expression package for Java. It
adds a quotemeta()
method for interpreting a string literally
and fixes a few bugs.
Version 1.0.9 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service. This is a bug fix release.
Version 0.9.1 of InstantDB, a free relational database written in Java, is now available. This release fixes assorted bugs.
"We believe in Java the language, but not Java the religion." -- Bill Gates the Heretic, 1997 June 17th The Ten Commandments of Java 20:01 And Jahveh spake all these words, saying, 20:02 I am Jahveh thy God, which have brought thee out of the land of non-portable code, out of the house of bondage. 20:03 Thou shalt have no other languages before me. 20:04 Thou shalt not make unto thee any binary image, or any likeness of any thing that is in an OS API above, or that is in the system internals beneath, or that is in the native code under the implementation. 20:05 Thou shalt not bow down thyself to them, nor serve them: for I Jahveh thy God am a jealous God, visiting the iniquity of the original developers upon the legacy systems integrators unto the third and fourth version of them that hate me; 20:06 And shewing just-in-time compilation unto thousands of them that love me, and keep my commandments. 20:07 Thou shalt not take the contract of Jahveh thy God in vain; for courts will not hold him guiltless that breaches his contract in vain. 20:08 Remember the core API, to keep it holy. 20:09 In other packages shalt thou labour, and do all thy work: 20:10 But the java.* package hierarchy is the code of Jahveh thy God: in it thou shalt not do any work, thou, nor thy chief technologist, nor thy developers, thy researchers, nor thy hackers, nor thy interns, nor thy contractor that is within thy gates: 20:11 For in the core API Jahveh made abstract methods and interfaces, the super classes, and all that in them is, and required the specification: wherefore Jahveh blessed the open development process, and hallowed it. 20:12 Honour thy Sun and thy JavaSoft: that thy product may be long upon the market which Jahveh thy God giveth thee. 20:13 Thou shalt not kill the JNI and the RMI. 20:14 Thou shalt not adulterate the APIs. 20:15 Thou shalt not steal market share through unfair competition. 20:16 Thou shalt not bear false witness to support Jahveh and then renege. 20:17 Thou shalt not covet thy neighbour's prospective economic advantage, thou shalt not covet thy neighbour's trademark, nor his logo, nor his developers, nor his stock, nor his ass, nor any thing that is thy neighbour's.David Wallace Croft
news.com has several attornies' reactions to the Sun-Microsoft contracts. The consensus is that Sun may be able to stop Microsoft from using the Java compatible logo and perhaps extract some insignificant amount of monetary damages, but that they can't stop Microsoft from using the source code Sun licensed to them.
Sun's posted the final version of the Java Card 2.0 specification. Java Card is an API for building vendor independent, interoperable Java applications that run on smart cards.
Section 2.6 and 2.7 of the Technology License and Distribution Agreement are the most significant in terms of this lawsuit. 2.6 is a little too long to post here, but this is what 2.7 says:
2.7 Java Classes.Furthermore, in appendix A1A of the contract the Java classes that Microsoft is required to implement are elucidated as follows:a.Licensee may determine, in its sole discretion, to include one or more Supplemental Java Classes in its Products; however, Licensee shall not be obligated to distribute any Supplemental Java Classes with its Products. Licensee shall use reasonable efforts to promptly inform SUN of its decision to exclude any such Supplemental Java Classes from Products. Licensee also shall use reasonable efforts to promptly make available to developers and customers free of charge any Supplemental Java Classes that Licensee decides, in its sole discretion, to exclude from Products. For purposes of this Section 2.7, Licensee shall be deemed to have made such "reasonable efforts" if it (i) issues a press release and posts a message on its Worldwide Web site on such pages as Licensee's support for Java is described, stating the place where any excluded Supplemental Java Classes are available, and (ii) publishes any excluded Supplemental Java Classes on CD-ROMs that are distributed through Licensee's Microsoft Developer Network within 90 days after the date that SUN delivers such Supplemental Java Classes to Licensee and makes such Supplemental Java Classes available on its Worldwide Web site within 30 days after the date that SUN delivers such Supplemental Java Classes to Licensee. The Supplemental Classes delivered by SUN to Licensee shall run on the most current Java Reference Implementation.
b.SUN agrees that the Upgrades to the Java Classes shall be limited to reasonable enhancements which remain consistent with the original intended purpose of the corresponding Java Classes delivered on or about the Effective Date.
java.lang Language Classes java.io Stream I/O java.net Networking Classes java.util General Utilities java.applet Applet Classes java.awt Abstract Window Toolkit java.awt.image Image Handling Classes java.awt.peer Implementation Classes for awtjava.rmi, java.beans, and all the rest of the additions in Java 1.1 are specifically not mentioned. These are "Supplemental Java Classes" that Sun delivered to Microsoft after the effective date of the contract.
What this boils down to is that Microsoft is not obligated to ship RMI with their SDK or IE if they make it available on their web site for separate download. They have placed RMI on their ftp site, but if they've announced that on their web site I haven't seen it yet.
Clause 2.8 d states that "Licensee shall confine the names of all VAOPs to names beginning with 'COM.ms' and shall not modify or extend the names of public class or interface declarations whose names begin with 'java', 'COM.sun' or their equivalents." (VAOPs is an acronym for Value Added Open Packages and means pretty much any class Microsoft adds to the JDK.) Note that this clause does not extend to public method or field declarations inside the java classes. Nor is Microsoft prohibited from changing the internal implementation of classes in the java packages as some have alleged. This may be a part of the license agreement Sun has signed with other licensees, but it does not appear to be a part of their license with Microsoft.
Another point of note is that the agreement does not appear to apply to native code interfaces such as JNI or JRI. There are separate clauses covering these, but they're quite flexible; essentially allowing Microsoft to do what it wants as long as it documents what it's doing. I could find no evidence that Microsoft is required to implement JNI.
Bottom line: according to my reading of the
Technology
License and Distribution Agreement, Microsoft has breached it in only the most minor
way by not posting the location
of the java.rmi
classes on their web site and issuing a press release about their availablity.
They can cure the breach by so doing. Microsoft
may or may not be in breach of the Trademark License
Agreement, but this is by far the more minor of the two. As near as I can tell the TLA
applies only to the Java compatibility logo (the swirling coffee cup)
and not to the Java brand name or trademark itself.
I have at this time only finished a single reading of the two contracts, so it's possible I'm missing something, particularly involving complicated interactions between different parts of the contracts. If you have read the contract and noticed something I've missed that tends to contradict what I've said here, I'd like to hear from you. On the other hand random flames about how Microsoft is evil and that therefore I should uncritically accept Sun's PR and support their lawsuit, no matter how groundless, may be addressed to /dev/null. Microsoft may indeed be trying to eliminate Java's platform independence, and that is likely a bad thing, but they do seem to be doing it within the scope of their contract.
Chaffee also compared Sun's JDK to Netscape's latest implementation of Java. The results show:
Chafee's also updated his
analysis of diffs between
the Microsoft and Sun implementations. His original analysis missed
changes to java.lang.Class
that Zukowski
had found.
This includes the following additions:
public Class getInterface(String s)
public Method getDeclaredMethodFromSignature(String s1, String s2)
public Method getMethodFromSignature(String s1, String s2)
public Method getMethods(int[] n)
Elixir Technology's $995 LOREx2 for Java is a Java CASE Tool written entirely in Java that supports UML notation. It can decompile existing .class files back to UML structure and interaction diagrams and provides a detailed dependency browser to ease Java maintenance. A free evaluation version is available.
New Atalanta Communications has posted the second beta of ServletExec for Mac OS. This is a WebStar API-compatible servlet engine for Mac OS web servers. Version 1.0b2 adds the following features:
Version 0.9 of Peter Hearty's InstantDB, a free relational database written in Java, is now available. This release adds ORDER BY support, reorganizes tracing, and fixes several deadlocking transaction bugs fixed.
Preemptive Solution's pre-beta DashO is a Java 1.1 code optimizer that operates on compiled .class files.
I agree with many of your thoughts like, lack of support for JNI and RMI, but adding methods, fields, and removing a few methods. Surely you can't agree with that! Is it o.k for Microsoft to decide what they should implement in their "Java" (Microsoft: yeah I'll implement that. Not that because we have a competing technology)? Finally, I don't think the Microsoft vs. Netscape Java 1.1 implementation is an issue because Netscape hasn't said that they fully support 1.1 yet, Microsoft did (that's the problem).--Steve M. Martin
One thing I noticed is that you're very critical to Sun's behavior. Sure, Sun is a for-profit company, and has its own interest. But on the Java issue, if Sun doesn't fight for the portability of Java, whose else has the clout to do that? If this fails, we will have another UNIX. And I have to write multiple versions of the same program, which is a waste of time. Your pull for nobody would aid for the fragmentation of Java. Did you realize MS' agenda?--Weigen Liang
As a real supporter of Java, you should be a fighter, not a judge or a good citizen.--Wei FuYou must know MS better than I do, but it seems that you missed the point here. Maybe many versions of Java can generate more revenue for book publishers and their
The changes may look minor, but you are not supposed to mock around with the java.* classes!!! Even Sun puts their stuff under sun.*, why should MS get away with this? NO licensee should be allowed to change or add to the Java core classes, simple.--Augusto Sellhorn
Although I agree with you in spirit regarding the necessity of a lawsuit, I am of the opinion that Sun is going for the throat early on to try to avert later, more costly litigation. I would not be surprised in the least to see Microsoft progressively alter Java until it was a Microsoft "creation" - at which point, it might be too late for Sun to cry foul play. In this case, it may be better to go straight to the triple-dog-dare.--Dan Grambihler
Netscape does not have a complete 1.1 implementation, and their VM is really slower that IE. However, Netscape has not publicly claimed they will never support RMI, JNI, JFC, Java2D, etc. etc. I think Sun is doing this now, because little by little Microsoft wants to not "support this or that".--Augusto Sellhorn
Interesting comments all. Most of them were made by multiple people. I'll address some of them in this space over the next few days.
Bazerman and Drangel, P.C., a New York law firm specializing in intelectual property and new media law, has posted the complete text of Sun's complaint against Microsoft.
Microsoft's released a stand-alone version of the XML parsing Java class library bundled with the IE 4.0 VM.
Alex Chaffee, co-creator of Gamelan, wisely decided not to take either Sun's or Microsoft's word for it. He wrote a script that compares the class files directly. He used javap from JDK 1.1.3, and looked at all the public classes defined in java.* from JDK 1.1.3's classes.zip file. You can see his results at http://www.stinky.com/java/msdiff.txt. According to Chaffee:
The script compares only public classes. It ignores redeclarations of methods as "native public" (since it's perfectly valid for MS to use native code to implement their version of the APIs). It also wouldn't notice if MS added any public classes to their java.* hierarchy (I can check that too if you like, but that wasn't a specific complaint of the lawsuit.) It also didn't notice if a "new" method was actually an override, although I went through and cleaned out some of those. I also cleaned out cases where a method varied only by the addition or removal of a "synchronized" keyword. The original output, before cleanup, is at http://www.stinky.com/java/msdiff-full.txtJohn Zukowski achieved similar results in an article for JavaWorld. He did find a single missing method inNote also that this deals only with interfaces (declarations) -- if MS changed the implementation of any methods, for instance, as Sun alleges, changing the actual color returned from one of the color classes, this will not pick that out. It also does not address the other major issue of the lawsuit: that MS refuses to develop RMI and JNI in favor of their own proprietary solutions.
The highlights:
- Yes, MS added some public methods and fields.
- As far as I can tell, MS did *not* remove any public methods.
- For the most part, the changes seem to be shortcuts for Windows-specific functions, like adding a getNativeServices() call to java.lang.Runtime, or adding getNativeData() to java.awt.Font. No Java application developer would use these methods; they're probably for use by other MS-implementation classes, and they had to be declared public because those classes are in different packages.
- There are a few actual functional additions that might confuse a developer, including:
java.awt.Window: public java.awt.Point location(); java.util.ResourceBundle: public final java.awt.Menu getMenu(java.lang.String); public final java.awt.MenuBar getMenuBar(java.lang.String);
- The "50 fields" were all added to a *single* class, java.util.Locale. MS added 50 different locations as constants that were left out of the JDK class, e.g.
public static final java.util.Locale CROATIAN; public static final java.util.Locale CZECH; public static final java.util.Locale DANISH;
- I found *no* differences in java.net (as claimed by Sun).
ByteArrayOutputStream
,
and did not notice the new fields in java.util.Locale
, but the impact of the article
is the same. The incompatibilities in the Microsoft VM have been grossly overplayed by Sun.
They're very easy to avoid, and most
applet programmers will never encounter them in the first place. Chaffee finishes with a disclaimer:
I am a staunch Java supporter and a true believer in 100% Pure Java. Personally, I think Sun was right to file a lawsuit, even if only as a P.R. maneuver. It may help the public understand just how important purity is to the Java platform. Without true write-once, run-anywhere, Java becomes just another OS-dependent application development language. Whether these particular changes were actually a threat to WORA..."I disagree with Chaffee here. I think lawsuits should be last resorts at best; and that clogging our overburdened court system with something that amounts to no more than a P.R. campaign is a particularly antidemocratic example of bad citizenship. Even if Microsoft is in the wrong, that doesn't mean that a lawsuit is justified. What Chaffee discovered is that there was a lot of room for Sun to talk to Microsoft about these differences before filing a lawsuit.
One final note, the Sun lawsuit and my comments about it have generated more interest and more comments in email than anything ever published here. I'm off to Utah to shoot a Java training video this weekend, but I'll be back on Monday when I'll post some reader responses. If you'd like to get your two cents in, drop me a line at elharo@metalab.unc.edu.
Ken Shirriff's PCFFont package allows applets to load PCF (X11 portable compiled format) bitmap fonts from a web server, and display them in anti-aliased form.
Gerald Brose has released version 0.7a of JacORB, a free Java Object Request Broker. This release features closer alignment of the IDL language mapping with the OMG standard, implementation of the Interface Repository, and various bug fixes.
Until 5 p.m. Thursday (Pacific Standard Time), you can call 1-800-633-8284 to hear a replay of Sun's teleconference announcing the lawsuit against Microsoft. The reservation number is 3261198. A transcript is available on the web.
Microsoft has issued a response to Sun's lawsuit. It says absolutely nothing unexpected. Expect lots more hot vapor from both parties in the next few weeks.
Sun is specifically not, however, seeking to revoke Microsoft's Java license which I interpret as meaning Microsoft hasn't actually violated their (still-unpublished) contract with Sun; and that this is a fairly frivolous lawsuit. If Microsoft had in fact breached their contract for a license to the Java source code, then a lawsuit based on that would be a much stronger case than the nebuluous complaints Sun is in fact pursuing such as trademark infringement, false advertising, unfair competition, and interference with prospective economic advantage. (There's a breach of contract claim too, but surprisingly it does not extend to Microsoft's license to the Java source code.)
Aside from general dislike, there seem to be three general problems Sun has with Microsoft. The first is that Microsoft does not include Remote Method Invocation (RMI). The second is that they don't include the Java Native Method Interface (JNI). The third is that Microsoft has added about 50 new methods and fields to the java packages that are not included in the JDK 1.1.
Personally, I can't speak to the SDKJ since I've never used it, but it does seem to me that the VM is IE 4.0 is far closer to complying with Sun's specs than Netscape. The two big sticking points are RMI and JNI. Since JNI isn't even relevant for applets which can't call native code anyway, I don't see much of a problem with not including it in a browser. And Sun itself is deemphasizing RMI in favor of CORBA and IDL. While the lack of RMI is mildly annoying, it's nothing compared to the lack of a 1.1 AWT in Navigator. It's pretty obvious Sun's playing favorites in terms of who they sue and for what.
Ken Shirriff's PCFFont package allows applets to load PCF (X11 portable compiled format) bitmap fonts from a web server, and display them in anti-aliased form.
Gerald Brose has released version 0.7a of JacORB, a free Java Object Request Broker. This release features closer alignment of the IDL language mapping with the OMG standard, implementation of the Interface Repository, and various bug fixes.
Until 5 P.M. Thursday (Pacific Standard Time), you can call 1-800-633-8284 to hear a replay of Sun's teleconference announcing the lawsuit against Microsoft. The reservation number is 3261198. A transcript is available on the web.
Microsoft has issued a response to Sun's lawsuit. It says absolutely nothing unexpected. Expect lots more hot vapor from both parties in the next few weeks.
I've updated the Java FAQ list. Revised answers include:
New questions include
More suggestions about ensuring cross-platform compatibility are appreciated.
Today is the final day to vote on creating the newsgroup comp.lang.java.corba.
The first alpha of the Java Web Server 1.1 has been released to registered members of the Java Developer Connection. (Registration is free.) This adds HTTP 1.1 support, page compilation, user session tracking, file and GIF upload servlets, HTML generation, and HTML templates.
Version 1.0.8 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service. This release adds a stock quote example and various bug fixes.
Luck 2.2 is a simple imperative programming language that can be translated to Java. Feature-wise it reminds me of early Basics.
Object Oriented Concepts OmniBroker is a Common Object Request Broker Architecture (CORBA) 2.0 ORB with full source code. It's free for non-commercial use.
Ron Jee's Control Tabs provides a Windows like tab-panel interface for Java 1.0 or Java 1.1. Source is included.
IBM's alphaworks has updated made various bug fixes and minor improvements to their IRC Client for Java.
For example, suppose the system notices that I like books about SQL databases, celebrity biographies, and Catholic canon law; and that you like books about SQL databases, celebrity biographies, and kosher cooking. Then the system will recommend books about kosher cooking to me and canon law to you. In other words, the system really isn't that smart. In fact the lame-brainedness of such systems was brought home to me when amazon recently recommended that I buy David Siegel's Creating Killer Web Sites, the Art of Third Generation Site Design, because I bought three books about SQL databases, including Philip Greenspun's Database Backed Web Sites, a book which takes a diametrically opposed view to web site development.
Now, at this point you're probably thinking something like, "Hmmm, I know I like Cafe au Lait and Rusty often has something worthwhile to say" (If you didn't think that, chances are you wouldn't keep coming back here) and, "I've heard a couple of other people whom I generally agree with mention Greenspun's book. Maybe I should check it out." If I'm lucky you'll check it out right now by following the link to amazon.com, and ordering the book immediately, thus ensuring I get my $2.00 kickback. (Excuse me, referral fee). This, in essence, is the nature of a recommendation system, word of mouth, even when that word of mouth is text rather than literal speech.
The fact is garden variety word of mouth still works better than fancy, database-backed recommendation systems. In keeping with my philosophy of using the lowest tech solution to the problem, I've decided to start recommending books, articles, web sites, and other reading here which I hope you will find of interest. My recommendations are going to be a bit broader than the rest of the content of Cafe au Lait, ranging over all sorts of topics related to science, technology, politics and whatever happens to interest me on any given day.
As with word of mouth from a friend who's sometimes reliable and sometimes gets a little over-agitated on subjects of no interest to you, you're free to ignore my recommendations. They'll be down below the daily news, and shouldn't get in the way of your use of this site if you just want to keep using it for a daily cup of Java as before.
My plan is to have roughly ten items in the list at any one time, give or take a few, and to change them more or less daily. Short articles will rotate through the list faster than long books. More interesting articles will hang around longer than less interesting ones. In essence, the list reflects what I'm reading and enjoying at any given time. A list of previous recommendations will also be available in case you don't visit for a couple of days and want to see what you missed.
I haven't settled on an exact format for this yet. It will probably go through multiple incarnations in coming months. Comments and suggestions are appreciated.
Sun also released version 1.0.0 of the Personal Java specification, a stripped down version of Java for consumer electronics like set-top boxes and smart phones. I found the following statement particularly amusing:
This software and documentation is the confidential and proprietary information of Sun Microsystems, Inc. ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only in accordance with the terms of the license agreement you entered into with Sun.This spec must be really top secret and super confidential given that it's on a public web page linked from several different places inside JavaSoft's site. Do you get the impression that maybe, just maybe, the lawyers at Sun are out of control?
Sun's also released version 1.2 of the Java Telephony API (JTAPI) spec.
IBM's released alpha 5b of Aglets Workbench and version 0.2 of the Aglets specification. Aglets are IBM's intelligent agent architecture for Java.
A different part of IBM has released the final version of the JDK 1.1.1 for OS/390. It's available on the web now, and on tape at the end of October. Java for OS/390 runs under OS/390's UNIX Services. Annoyingly, IBM wants even registered users to register again to get this release, but if I were you I'd just go straight to the ftp site. If IBM can't even keep track of whose registered, why should users waste their time filling out registration forms?
And yet another group at IBM has released a new beta of IBM's High Performance Compiler for Java that supports parts of Java 1.1. This compiler compiles Java bytecode into optimized, platform-specific native code.
I've updated the mailing lists page.
Java Readers and Writers teaches you how to manipulate files and how to use the Reader and Writer classes to read and write text files. In addition, you'll learn about characters sets and encodings that allow Java to deal with different alphabets and languages. This is a necessary prerequisite for moving forward into Java network programming. After completing this course, you will be able to:
FileDialog
class to choose files
BufferedReaders
to read text files one line at a time and use BufferedWriters
to efficiently output them
java.awt.TextArea
that provides word wrapping.
Javide 0.1.1.4.1, an IDE for Java written in Java, is available.
IBM's released a new version of their port of JDK 1.1.1 to OS/400.
Sun's also released version 1.0.2 of the Java Web Server.
The third release of Jo Christian's MetaWEB Classes includes a brand-new POP3 client. The rest of the classes are the haven't changed functionality but should be more stable and less buggy.
Sun's HotJava HTML 3.2 JavaBean component is available for download.
Issue 7 of the unofficial Java Bug Report is now available. As of this update, the Java Bug Report deals exclusively with documentation and specification issues. JDK bugs are no longer reported.
Sun's posted version 0.3 of The JavaBeans Activation Framework (JAF) specification. According to Sun, This framework allows developers "to determine the type of an arbitrary piece of data, encapsulate access to it, discover the operations available on it, and to instantiate the appropriate component to perform said operation(s). For example, if a browser obtained a stream of MPEG video, this framework would enable the browser to identify that stream of data as an MPEG video stream, and from that type, the browser could locate and instantiate an object that could manipulate, or view that stream."
JAF will be a standard extension, not a part of the core API, at least initially. A reference implementation of the JAF is promised. later this fall.
Chris Kelly's released version 1.0 of JConfig, a mostly native package for the PowerMac (Macintosh Runtime for Java) and Windows 95 (MSVM IE 3.01 and 3.02) that allows you to:
What's especially interesting about this freeware product is that although it's almost entirely native code and goes pretty deep into the native API, it's actually available on two major platforms. This is something many commercial developers developing native code libraries for Java still haven't realized is important.
SourceTec's released version 1.0 of their $29.80 Java decompiler, Jasmine. A free trial version is available.
I've updated the Java books list. While this update may seem quite minor on the surface, under the hood it was a huge change. The entire list is now stored in a database that I can use to generate lists that meet many different criteria. The first change you should notice is that the page loads somewhat quicker. The database generated HTML is about 20% smaller than my hand-written HTML. I'm going to spend the next few days just updating the listings, and after that I'll work on providing a lot of smaller, more targeted lists.
Current version has not been tested fully yet and documentation remains to be written, but all the classes and interfaces are there for you to play with.
Gary Howland's written a simple HTTP proxy server in Java.
IBM's released new versions of their ports of JDK 1.1.1 to OS/390 R1 and R3 and OS/400, and their port of JDK 1.1.2 to AIX.
Metrowerks itself has released a beta patch that adds Java 1.1.3 support to CodeWarrior Pro 1 for Mac OS.
PowerBBS Computing's released the $89 VB2Java, a Visual Basic to Java converter and the $99 Delphi2Java, Delphi 2 Java converter. (Database edition is $399.) Free trial versions are available.
Sun has been granted an extension until September 23rd on the submission of its response to the National Body comments on its application to be certified as a PAS submitter (that is to be allowed to submit the current Java specifications for rubber stamping without going through the formal standardization process).
Version 1.2.1 of Elliot Berk's JLex is now available. JLex is a lexical analyzer generator, written for Java, in Java.
While this is true, it in no way contradicts what I wrote. I am fully aware of the Java VM in OS/2. In fact I've reported on it on this page at various times. It's primarily because of OS/2 (and also Solaris) that I wrote "major consumer operating system" and not merely "operating system". While OS/2 is a solid operating system with some advantages over some versions of Windows, it is not now, never has been, and probably never will be a major, consumer operating system.
What makes an OS a major consumer OS? I'd argue that it has to pass the relative test. As the resident computer guru in my branch of the Harold/Leaumont/Smith/Anderson clans, my relatives often ask me what sort of computer they should buy. Generally the question is "Should I buy Windows or a Mac?" Sometimes it's phrased as "Should I buy a PC or a Mac?", but they mean Windows. You know how many times I've been asked by a relative if he or she should buy OS/2 or a Mac? or OS/2 or Windows? Zip, zilch, zero, nada, the big fat goose-egg. OS/2's impact on consumer consciousness outside of our own little corner of the world known as computer geekdom has been non-existent, despite IBM's occasional TV ads that left most non-geeks asking "Um, what was that ad advertising, exactly?"
OS/2's had some small success in the corporate world, but it's never penetrated the consumer market. The chance that it will do so in the future is miniscule. IBM's come within a hair's breadth of killing the product outright twice now. Even in the corporate world new installations of OS/2 are rare, and many current installations are being replaced by NT. I suspect a truly motivated geek could find a computer manufacturer willing to preload OS/2 for them, but you certainly won't see it advertised in consumer-targeted ads by any of the major computer manuufacturers, even IBM. And my mother/sister-in-law/cousin certainly isn't going to walk into CompUSA and walk out with an OS/2 PC.
OS/2 as Windows-killer is a dead idea. It never really took flight beyond the limited confines of OS geekdom. IBM is currently repositioning OS/2 as a network computer server OS, not exactly a consumer oriented product. Java or no Java, OS/2's presence in the consumer market is now, always has been, and probably always will be negligible.
I've updated the notes for week 2, Procedural Java and week 3, Introduction to Objects of my Introduction to Java Programming course.
iavaZIP 1.1 is a $49 zip utility written in Java that can compress files from different folders into a single archive. iavaZIP has an excellent integrated file viewer that supports binaries, images, html and Java classes. iavaZIP requires Java 1.1. Mac users accustomed to the StuffIt interface won't find anything new here, but Windows users may find themselves wondering why the other zip tools didn't add these features years ago.
Finally, SiteSearch 1.1 is a $199 local web site search engine written in Java 1.1. The SiteSearch application indexes your web site. An applet downloads the index and the actual search engine to the client which performs the search against the index and displays the results. Honestly, this scheme seems a little brain damaged to me. While I like the idea of a Java based indexer, there's little reason to download an index, even a compressed one, to the client. Making searches a server side operation would vastly improve performance.
PCWeek reports that Microsoft is pulling applets from its web site, allegedly for performance reasons.
Sun's posted version 0.4.1 of the Java Accessibility API and a draft of the Java Card 2.0 Specification.
Netscape has invented a new version scheme, the three-point release with the release of Navigator 4.0.3.1 for the Mac. Apparently the extra .1 means this is a "feature fix" rather than a bug fix. Changes include
Beta Nine has released version 1.1 of MRJ javac, a shell around the Macintosh Runtime for Java 1.5 javac compiler in the MRJClasses library that supports drag and drop compilation and setting of compiler switches.
ORO has released OROMatcher 1.0.5, PerlTools 1.0.2, and AwkTools 1.0b2 to correct an obscure bug in pattern matching, apparently inherited from Perl itself.
The U.S. government's National Institute of Standards and Technology (NIST) is taking an interest in Java standardization and conformance testing. They're hosting a workshop tomorrow and Friday on these issues. It should be interesting to see what comes of it.
InstallShield Corporation has released version 1.0 of InstallShield Java Edition that performs cross-platform installation of Java applications.
IBM has has opened four free testing centers where developers producing retail Java software products can test them on various Java platforms including AIX, OS/2, OS/390, OS/400, IBM Network Station, HP-UX, MacOS, Solaris, and Windows NT. To use the centers (located in in San Mateo, California, Hursley, England, Sydney, Australia and Waltham, Massachusetts) developers must be members of IBM's Solution Developer program, but membership is free.
A beta version of Sun's Java Naming and Directory Interface (JNDI) is now available.
Jigsaw 1.0b1, the World Wide Web Consortium's reference web server written in Java, is now avaliable. Jigsaw supports servlets.
Version 0.9.2 of Sun's PersonalJava specification is now available. Personal Java is targeted at non-PC platforms like set-top boxes and smart phones. Consequently, the PersonalJava API is much smaller than the JDK 1.1 API and occupies less memory.
Version 1.0.6 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.
Colin Stewart's commenced work on a document explaining to Unix and Windows developers how to port their Java apps to a Mac.
Sun's posted some information about security tools to be included in the next release of the JDK, including keytool, jarsigner, and policytool.
HotJava 1.1b2 is now available to registered members of the Java Developer Connection. (Membership is free.) According to Sun, "HotJava Browser 1.1 Beta2 includes all the features of HotJava Browser 1.0 plus an HTML Component, performance improvements, and enhanced stability. The HotJava 1.1 Beta 2 Release includes the Java Runtime Environment for the Java Development Kit (JDK), 1.1.4 pre-release version. You no longer need to download the JDK separately to run the HotJava Browser."
Sun's finally frozen the Java Media Framework spec 1.0, and released it to the general public. An actual implementation still lags, and will almost certainly not be included in Java 1.2; but a public beta may appear in the next few weeks for one or two platforms (probably Wintel).
Netscape's released beta 2 of their LDAP Java SDK (previously known as the Directory IFC), an all Java implementation of their Lightweight Directory Access Protocol API.
ORO has released OROMatcher 1.0.4 and PerlTools, 1.0.1. OROMatcher 1.0.4, a regualr expression package, fixes some discrepancies between the documentation and implementation, as well as adding a method or two to some classes. PerlTools 1.0.1, a package for using Perl 5 style regular expressions in Java, no longer requires OROMatcher and features some other small changes in caching.
Westhawk's released a free SNMP stack written in Java 1.1. It implements snmpv1 get, set and getnext PDUs, and does not contain a MIB compiler.
Sun's posted the first public draft (0.04A) of the InfoBus specification. According to Sun "InfoBus is a set of APIs for dynamic data interchange between JavaBeans. It allows some beans to act as data producers and other beans to act as data consumers. Beans can exchange structured data, including arrays, tables, and database rowsets."
Draft 0.1 of the specification for IBM's Aglets intelligent agent architecture is now available.
Digital Think is publishing a series of online courses I've written about Java I/O and networking. The first series in this course, Java Streams, is now available. Java Readers and Writers is in beta, and Web Client Programming with Java will enter beta in about a week.
For those not on the list, Apple's posted the first version of an Inside Mac chapter about JBindery 1.5.
Netscape also said that it will use parts of Sun's HotJava in its "100 percent pure Java" version of Navigator, due next year. Netscape will also provide Sun with the much requested HTML rendering component to be bundled into future versions of the JDK. Sun will ship Navigator as the standard browser for its products
Furthermore development of RMI and object seralization appears to be continuing, noises from the CORBA camp to the contrary. At least Sun's posted some more info about enhancements to RMI in Java 1.2. Serialization (also used in JavaBeans) is being expanded to not rely quite so heavily on an object's fields.
Netscape also said that it will use parts of Sun's HotJava in its "100 percent pure Java" version of Navigator, due next year. Netscape will also provide Sun with the much requested HTML rendering component to be bundled into future versions of the JDK. Sun will ship Navigator as the standard browser for its products
Furthermore development of RMI and object seralization appears to be continuing, noises from the CORBA camp to the contrary. At least Sun's posted some more info about enhancements to RMI in Java 1.2. Serialization (also used in JavaBeans) is being expanded to not rely quite so heavily on an object's fields.
Object Design has released ObjectStore PSE for Java 1.1.1, a free, single-user, persistent storage engine for Java. No news yet on what changed between 1.1 and 1.1.1.
According to the Java-2D FAQ, a beta of JDK 1.2 has been seeded to Java licensees. Would any licensee care to spill the beans about this release to Cafe au Lait?
Alpha 5a of IBM's Aglets intelligent agent software rtten in Java is now available.
Less than a week after Apple released MRJ 2.0 Early Access 3 to member of MRJ-DEV mailing list, it's released MRJ 2.0 Early Access 4. This release runs on 68040 machines, and fixes various bugs. Release 3 was roundly panned on the MRJ-DEV list, and appears to have ben pushed out the door only because the more stable release 2 was expiring.
Sun's JavaStudio 1.0 beta is now available for Solaris and Wintel. This is a visual tool that's designed to allow non-programmers to create Java applets and applications without writing any code, though I suspect this tool doesn't yet meet that goal.
Sun appears to have updated updated some specifications and API docuumentation for various parts of Java 1.2, though at first glance it isn't clear exactly which ones.
The latest version of IBM's High Performance Compiler for Java adds support for remote method invocation (RMI).
The latest version of IBM's Bean Extender includes enhancements in the Assembly Surface, as well as in the Dipping Framework, runtime logs, data repository models, and Data Input Wizard.
Apple appears likely to renege on their promise to offer a public beta of MRJ 2.0 that supports Java 1.1 this month. Instead they've released the third beta only to subscribers to the MRJ-DEV mailing list. This release requires System 7.6 or later.
Revision 9 of Bruce Eckel's Thinking in Java is now available at in PDF, RTF, and Microsoft Word formats.
I've updated the notes for Week 11, Threads, of my Introduction to Java Programming class.
The light version does not include the MRJ 1.5 installer and is much smaller and easier to download. MRJ 1.5 supports Java 1.0.2 and includes a Just-In-Time compiler for PowerMacs.
A stand-alone version of Netscape Navigator 4.0.2 is now available for Windows 95 and NT and Windows 3.1. Unlike the Netscape Communicator 4.0 that has previously shipped, this version does not include email or a newsreader. It does include a web browser, Netcaster, and Java, and has "slimmed down" to a little over seven megabytes. Now if we could just convince them to unbundle Netcaster, we might finally be back on the road to a thin client instead of the current "Look, it's a web browser and a floor wax!" attitude.
It's not that I dislke Netcaster, or email, or news, or calendaring, or any of the dozen other clients Netscape is trying to cram into Communicator. It's that I want the freedom to pick and choose the clients I like, and to mix and match products from different vendors. I use NewsWatcher for news and Eudora for email and I'd like to keep it that way. You may use different clients. That's fine too. We should all be allowed to choose the software we like best rather than being pushed into supporting just one company's bloated suite of clients.
Speaking of bloated suites, Corel has killed Office for Java, at least for now. Apparently they couldn't convince corporations to run new, incompatible, and slow software just so they could say they were using Java. The Ottawa Citizen has the story.
SunWorld has a fascinating interview with Larry Wall and Tim O'Reilly about the future of Perl. Among other topics, Larry discusses his ongoing work at integrating Perl and Java.
New Atlanta's released the first beta of a ServletExec plugin for Mac OS web servers that allows Mac web servers supporting the WebStar plugin API to run Java servlets via the Macintosh Runtime for Java.
Steve Kempy has started work on a Java shell that can execute Java applications in your class path as well as supporting basic csh-like file manipulation commands.
SGI's released version 3.0.1 of their port of Sun's JDK.
JAVAR 1.3.6 beta, a prototype restructuring compiler for Java that can be used to make implicit parallelism in Java programs explicit by means of multi-threading, is now available. This release has a number of bug fixes and minor improvements in the code it can compile.
Sun has also published version 0.9.1 of the PersonalJava specification.
I've updated the notes for Week 8 of my Introduction to Java Programming class. This week's topic is containers and layout managers.
The latest version of IBM's Aglets Workbench intelligent agent Java software now includes a delegation event model.
Build 165 of Java Workshop 2.0 beta is now available.
Vasile Calmatui has written a nice sendmail applet. Because of Java's security restrictions, the web server that serves the applet must also be an SMTP server. Source code is available, and might be useful for those who just need an example of how to send email from an applet for form results and the like.
Ben Mesander has uncovered a new security hole in the Microsoft Internet Explorer virtual machine and possibly in Netscape under some configurations as well. It allows applets to download images and possibly .class files from arbitrary hosts on the Internet. Sun's JDK does not seem to have this flaw.
I've been getting the usual batch of email from Microsoft acolytes complaining that I'm not performing sufficient obeisance to Chairman Bill. In the interest of being an equal-opportunity offender, let me rag on Sun for a couple of paragraphs. According to Computer Reseller News's gossip column ShadowRam for August 11
JavaSoft has asked editors to stop calling JavaSoft by that name. "Sun Microsystems is the correct way to refer to the company which brings you Java," a statement said. Exec titles have also changed. JavaSoft President Alan Baratz is now president of JavaSoft, a Sun Microsystems business unit.I can personally attest to this. A couple of weeks ago Sun asked Cafe au Lait to change all our links to www.javasoft.com back to java.sun.com. This is part of Sun's continuing efforts to tie JavaSoft more tightly to Sun, which is interesting considering that Java only happened in the first place because a few engineers got outside of Sun's smothering embrace. Of course with the notable exception of James Gosling, most of those engineers are gone now. The Green Project may have learned from the fiasco that was NeWS, but every week I see more evidence that the rest of Sun did not.
Java Network Programming is now available in Japanese.
I've updated the notes for Week 7 of my Introduction to Java Programming class. This week's topic is the event and event listener classes.
That Microsoft chose to invest in Apple is not surprising at all. Microsoft derives a large fraction of its revenue from Mac products like Office, and is absolutely terrified that if Apple does fade away, the DOJ will coming knocking on their doors again. In fact, Microsoft has been quietly supporting and encouraging third-party Mac development for some time now. Apparently they didn't feel Apple was doing a good enough job on their own. It's sort of like Japan's "democracy" until at least the late 1980s where the ruling party funneled funds to the "independent" parties so the ruling party's victories wouldn't be too embarassingly lopsided and force real change.
From a Java standpoint, there are some interesting details in the deal that have not been widely reported, however. First, Apple has agreed to make Internet Explorer the preferred browser in the MacOS. Here Microsoft may be trading one antitrust problem for another. Second, Microsoft and Apple "plan to collaborate on technology to ensure compatibility between their respective Virtual Machines for Java and other programming languages", according to Apple's press release. Probably this is just marketing hype, or perhaps it simply means Apple will bundle Microsoft's Application Foundation Classes. However, it could mean that Apple will support J/Direct, in which case it means that Apple will support the Windows API in the MacOS. In this event, this is a huge victory for Microsoft. They've been trying to grab control of the Mac API from Apple for some years, mostly without success. But again, this is probably just PR hype and may not have any more impact in the long term than Apple and IBM's much hyped alliance to develop the "Pink" OS at the beginning of this decade or the many agreements between Unix vendors to support compatibility between their systems.
On a related note, all the hype seems to have inspired Rick Eames of Microsoft's MSBay team to spill a few details about Microsoft's Mac Java development efforts. Microsoft is working on its own MSVM for the Mac. This is completely separate from the Metrowerks VM currently shipping with IE for the Mac. According to Eames:
We won't have JNI or RMI in our VM (Microsoft VM). I don't view them as "language" features: they are *classlib* features. Just as PowerPlant is not part of C++.Java is two things: language, platform. We're supporting the language 100%.
Instead Microsoft will provide the Java Runtime Interface (JRI) and DCOM. The Java Native interface (JNI) and Remote Method Invocation (RMI). are not critical for all Java programs, but they're both hugely important to a significant fraction of Java developers, especially those who are working on multimedia and distributed applications. This is also important news for Windows developers since if Microsoft isn't going to include JNI and RMI in their own Mac VM, they're extremely unlikely to include them in their more important Windows VM.
Metrowerks has promised to support both RMI and JNI in the final shipping version of their 1.1 VM, and that VM may still be bundled with IE for the Mac. However, that VM is unlikely to be used as the default for IE once the Microsoft VM is available.
Steven H. McCown's BitmappedButton provides clickable buttons with both text and bitmaps in Java 1.1. BitmappedButton is free and includes source code.
Sunsite Slovakia now mirrors Cafe au Lait.
Sun's published version 1.0 of the Java 3D API.
Build 164 of Java Workshop 2.0 beta is now available.
InstantDB 0.6 supports multithreading.
Finally, I've updated the notes for Class 5 and Class 6 of my Introduction to Java Programming course, Applets and Components.
Intermetrics' AppletMagic 2.5 for Windows and 2.6 for Solaris are now available. AppletMagic is an ADA 95 compiler that produces Java byte codes.
Ernest Friedman-Hill= has released Jess 3.0 Final, the Java Expert System Shell. 3.0 Final fixes all remaining known bugs and implements many suggestions for improvement from users of the first two betas.
There are morning (9-12 noon), afternoon (2-5 PM) and evening (6-9 PM) sessions. Coffee will be served in the morning, lunch from 12-2, and Tied House Microbrew in the afternoon. Registration is free, but space is limited and reservations are required. Call 408-494-8378 to register.
Symantec's released Cafe 1.8 for Windows 95 and NT.
Version 1.0.4 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.
The official Apple Java website has been hard to reach due to demand for MRJ 1.5. The software is also available from:
JAVAB is a prototype bytecode parallelization tool that automatically detect exploits implicit loop parallelism in bytecode. It's produced by the same team that brought you JAVAR, but while JAVAR works at the source code level based on explicit programmer comments, JAVAB automatically detects loop parallelism at the byte code level. Both JAVAR and JAVAB are research tools, and not yet robust products.
In related news, Microsoft Internet Explorer 4.0pr1 for the Mac is now available and includes version 1.1.3d19 of Metrowerk's Java VM. This VM does support Java 1.1, and is probably less buggy than the 1.1 VM shipped with Code Warrior Pro.
China submitted a late "No, with comments," vote on Sun's application to be allowed to rubber stamp Java as an ISO standard while retaining proprietary control of it. As with many other No votes, this is not a vote against the eventual standardization of Java. It is a vote for making Java an open standard in which other companies, groups, and individuals can have equal voices with Sun. The current proposal would make Sun the only company that can decide what is and is not part of the Java standard.
India, which is not a voting member of the ISO, also submitted some negative comments on Sun's application.
Finally, I'll note that there's been a lot of talk lately about a ComputerWorld story and related interview with Paul Maritz, Microsoft group vice president, claiming Microsoft won't ship the Java Foundation Classes (JFC) with either IE or Windows. While this story does make it clear just how much Microsoft hates and fears Java, it's unlikely to matter in the final analysis. Java developers will write to the JFC whether Microsoft ships them or not. If Microsoft does not ship them, developers will simply bundle the classes they've used in a JAR archive and distribute them with their application or applet.
Frankly, I expect Microsoft to cave on this issue. Microsoft's alternative API, J/Direct, is DOA; and it's clear developers want Java, the JFC, and cross-platform code. If Microsoft ignores JFC and attempts to splinter Java, developers--who so far have been reasonably receptive to Microsoft's Java efforts--are going to stampede in the other direction toward Sun. At that point Microsoft's going to have two choices. Either they can give up, accept JFC and lose a little more control over the API; or they can rewrite Windows in such a fashion that it breaks Java. (New Microsoft slogan: "Windows isn't done till Java won't run.") It will be interesting to see which they try.
InstantDB 0.5, a relational database written in Java, adds the UNIQUE keyword and fikes some bugs.
ORO has released PerlTools, 1.0, a Java package for using Perl 5 style regular expressions. This release bundles the classes into a JAR archive, thereby improving Macintosh compatibility.
The ISO's SC22 Java Study Group (JSG) now has a home page at http://www.dkuug.dk/JTC1/SC22/JSG/. This group is currently studying the possibility of standardizing Java through more traditional procedures rather than the proprietary PAS approach preferred by Sun.
Jo Christian Oterhals has released the second version of his MetaWEB classes which work in Java 1.0 (and 1.1) and now include a toolbar class and a SendMail class.
A request for discussion has been post for comp.lang.java.mod. This would be a moderated newsgroup based along the lines of con.lang.c++.mod.
Issue 6 of the Unofficial Java Bug Report is now available. This issue includes an important access control issue more unresolved issues to do with the specification of Core Reflection.
Sun's posted a developer's release of a their Just-In-Time compiler (JIT) for Windows 95/NT.
Java Web Server 1.0.1 is now available. This is a bug fix release.
Robin Bing-Yu Chen's JavaGL 3D Graphics Library for Java version 1.0b3.1 is now available.
JVerge Beta 4, a GPL'd VRML 2.0 Node class library is now available.
Ernest Friedman-Hill's Jess 3.0b2, the Java Expert System Shell, has been released. Version 3.0b2 fixes a number of bugs.
JAVAR 1.3.4 beta, a prototype restructuring compiler for Java that can be used to make implicit parallelism in Java programs explicit by means of multi-threading, is now available. This release has a number of bug fixes and minor improvements in the code it can compile.
Finally, I've updated the notes for Class 4 of my Introduction to Java Programming course, More Objects.
J/Direct may be a useful technology for applications. What's disturbing is that Microsoft has allowed it to be included in applets as well, with no more security than their own failed ActiveX. The Java sandbox is completely bypassed by J/Direct. Only fully trusted applets are permitted to access J/Direct; but the simple fact is that nobody in their right minds fully trusts applets, including those written by Microsoft. It's not so much a problem with deliberate attacks as it is with buggy software.
The recent releases of Internet Explorer 4.0b1 and 4.0b2 have already proven that Microsoft has few compunctions about releasing buggy software that corrupts users' systems. And yet now they're proposing a security model that allows their (and others') buggy software to run on our systems without even a by-your-leave? At least with Internet Explorer, a user had to make a deliberate choice to install it before it would corrupt his or her hard drive. With J/Direct, Microsoft will be able to remove the choice from the user, and install and run their buggy software as soon as the user visits a Microsoft web page.
I'm sure the Microsoft apologists are going to jump all over me for this. "Microsoft would never release damaging software! Microsoft would never install software without the user's permission!" To these people I say, "Have you actually used Microsoft products lately?" Microsoft routinely releases buggy software--sometimes identified as a beta (IE 4.0), sometimes not (Windows NT 4.0 service pack 2)--and encourages users to install it, whether they need it or not, whether it's a beta or not. Then, having tricked the user into running an installer to "just give the product a try", Microsoft's installer replaces critical DLLs, destroys registry settings, and in general does whatever it can to eliminate competing software on the user's system whether that competing software is a TCP/IP stack, a dialer, or a web browser.
Frankly, I don't think that Microsoft is going to be able to resist the temptation to make themselves a fully trusted domain in the default installation of IE and Windows. I think the ability to add code to users' systems whenever Microsoft feels like it will be too enticing. Maybe, if Microsoft wants to feel like they're playing nice, they'll add a screen to the installation wizard that says something like "Would you like to add microsoft.com to the list of trusted domains so we can keep your software up-to-date and provide you with new, cool toys?" or some other innocent-sounding pitch that will be misunderstood by most users.
There is hope, though. All is not yet lost. In fact, the market has already spoken. It has rejected the uni-platform, authentication-based security model of ActiveX in favor of the multi-platform, sandbox model of Java. With J/Direct Microsoft is reissuing failed technology in new clothing. This model didn't work for ActiveX controls written in C++, and it's not going to work in Java.
Sun has also revealed some additions to the security API scheduled for Java 1.2 that will allow much more flexible and finely grained control over access to individual resources.
Sun has also released a Version Identification API for Java 1.2 that will allow package level version control so applications and applets can identify at runtime the version of a specific Java Runtime Environment, VM, and class package.
Java Workshop 2.0 Beta build 141 is now available.
Intel has released Beta 3 of its Java Media Framework implementation. This release supports Java 1.1 and the Java Media Framework API version 0.96.
InstantDB 0.3 is now available with some performance improvements.
I've updated the Week 3, Introduction to Objects course notes for my Introduction to Java Programming course.
Version 1.0.3 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.
Beta 2 of X3M's Container and Algorithm Library is now available.
Peter Hearty has written InstantDB, currently pre-release 0.2. InstantDB is a set of free Java classes which form the beginnings of a relational database. A JDBC interface is included.
No reports on IE PR 2 yet, but I'd be extremely cautious after the disastrous experience many people had with preview release 1. Microsoft trumpeted that release to high heaven; begged, screamed, and pleaded for everyone and their uncle to install it; then, when users did install it and discovered that not only was it unusably buggy but that it decimated their systems and forced clean reinstalls of everything, Microsoft denied responsibility and said "It's only a beta, and you shouldn't have installed it on a production system, and really it's your fault for being stupid enough to listen to us in the first place."
It's pretty obvious that IE preview release 1 came out when it did only because Netscape 4.0 was out and Microsoft needed a response, destructive though it was. That strategy backfired. Of everyone I know who tried IE PR1, there were only two responses. Those who were previously indifferent to or even liked Microsoft joined the Microsoft detractors' camp. Those who already disliked Microsoft began to positively loathe them.
I've updated weeks 1 (Basic Java) and 2 (Procedural Java) of my Java course notes.
Version 1.0.2 of the Java Shared Data API (JSDA) is now available. JSDA defines a networked multipoint data delivery service.
For even more information of questionable reliability, view the HTML source code for that page. There are a lot of juicy tidbits hidden in the comments. (Did you know Java 1.2 is code named "Playground" and that the version number is subject to change, perhaps for marketing reasons?) Caveat lector.
In the not specifically Java department I note that the World Wide Web Consortium has released the first draft of HTML 4.0. Mostly, this draft just codifies existing practice; but there are some useful enhancements for accessibility. Anyone want to lay book that Microsoft and Netscape are going to take their own sweet time implementing these essential capabilites so they can concentrate on more flashy, proprietary technologies?
And finally, I apologize to those of you who visited this site yesterday, only to find yourself staring at my course notes, and thank those of you who sent me email notifying me of the problem. I uploaded the wrong index file while updating the site yesterday afternoon, and then logged off the net for about 20 hours so I didn't find the problem till early this morning. Mea culpa. Mea maxima culpa.
While Apple's MRJ seems to be in better shape than Sun's Mac JDK ever was, I'm still a little concerned that Sun is not paying sufficient attention to Macintosh issues. Most notably, the AWT is still very much oriented toward X-Windows and is not really suitable for either Windows or the Mac GUI. For instance, the AWT assumes each frame can have its own menu bar (true on Solaris and Windows, false on the Mac) and that windows are free-standing (true on Solaris and the Mac, false on Windows). If there's nobodoy inside Sun forcing the Sun engineers to pay attention to the Mac and design APIs that make sense on all platforms, then we're likely to more APIs that try to make everything look like X-Windows.
In related news, the first beta release (0.2) of Swing, Sun's next-generation platform independent GUI is now available from ftp://ftp.javasoft.com/pub/jfc/. Swing attempts to achieve identical look and feel across platforms by following its own user-interface guidelines rather than those of the host platform.
JacORB 0.6c, the free Java ORB, is now available. This release adds
Mike Lehman's HotTEA 2.0 is now available. HotTEA is a simple BASIC interpreter written in Java. Version 2.0 adds simple graphics support.
Chris Kelly has written a Java class library for the Mac called JConfig, version 1.0d0, which:
Bill Bercik's released Dippy Bird's JDK 1.1.1 WinHelp files. This package contains various HTML documentation converted to Windows Help (WinHelp) format including:
Elsewhere inside Sun there's a new beta of Java Workshop 2.0. This release enhances the GUI Builder for importing and instantiating JavaBeans, supports Java 1.1.2, and includes new icons, file picklists and an improved Web Browser
JSDA 1.0.1, a bug fix release of the unofficial Java Shared Data API for multipoint data delivery, is now available.
Chad Michael Townsend has written middleware to allow older versions of Java from Netscape to communicate with mSQL using the new mSQL drivers.
The fourth issue of the Cafe Au Lait newsletter is now available. In this issue I talk about the projects that have kept me busy since the last issue of this newsletter, way back in November, and explain why mirroring web sites is a fundamentally bad idea.
The infamous J/Direct is still vaporware, but Microsoft has released their Java SDK 1.5.1 for Win32. This version includes Microsoft's latest VM for Windows 32, X86 and Alpha. It also includes a Netscape Plugin to use Microsoft's VM in Navigator, a Script Debugger for Internet Explorer, the JVC Java compiler from Visual J++ 1.1, a utility to convert OCX type library files into Java classes, a new set of classes that allows you to write NT services in Java, application and applet viewers, and a new version of the Jexegen tool for converting stand-alone Java applications into native executable binaries.
As usual, you'll have to go through a long, convoluted, privacy defeating registration process before downloading the software. I generally just enter obscenities whose filthiness increases in proportion to my annoyance level . By the third registration screen, I had become positively disgusting. I wonder if anyone at Microsoft actually reads this stuff, or if some poor schmoe at the dead letter office is going to have to figure out how to deliver Microsoft's junk mail to "Mr. Bad Word, 666 @#$%! Street, $#@$ %^@ NY 10210".
Finally, to top matters off, when I went back to the site this morning it appeared that some hacker had taken the entire site down (again!). When I went back an hour later, Microsoft said they wouldn't let me in unless I ate their cookie. (My mother taught me never to take cookies from strangers.) 30 minutes later they let me back in without requiring a cookie. In fairness, I suppose I should say that I don't know that a hacker took the site down. I suppose Microsoft could have done this much damage to their own web site all by themselves.
Let's face it, Microsoft still doesn't get Java, the Web, or the Internet. It takes a long time for a multi-billion dollar company to collapse, but all their hype to the contrary, Microsoft is heading straight down the same road to irrelevance followed by other monopolies that couldn't change when their market moved out from under them.
The first beta of the JDK 1.1.1 OS/2 is now available.
Freestyle Software has released the Avalanche Cryptography Toolkit, a pure Java implementation of many encryption algorithms including DES, Triple-DES, Blowfish, TEA, and 3-Way block ciphers. Avalanche supports Java 1.0 and 1.1, and is free for personal and non-commercial use. ($1099 for commercial use.) There are also some efforts to support obfuscation of byte code through encryption, though I think efforts like this tend to be both defeatable and self-defeating.
IBM's updated their High Performance Compiler for Java which compiles Java byte code (or source code) into optimized, platform-specific native code for AIX, Windows 95, or Windows NT. The current beta only supports a subset of the Java 1.0.2 APIs. In particular, the java.awt and java.applet packages are not supported. It's an interesting product, though as usual IBM uses the painfully-diffcult-to-navigate Lotus Domino web server to make the actual file excessively difficult to download.
Issue 5 of the unofficial Java Bug Report is now available.
JavaSci 0.71 is now available. This release fixes a bug in one of the diag/tridiag constructors, adds inverse methods for square matrices, and includes the beginnings of a developer's guide.
Sun's released exportable (weak encryption) versions of the Java Web Server. I wonder if the U.S. government or Sun is actually believes any of these export controls actually work, or if they all secretly know that noone actually uses the exportable versions of products like Java Web Server, that they use locally grown software or pirated U.S. software.
A Java 1.1 compatible version of the BISS-AWT is now available.
Symantec's finally posted the preview release of Visual Cafe Pro for Windows NT that supports Java 1.1. You'll need to be a registered user of Visual Cafe Pro to get it.
Also according to c|net, Sun has pushed back the introduction of its network computer and the accompanying JavaOS until at least Fall.
Symantec's main Cafe page says a preview release of Visual Cafe Pro for Windows NT that supports Java 1.1 is now available, but the link appears to be dead.
Netscape's announced a plan to release a 100% Pure Java version of Communicator in 1998.
Apple's released the first beta of Macintosh Runtime for Java 1.5. You will need Disk Copy 6.1.2 to mount the disk image containing the MRJ 1.5b1 installer. This release includes a Just-in-time compiler and runtime support. It does not include a compiler or other development tools. The MRJ Software Development Kit 1.5 should be available soon.
Java Web Server 1.0 (formerly known as Jeeves) and the Java Servlet Development Kit are now available from http://jserv.javasoft.com/.
A new "June" version of the Beans Development Kit 1.0 is now available. (Could somebody please explain to me what Sun has against traditional 1.0, 1.0.1, 1.0.2 version numbers? This is at least the third separate release of the BDK 1.0.) This is primarily a bug-fix release with a few helpful features added. Most notably, there are better diagnostics when the BeanBox can't load a bean, and beans in the default package can now be loaded into the BeanBox.
Mark Hale has released JSci 0.7. The math package introduces the SpecialMath class (Bessel functions, etc). MatrixMath now includes LU decomposition and determinants, and should be speedier and more memory efficient.
The second edition of O'Reilly's Java in a Nutshell is now on store shelves. This edition covers Java 1.1; and will likely henceforth be known as the tiger book since it now has a tiger on the cover. It's still only $19.95, and remains "an excellent introduction to Java for C and C++ programmers and an excellent reference for everyone" as reads the quote on the back cover from some fool whose name I forget.
This is the way Java is supposed to be used! The upgrade needed at the server to support this is free to existing Palace customers.
Sun has decided to adopt the Object Database Management Group (ODMG) Binding for Java, an API that defines how Java objects are to be stored in object databases.
General Magic's released beta 2 of their Odyssey Mobile Agent software.
Sun's updated the Glasgow, a draft specification for the next JavaBeans component model. This release adds a completely new Data-Typing and Object Registry Mechanism/Java Activation Framework draft specification.
Marimba's Bongo 1.0a5 for the PowerMac is now available.
Just so today's news will have some Java content, I'll mention that Java applets will be the primary way for web pages to display MathML, at least initially. (Who wants to bet that Microsoft and Netscape ignore this emerging and important standard for the next year so they can focus on making it easier to waste our time with additional annoying animated advertising instead?) The Geometry Center's WebEQ applet already processes LaTeX-like equations, and will be extended to handle MathML.
The documentation for Roaster DR3 is now available from http://www.roaster.com/resources/docs/.
JAVAR 1.3.3, a prototype restructuring compiler for Java that can be used to make implicit parallelism in Java programs explicit by means of multi-threading, is now available.
The fourth beta release of Parts for Java includes a beta version of the JDK 1.0.2.
Version 0.02 of Nik Shaylor's JCC Java-To-C translator is now available.
Apple's announced that Java will be fully supported in Rhapsody and the Yellow Box, cross-platform, OpenStep environment. In particular, the API will be exposed to Java so you can write fully native programs for Rhapsody in Java.
Sean Russell's released jDB 3.27. This release fixes many of the networking bugs related to the Table class, and should improve the stability of jDB in a network environment.
JAVAR 1.3.2 beta is now available. JAVAR is a prototype restructuring compiler that can be used to make implicit parallelism in Java programs explicit by means of multi-threading.
The books page has been updated. There are now a couple of real 1.1 books available, Teach Yourself Java 1.1 in 24 Hours by Rogers Cadenhead and Java 1.1: No Experience Required from Sybex. Neither is a great book, but at least they really do teach Java 1.1 instead of Java 1.0 like most of the other so-called 1.1 tutorials on the market.
Various comments on Sun's application for recognition as a submitter of Publicly Available Specifications for Sun's Java Technologies (in other words, their efforts to get Java certified as a de jure standard while completely bypassing the normal standards process and maintaining Java as a proprietary, Sun owned technology) may be read at http://www.jtc1tag.org/sun_pas.htm.
The Safe Internet Programming Project at Princeton Univeristy has found a serious security flaw in version Sun's JDK 1.1.1 HotJava 1.0 that allows applets to completely bypass Java's security mechanisms by convinicing the runtime the applet was signed by a trusted source. Javasoft has promised to fix the bug in Java 1.1.2.
The first draft of the specifications for the Glasgow release of JavaBeans is now available at http://splash.javasoft.com/beans/whatsnew.html. This adds the Object Aggregation and Delegation specification and the JavaBeans Runtime Containment and Services specification.
Chad Owen Yoshikawa's published some notes on class loaders at http://www.cs.berkeley.edu/~chad/java/
Marimba's released the Castanet Tuner for Power Macintosh 1.0. It is now available from http://www.marimba.com/tunein.
John Pritchard is compiling a FAQ list about Jeeves/Java Web Server. Send questions and/or answers to jeeves-faq@comoc.com
Toba 1.0b6 is now available. Toba translates Java 1.0 .class files into C source code which can be compiled into a native executable. Toba currently runs under Irix 6.2, Linux 2.0, Solaris 2.5 and Windows NT 4.0, but only the Solaris implementation has thread and AWT support.
java.awt.FileDialog
methods return null
.
David Engberg's released version 0.3 of guavac This release fixes a few bugs, improves some error reporting, and improves compatibility with the JDK 1.0.2.
JAVAR 1.2.4 beta is now available. JAVAR is a prototype restructuring compiler that can be used to make implicit parallelism in Java programs explicit by means of multi-threading.
java.awt.FileDialog
methods return null.
European Mac users can now download the MRJ 1.0.1 SDK from http://www.euro.apple.com/edr/ftp/seeds/mrj101sdk.hqx. This should help those who've been having trouble with congested trans-Atlantic links.
I've posted notes for the final week of my Introduction to Java Programming course. This week I discuss data transfer, printing, and wrap up with brief discussions of future directions in which Java is going.
Beta 2 of CAL, a container and algorithm library for Java is now available. CAL is developed in pure Java, and should run on any platform supporting the JDK 1.1. It features various data structures such as trees, several dozen generic algorithms like sort, union, difference, and a regular expression package.
The Castanet Tuner for the Power Mac Beta 2 is now available at http://www.marimba.com/tunein.
Sun's published most of the slides from the talks at JavaOne.
I've posted most of the lecture notes for week 11 of my Introduction to Java Programming course. This week I discuss threads and animation.
Microsoft's SDK for Java 2.0 Preview Release for Windows 95 and NT includes their much hyped Application Foundation Classes (AFC). These are also available separately for non-Win32 platforms. You can download them from http://www.microsoft.com/msdownload/javasdk2.htm.
Steven T. Roussey has set up a mailing list for Java developers who want to add OpenDoc type features to Java (like user level mix-and-match components). To subscribe, send mail to majordomo@partbank.com with the body text of:
subscribe mix-and-match-java Your name here
Or use the form on the mailing list page.
Sun's released version 1.0-April of the Beans Development Kit. The main changes since the February release involve use of of Java 1.1 and the new event model throughout while eliminating use of deprecated APIs. There are also some small bug fixes and a few new features.
The first pretest version of JDK 1.1 for Linux/X86 is available from http://www.blackdown.org/java-linux/jdk1.1-test/linux.jdk-1.1-pretest1.static-motif.tar.gz. This release has not been extensively tested, and likely has many problems.
TOP TEN REASONS WHY MICROSOFT LOVES JAVA
10. They're just plain scared.
9. Java runs really badly on the Mac.
8. Runs really, really badly on Windows 3.1.
7. Easier to comply with a standard when you own it.
6. Can distribute Java code at Seattle Starbucks franchises
(along with the printed edition of Slate).
5. Never really liked ActiveX anyway.
4. Big mix-up: Gates trying to buy sun-drenched island in South.
Pacific, got programming language instead.
3. Been looking to replace MS COBOL for a while.
2. Can blame all bugs on Sun.
1. Microsoft programmers get to hang with Kim Polese at Java
developers' conferences.
Marimba's released a beta version of the Castanet Tuner for the Macintosh.
Furthermore, there are many bug fixes and documentation updates, particularly in regard to integration with native code. On the flip side, the Metrowerks Code Warrior debugger no longer works with MRJ.
I've updated the examples from Java Network Programming. A few bugs have been fixed, and HTML and media files have been added for some of the applet examples. You can download the complete set from ftp://metalab.unc.edu/pub/multimedia/.languages/java/javafaq/javanetexamples.tar.gz or browse them at http://metalab.unc.edu/javafaq/javanetexamples/
Michael Winikoff has releasedversion 1.2 of W-Prolog, his Prolog interpreter written in Java.
Javazine's published a review of the Java Developer's Resource. I disagree with the reviewer's definition of beginner (and I think they're a lot of Cobol, Fortran, and Basic programmers in the world who agree with me that you're not necessarily a beginner just because you don't know C or object oriented terminology), but overall it's a positive review.
The notes for Week 9 of my Java course are now available. These cover menus, popup menus, images, image filters, and audio.
I've updated the source code and examples from Chapter 15 of Java Network Programming, The Java Server API and Servlets. The examples are now compatible with the Java Web Server beta, as opposed to the alpha Jeeves discussed in the book. They have not yet been extensively tested so let me know if you find any problems.
If JavaWorld's report is accurate (and it may not be), this indicates that Sun is continuing to close up Java. As Java has developed and become more widespread, Sun has been progressively less open with the technology. For example, they've yet to widely release the source code for Java 1.1. If they're intending to patent key elements of the runtime, that only locks up Java further. It's becoming more and more obvious that Sun's so-called commitment to open systems only applies to other people's technology. They'll use free software developed elsewhere, but they won't actually make their own products open. This is exactly the attitude that killed OpenWindows. It would be a shame to see it destroy Java too.
In unrelated news, Apple has released the Macintosh Runtime for Java (MRJ) 1.0.1. This release needs 16 megabytes of RAM and a 68030, 68040, or PowerPC processor. MRJ 1.0.1 fully supports Java 1.0.2 but not Java 1.1. Java 1.1 probably won't be supported until MRJ 2.0 currently due in alpha around the end of May.
46% of vistors could not or would not request the applet. This is interesting, because only 30% of the vistors are on 16-bit machines. Ergo -- another 16% either have java turned off or are behind a proxy server/firewall that doesn't allow java requests.
Cafe Au Lait is now mirrored in Switzerland at http://sunsite.cnlab-switch.ch/javafaq/. Austrian and Latvian mirrors should be coming online soon.
Jio is a dynamic web content generation system written as a Java servlet. It uses JDBC to connect to a relational database (mSQL) which contains the data. All generated pages are created using templates. Source code is included and it is free for commercial use.
In related news, Apple's announced that they expect to have MRJ 1.0.1 for both PowerPC and 68K Macs available on March 17. This release is supposed to include JBindery, a utility for packaging together all the classes needed for a program into one double-clickable file.
To participate, contact:
Erika Kindlund
In related news, the mailing lists page here at Cafe Au Lait has been updated
with several new lists.
Interestingly, Symantec's announcement uses the standard boilerplate about
"As with all pre-release software, note that Cafe 1.5 Beta is not suitable for
day-to-day use. For production development, please continue using Cafe DR2.01
until this product is released." What's interesting is that
by any reasonable definition of the term, Cafe DR2.01 is pre-release software that's
alpha quality at best. By this standard nobody should ever have bought or used
Cafe, and Symantec should not have sold it. But then, that's been common knowledge
for some time.
Metrowerks claimed they had shipped Code Warrior Gold 11, but registered
users don't yet have it so the claim is questionable. Code Warrior 10
took several months from the time Metrowerks said they were shipping it
until it actually arrived in users' hands.
Hopefully, Metrowerks will do better this time.
Natural Intelligence,
which was expected to release Roaster 1.0 at the show, was uncharacteristically silent.
Perhaps the forthcoming spinoff of Roaster from
the rest of the company has diverted
their attention. Or perhaps, they've decided to try an unusual
strategy for this market and not finish the press releases until
they finish the product. :-)
Usability Engineer
JavaSoft, Inc.
(408)343-1904