Newsletter sign-up
View all newsletters

Sign up for our Enterprise Java Newsletter

Enterprise Java

JFC and AFC debate creates confusion, demands choices

Developers wade through issues created by different foundation classes

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Developers tracking the split between Microsoft and Sun Microsystems over Java can add another front to the battle -- foundation classes. Microsoft has AFC that are now shipping in early production form. Sun, Netscape, and IBM have collarborated on JFC, which is about to ship to the public in beta version. With the 1998 shipment of JDK 1.2, JFC will be defined as part of core Java, making it incumbent upon Microsoft to include JFC with its Java virtual machine. Like RMI and JNI, Microsoft says it has no intention to do so because its technology is better.

The good news for developers is that it is far easier to work around the absence of the expected set of foundation classes than it is to overcome crucial middleware that is missing. The bad news is that the goal of "write once, run anywhere" continues to take it on the chin -- not due to the failure of the technology, but rather due to the inability of Sun and Microsoft to bury the hatchet anywhere but squarely in the back of their antagonist.

Recent history

The first release of Java contained the Abstract Windowing Toolkit, or AWT. In retrospect, even Microsoft and Netscape agree it was inadequate. Its poor performance was complemented by a cumbersome and overly restrictive event model.

One of the new features hailed in early releases of JDK 1.1 was a completely rewritten AWT, including a fundamentally different delegation event model. The new AWT boosted performance and improved flexibility, advocates said. Even so, Netscape was moving forward with its Internet Foundation Classes (IFC), and in January 1997, Microsoft announced it would develop AFC -- Application Foundation Classes.

In March, Microsoft began letting companies get a look at AFC, and in April it released an early version to developers. About the same time, at the JavaOne developers conference, Sun and Netscape announced that they would jointly develop Java Foundation Classes (JFC) with IBM and others, rolling in generous portions of the IFC.

Ever prickly, Microsoft takes offense that Sun and Netscape embarked on JFC without seriously considering adopting AFC, or using it as the point of departure for JFC. The result, says Joe Herman, Microsoft product manager in the applications and Internet client group, is that AFC is real today and has a six-month engineering jump on JFC.

Sun has always been very receptive to working with and adopting Java technology from other firms, responds Rick Levenson, an engineering manager within Sun's JavaSoft division, and the person responsible for JFC, among other projects. "Perhaps if their licensing agreement would have allowed us to look at the code without tainting our whole development effort, we could have taken a look," but that was not what Microsoft offered, says Levenson.

More than just UI components

One of the misconceptions regarding AFC and JFC is that they are merely interface widgets. This is not strictly the case.

The two major pieces of AFC are the user interface classes (UI) and the graphics classes (FX). The UI classes extend the AWT with about 30 widgets, while the FX classes add font, printing , and color capabilities, including brushes, pens, textures, fills, and palettes.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources
  • JavaSoft's JFC page provides a complete discription and download information for the JFC http://www.javasoft.com/products/jfc/index.html
  • Microsoft's AFC page provides an overview of and download information for the AFC http://www.microsoft.com/java/resource/afc.htm
  • The Swing Connection, a new JavaSoft Web site providing up-to-date information about JFC's Swing tool set http://java.sun.com/products/jfc/swingdoc-current/in_this_issue.html