Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

Eclipse casts shadows

IBM-led consortium poses a challenge to Sun's stewardship of Java

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

Conspiracy theorists love the Eclipse project. When the IBM-led consortium launched its open source tools framework last fall, tongues began to wag. Not only does Eclipse shun Java's standard AWT (Abstract Window Toolkit) and Swing libraries, replacing these with SWT (Standard Widget Toolkit) for basic widgetry and JFace for advanced effects, but the Eclipse's very existence challenges the Sun-backed open source tools framework, NetBeans. Recent Eclipse announcements from IBM make it clear that Eclipse will host IBM's middleware tools as comprehensively as NetBeans does Sun's. Does Eclipse represent a two-front assault on Sun's Java stewardship? Yes and no.

What almost nobody disputes is that Eclipse is hot stuff. The Version 2.0 build we tested shows that Java can indeed produce a major-league application that is comparable to Visual Studio .Net and that is both speedy and faithful to the Windows GUI (graphical user interface), which even most J2EE (Java 2 Platform, Enterprise Edition) developers prefer. The SWT/JFace underpinnings partly explain why. AWT's encapsulation of native operating system widgets is opaque, says Chris Grindstaff, a senior member at Overland, Kan.-based Applied Reasoning and a former VisualAge developer. In other words, the code that interacts directly with the native widgets is written in C and is not directly available to Swing. Eclipse's SWT, by contrast, encapsulates the native OS transparently, using a one-to-one mapping from Java to C. That means Eclipse's JFace layer can more flexibly exploit the native widgets.

SWT detractors argue that this approach trades away Swing's universality. By painting its own widgetry on a handful of core primitives, Swing can be the same everywhere. It's an old debate, but Java's failure to thrive on the Windows desktop underscores just how much the market cares about native look and feel. It's true that SWT is not yet available everywhere. But Eclipse 2.0 works with Windows, Motif, and GTK+ (Gimp Toolkit) 2, and operability on Mac OS X seems imminent. Unlike Swing-based software, Eclipse works immediately with native features such as Windows XP skinning. "Microsoft has lots of programmers and so does Gnome/GTK," Grindstaff says. "So why not leverage that?"

Eclipse, however, owes its strength to more than just SWT/JFace technology. The primary developer of Eclipse, Object Technology International (OTI), has for many years been refining the arts of the componentized IDE (integrated development environment)—Smalltalk/Envy, VisualAge for Java—and the portable GUI. The current AWT/Swing vs. SWT/JFace debate recapitulates an earlier tug-of-war between the ParcPlace (emulated GUI) and DigiTalk (native GUI) flavors of Smalltalk. OTI favored the latter approach, which prevailed. Should Sun have done likewise with Java, as by several accounts OTI proposed to Sun years ago? A growing number of voices are now saying so.

Such hindsight is, of course, useless to vendors heavily invested in Swing. "Eclipse clearly does nice things, especially for Windows," says Steve Benfield, CTO of SilverStream in Billerica, Mass. But his products' use of Swing precludes support for Eclipse. Does that matter? Perhaps not much, Benfield suggests, because SilverStream's tools target business application developers more than hard-core J2EE coders. It's a good point. Seamless tool integration—the hallmark of both Eclipse and NetBeans—is a sexy feature, but a common UI alone can't bridge different cultures.


  • 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