"Your true value depends entirely on what you are compared with."
--Bob Wells
Welcome to the IDE comparison column! When I mentioned in a previous column that I might compare the reigning champion (VisualAge for Java, or VAJ) with the up-and-coming contender (Eclipse's Java Development Tooling, or JDT, which for simplicity I am going to refer to as simply "Eclipse" in this column), I immediately got email asking that I do so as soon as possible. So, for all you who wrote in, this column is for you (here at MC Press, we try to be as responsive to our readers as possible!).
A single column isn't a lot of real estate to do a decent review of one IDE, much less compare two. However, I've managed to pick enough important areas to give you a real flavor of one IDE compared to the other, and hopefully I'll pique your interest enough for you to go out there and do some experimenting on your own...
...which you can do because both of these tools are free! Well, VAJ isn't exactly free. The free version of VAJ that you can download from IBM isn't capable of much more than HelloWorld. However, because you're a member of the Secret iSeries Society, if you have a compiler and you've been keeping up to date on your software subscription, you actually have VAJ available on your AS/400 or iSeries. Eclipse, on the other hand, is 100% free--all you have to do is download it.
In this article, I'll cover three functional areas:
- The Basics--install, start/stop, and look and feel
- Ease of Use--intuitiveness, responsiveness, integration
- Feature/Function--error handling, code completion, debugging
Then, I'll present a nice little graphic with my scores for each area.
The Basics
While the tools are free, you need a machine capable of running them. That may be the biggest hurdle, not only for VAJ but even more so for Eclipse and the JDT. Many of us who have grown up developing for the IBM midrange market aren't exactly known for having the latest PC. But if you want to be a Java programmer (indeed, if you want to do any development in IBM's brave new IDE world), you're going to need one. I suggest something like my new workstation: a 1.6 GHz Pentium 4 with 1 GB of RAM and 40 GB of disk. I decided to compare the two from what amounted to a fresh install on that relatively hefty machine.
Install
Both were pretty clean, although I first had to install Windows on my brand new workstation. That took two hours (see my sidebar below on "Plug and Pray--Installing Windows on New Hardware").
Once Windows and Office was up and working, it was time to install Eclipse. Remember that you have to also have a Java Runtime Environment (JRE) installed; that's an additional step. I chose to use IBM's 1.3 environment, as opposed to Sun's 1.4 version. Either one will do.
- Download JRE and Eclipse (50 minutes on my DSL line)
- Install JRE (10 minutes)
- Install Eclipse (5 minutes)
VAJ was easier because it's self-contained and the setup software resides on the AS/400. To install VAJ, I simply executed the following steps:
- Copied the folder QIBMProdDataDevtoolsinstallimagecd3vajava to my hard drive
- Went into the "setup" folder and executed "setup.exe"
- Followed the prompts
That was it. Installation took about five minutes. So, from a setup standpoint, VAJ is easier and faster, but Eclipse isn't unbearably difficult. And what you have to keep in mind during all of these comparisons is the incontrovertible fact that VAJ is dead, so most of these comparisons are moot. But it's still good to know where we came from. Not everything new is good, and we need to be vigilant and vocal when the latest technology actually makes our lives as end users more difficult. For example, I'd insist that the WebSphere Development Studio Client (WDSc, the new release of which is based on Eclipse) be as easy to install as VAJ--that is, copy the latest version down from my IFS and run setup.exe. The installer would have an option to install all the required software bits, such as the JRE, in one automated operation.
Startup and Shutdown
VAJ is consistent. As shipped, it takes four seconds to start and four seconds to shut down. The shutdown process includes a synchronization of the repository, which is why it takes so long. If for some reason you terminate VAJ abnormally, startup time can increase dramatically, depending on the amount of data in your repository. However, there is a good chance that any unfinished work will still be available in the editor.
Eclipse, however, starts up slowly and finishes quickly. It takes about 11 seconds for the workbench to come up, but under a second to shut down. Abnormal termination doesn't affect the startup time, but any code you haven't saved is gone.
Look and Feel
Even with all the similarities (which I'll get to later in the article), the two IDEs have distinct characters. VAJ tends toward lots of independent windows. In the default configuration, every time you double-click something, you get a new window that you can manipulate independently of all the others. With the exception of the main menu bar, all the controls are very static, and while the little round buttons were probably state of the art awhile back, they're not very esthetic by today's standards.
Figure 1: VAJ tends to treat individual windows independently.
Eclipse, on the other hand, is way chic. On my nice new 19-inch, flat-panel display (at only $850 from www.dell.com, it makes a great stocking stuffer!), the background is crisp and white and easy to read. Eclipse is built around the concept of multiple integrated panels, so even though the panels themselves (such as the Package Explorer, the Outline, and the Source View) are discrete, they are also integrated nicely into a single sizeable window. You can easily open multiple source members; each is shown in the source panel, and tabs allow you to navigate through the various open members. Eclipse allows you to split the source pane to see multiple members side by side, something VAJ can't match. And one of the nicest features is that simply clicking on the title bar (or tab) for a given source member will expand it to fill the entire Eclipse window. This makes for a particularly useful zoom feature.
Figure 2: Eclipse's JDT provides a more integrated interface.
However, even though the Eclipse editor is quite a bit different from the old VAJ in certain aspects of look and feel, you can still tell that the two share a common heritage. You can open multiple windows if you'd like, just like in VAJ. Even many of the icons are familiar to us VAJ veterans. For example, here are the buttons for "run" and "debug" in VAJ:
And here are the same buttons (reversed) for Eclipse:
I don't know about you, but I'd be thinking copyright infringement, if it weren't for the fact that the same company (Object Technology International) is the driving force behind both products.
Ease of Use
This section is by its very nature going to be particularly subjective. Before you continue, you should probably understand that I'm probably one of the most avid VAJ enthusiasts around. I fell in love with the tool, and it has frankly been a key component of my success as a software developer. VAJ is truly a Java IDE as opposed to a warmed-over C or Pascal IDE, and because of this I've been able to develop code much more rapidly and effectively than I would otherwise.
That being the case, the fact that Eclipse seems to be moving back toward a "one size fits all" IDE doesn't appeal to me at first glance. So, realize that I went into this review for all intents and purposes with my mind pretty much dead set against Eclipse. I know that's not a good thing for any objective journalist, but in my case, my bias is so deep that I couldn't ignore it; the best I could do was acknowledge it.
Intuitiveness
Well, since we're being subjective, let's be completely subjective. Intuitiveness is entirely different for each individual, based on that person's background, experience, and any number of other factors. However, I think I can approach this part of the review with enough impartiality to make it worthwhile.
To start, Eclipse is a little more cluttered. Because of its nature as an IDE for all languages, Eclipse can't really take anything for granted. So while a project in VAJ can assume which JRE it is using (in fact, it uses the built-in JRE, a fact I'll comment upon again a little later), you have to tell Eclipse, and being a good IDE, it shows you. So in a project in Eclipse, you'll see more information than you might in a corresponding project in VAJ.
Second, the JDT in Eclipse is still a little less "Java-centric" than I would like. By that, I mean that certain capabilities are missing that I took for granted in VAJ. A good example occurs when I go to add a new class. In VAJ, I use the Create Class SmartGuide; in Eclipse, I use the New Java Class wizard. The two are very similar in look and feel.
Figure 3: Here are the VAJ and Eclipse "Add Class" wizards, side by side.
However, there's a distinct difference. When I try to add a class named "zoog" in VAJ, the IDE realizes that I am breaking accepted Java conventions by not capitalizing the first letter of the class name, and it pops up a dialog telling me so (going so far as to offer a button that will fix it for me!). When I do the same thing in Eclipse, it blithely adds the poorly named class without even a mumble. I assume that's just because the Eclipse developers haven't yet built all the Java-centric abilities into the JDT that they had in VAJ. I hope the JDT team intends to address those little details.
Responsiveness
At least on my machine, neither program shows any signs of balkiness, even when scrolling through source or looking up method definitions. While I have heard some horror stories about some of the other Eclipse language editors being very slow, the Java editor runs just fine. Color changing for keywords never slows down my keying, and I am a very fast typist. However, this is not a cheap workstation. Even at today's prices, a machine of this power is probably going to cost you nearly $1,000. However, if you plan to venture into the world of client/server development, this is $1,000 that is very well-spent.
(Note: In the interest of truth in reporting, my particular machine, with hardware and software, cost closer to $2,500. A large part of that was the LCD monitor and new copies of W2K Pro and Office 2000.)
Integration
This is an area where VAJ actually doesn't measure up. Since VAJ was always pretty much a self-contained entity, it never really worked and played all that well with outside entities. And while you could add external entities to your projects, it was neither intuitive nor particularly easy to do so. Eclipse makes it very easy to add external libraries (in either .jar or .zip format) and folders. Not only that, Eclipse makes it very easy to assign a different JRE, which is absolutely crucial for developers. This was always one of the biggest downfalls of VAJ; you were stuck with whatever JRE was installed with the tool. With Eclipse, you can easily upgrade to and test with new versions of Java as they become available.
The one area of integration where VAJ still holds the upper hand is in the ability to quickly incorporate predefined "features." These features include things like the AS/400 Java Toolbox, Sun's servlet APIs, or the WebSphere Test Environment. Rather than make you go out and locate the pieces for those particular features, IBM kindly grouped them together into small units called "features" and made it a one-click process to incorporate one of these units into your package. This is a powerful capability, but the downside is that you only get to add the version of the feature that IBM supplies with VAJ.
What I'd like to see (are you listening out there, IDE developers?) is a centralized, Internet-accessible "feature" repository that would contain a list of the currently available versions of various features, with a one-click ability to download them to our workstation and add them to a project. Need the latest Struts release? Download it. The Xerces parser? Point and click. That would be sweet.
Feature/Function
I'm just getting to features, and already I'm running out of room. Well, I expected that, so let's just cut to the chase, shall we?
Error Handling
Error handling is superb in both tools. When you save a change in one class, it ripples through all the other classes in the IDE. Errors are clearly indicated, and nested errors percolate up through the layers. It's a little easier to spot a nested error in VAJ, but that's purely a nit. A more important difference is the fact that the dedicated "All Problems" list in VAJ is now replaced by the more generic "Tasks" pane in Eclipse. This view allows you not only to see all of your errors, but also to make your own notes as to tasks you wish to accomplish. It's still pretty primitive today, but the Tasks pane has the makings of a real productivity aid some day.
Code Completion
Again, the two IDEs are comparable. Both offer a very nice capability: press Ctrl-space at any point, and the IDE will try to complete your code. It will look at your current syntax and bring up a dropdown box with code that will fit. You can then either type letters to further refine the search or select an option and press Enter to let the IDE fill in the code. I think the Eclipse version is a little nicer, and Eclipse has an added feature: Simply position your cursor over a method or variable name, and Eclipse will attempt to bring up the Javadoc for the corresponding method or class. It's really quite nice.
Figure 4: This is an example of the popup Javadoc available with Eclipse.
Debugging
Here, VAJ shines. This is almost entirely due to the tight integration of the WebSphere Test Environment. While Eclipse does a great job at breakpoints and variable inspection and modification, there's nothing like being able to fire up a servlet inside of VAJ and test the results. However, the new WDSc should support this sort of testing (and more besides), so I don't want to be too critical.
Conclusions
The conclusions actually surprised me. Review the table below:
VAJ | Eclipse | ||
Basics | Install | 5 | 3 |
Start/Stop | 4 | 3 | |
Look and Feel | 3 | 5 | |
Ease of Use | Intuitiveness | 4 | 3 |
Responsiveness | 5 | 5 | |
Integration | 3 | 4 | |
Feature/Function | Error Handling | 4 | 4 |
Code Completion | 4 | 5 | |
Debugging | 5 | 3 | |
37 | 35 | ||
4.1 | 3.9 |
Table 1: Results of the informal head-to-head competition
It was almost a dead heat. Considering the fact that I am highly biased toward VAJ and that Eclipse has to be a lot more things to a lot more people, I am very impressed with how well Eclipse did during my "first touch" testing.
Those who know me know I'll be putting the tool through far more rigorous exercise over the coming months, and I may need to revisit this particular subject at a later date. And if there is a particular area of VAJ that you want compared, please feel free to either post a reply to this column in the associated forum or
Sidebar: Plug and Pray--Installing Windows on New Hardware
This is a minute-by-minute account of installing Windows 2000 Professional on a brand new machine with a popular motherboard from Intel, one with a very nice integrated Ethernet device. Note that this was not some one-off brand, but one of the most popular motherboards in the world.
2:00 p.m.--Began install.
2:05 p.m.--Finished reading End User License Agreement ( EULA). Since I'm neither in New Zealand nor planning to run any hospital equipment in Java, I told it to go ahead and format the disk.
2:30 p.m.--Disk formatted.
2:35 p.m.--Windows installer started asking about my system.
2:38 p.m.--Spent two minutes trying to figure out whether it's a B or an 8 in my stupid product key.
2:50 p.m.--Setup completed. Began rebooting.
3:00 p.m.--Ethernet device not recognized. Called manufacturer. Manufacturer said get drivers from Intel. Went to Intel. Spent 15 minutes finding drivers.
3:15 p.m.--Began downloading drivers.
3:30 p.m.--Realized drivers are way too big for a floppy, and I don't have a LAN connection. Thanked lucky stars I have a CD-ROM burner. Thanked other lucky stars that one of the drivers I do have is the CD drive.
3:40 p.m.--Burned disk. Copied drivers to hard drive. Began installing.
3:41 p.m.--Updated motherboard drivers. Reboot #1.
3:49 p.m.--Updated network drivers. LAN connection established.
3:50 p.m.--Updated Intel Application Accelerator drivers. Reboot #2.
3:52 p.m.--Logged in. Windows said it needed to reboot. Reboot #3.
3:57 p.m.--Updated audio drivers. Reboot #4.
3:59 p.m.--System came up! Internet Explorer explored! Began to install Office.
4:10 p.m.--After four tries with the product key, attempting both lowercase and uppercase, realized that there are two product keys. Used the second one. Installation began.
4:15 p.m.--Installation completed. Word worked. Time to start working on Eclipse!
So, in roughly two hours and 15 minutes, I was able to install a brand new copy of Windows on a brand new machine. Note that I still have to go and get the latest service packs and so on, but at least the machine is working.
Just as a comparison, I installed Red Hat Linux on this very same machine. I inserted the disk and booted the machine, which started the installation. The installer investigated my machine and determined the configuration, asked a couple of basic questions (like what IP address I wanted to use) and configured the machine. This took about 10 minutes. No downloads. No jockeying around.
Not only that, but after getting the configuration right, I wanted to move the configured system to another machine. I simply unplugged the hard drive from this box and plugged it into a completely different box. I rebooted, and Linux identified all the new hardware and reconfigured itself. The only glitch was in configuring the Ethernet card, but that took about five minutes to iron out.
Somehow, I don't think Windows will be so accommodating.
Joe Pluta is the founder and chief architect of Pluta Brothers Design, Inc. He has been working in the field since the late 1970s and has made a career of extending the IBM midrange, starting back in the days of the IBM System/3. Joe has used WebSphere extensively, especially as the base for PSC/400, the only product that can move your legacy systems to the Web using simple green-screen commands. You can reach Joe at
LATEST COMMENTS
MC Press Online