s much of an improvement as Swing and SWT have been for building Java GUIs, Java still lacks the ease of free-form GUI creation available in products such as Visual Basic. In fact, coding Java GUIs is so tedious and requires such detailed knowledge of the AWT, Swing, and SWT APIs that it has become a specialty within the Java programming community. WindowBuilder Pro, a tool developed by Instantiations, Inc. of Portland, Oregon, allows all Java developers to bi-directionally create, edit, and manage all types of GUI components. As an Eclipse plug-in, it also integrates seamlessly with Eclipse's Java Perspective. This article offers a review of WindowBuilder Pro's features, benefits, and usability, and a discussion about the direction of Java GUI development with Instantiations' vice president of product development.
I admit I have a soft spot for pre-.NET Visual Basic. Java purists will flame me for mentioning VB in the same breath as Java, but its IDE opened up programming to millions of developers—me included. Even though VB programmers faced "DLL-hell" at build and integration time, they at least could take comfort in how fast they could code a prototype application GUI, wire up some event handlers, and collect their "oohs" and "aaahs" from management. Not so with Java.
From my early days with Java, I was put off by the hand-coding overhead required for client-side GUI development (recall that most programmers wear laziness as a badge of honor). In fact, VB so spoiled me that I eschewed fat client development in favor of server-side development, and I never looked back. I just never found the tools that could abstract and simplify GUI creation in Java like VB did.
The Birth of WindowBuilder Pro
Recently, I had to spec a GUI for a possible Eclipse plug-in. Responding to a thread on the Portland Java Users Group, I made the acquaintance of Mark Johnson, who works at a company called Instantiations in Portland. As it turns out, Instantiations specializes in two things: Java GUI tools and Eclipse plug-ins.
Mark introduced me to Eric Clayberg, their senior VP of product development. He said that their team had been developing GUI tools since 1992, initially for Smalltalk. Seizing upon the lack of GUI builder tools for Java and the growing popularity of SWT, Eric led the initial development on a SWT tool and later added Swing capabilities. When Instantiations completed a strategic acquisition of SWT Designer (an application created by regular Eclipse plug-in contributor Konstantin Scheglov) in 2003, WindowBuilder Pro was born.
WindowBuilder Pro is currently used by companies such as IBM, Lucent, Fujitsu, Sprint, Adobe, HP, Northrop Grumman, Lockheed Martin, Sanyo, Cisco, Goldman Sachs, MetLife, Ford, 3M, DaimlerChrysler, and Motorola. According to Mark Johnson, WindowBuilder Pro has more than 10,000 registered users, and more than 30,000 people have downloaded the product. It has also been one of the most popular Eclipse plug-ins, averaging 1,000 downloads per week since it was launched on September 30, 2003 (see Table 1: WindowBuilder Pro at a Glance).