Tuesday, September 20, 2005

an IDE wanes?

Is Eclipse (Greek verb: ecleipo = 'cease to exist') {source: Wikipedia} all set to go the bloated way of the Mozilla/XPCOM/you_name_it nightmare that rose from the initial offering of Netscape's source code? Version 3.1 has been an improvement in some respects over the horrendously under-performing 3.0 series (which I experienced vicariously thanks to reports from friends and colleagues while enjoying the simple pleasures of 2.1.7)...

Begin Flashback

When I first encountered and used Eclipse I was impressed and pleased. And I wasn't clamouring for IDE snap-ins and wizards for J2EE and UI development (frankly, I'd like to use such one-click tools only after learning what happens under the covers). And Eclipse offered great support for coding with the Java API and conventions. Especially if you were using good old vim for electronic archaeology -- didn't quite scale well given impossible deadlines when you were talking about several source branches inundated with millions of variously commented often intuitively named source files of various genera.

End Flashback

My sweet moments of development quickly went to KDE-on-a-386 hell shortly after I installed release 0.7.0 of the Eclipse Web Tools Platform. This represented an initial offering from the IDE's fold to all those developers who had been consumed by the dark side of commercial IDEs thanks to the allure of wizards, tools and mouse-friendly snap-ins that eased J2EE development (of course, if you didn't have too much of an idea about what went on in this distributed environment, you were competing with the average Visual Basic programmer for mental regression). While the tools contained in the WTP held promise (it was nice to see a lot of the Eclipse features like code assist extended to ugly pasta like JSPs). Soon, though, the White-Screen-Of-Death syndrome (see also: the White Toolbar of Death) became a regular phenomenon. You see, this thing didn't quite scale well when you had a classpath that had as many entries as people in the Indian subcontinent (allow me the hyperbole please). The "cool" feature of automatically recompiling projects soon became an annoyance that took your workstation down every time you changed a couple of characters in the scriplet space. Soon I found myself poring posts on fora and blogs for options to control and optimise Eclipse's memory consumption and garbage collection. ProcessExplorer from SysInternals now became a messenger of bad news as I watched the javaw process iterate through each JAR file in the project classpath. There was nothing I could do. To make matters worse, the WTP subsystem did not have its own vista for configuration. So if I had to turn off the "as-you-type" assistance, I'd have to turn it off for the whole IDE. Nice! For a while, I was stuck with hitting the period ('.') and becoming a man who paused (weak pun there, tinged with some "inquizitive" nostalgia).

This was getting to me. A deadline starting slipping away faster than the eye could see (aah the original figures of speech!). I began monitoring the ".log" file. Entries like the following were rather common:

!ENTRY org.eclipse.wst.sse.ui 4 4 2005-09-20 10:24:13.68
!MESSAGE problem with as-you-type validation
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor.run(DirtyRegionProcessor.java:411)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)

!ENTRY org.eclipse.jst.jsp.core 4 4 2005-09-20 15:50:46.402
!MESSAGE JavaPosition was null!10780

A bug report had been filed about JSP validation and the OperationCanceledException. And another one that seemed to be related to the linear issues with the WTP. What was I to do? Wait? Hell, no!

I reevaluated my situation. Clearly, with the way development worked, all I really really (truly madly deeply) needed was some syntax highlighting for these long tedious convoluted servings of spaghetti and tremulous tofu. So, I didn't really need the WTP. I could wait till they got their act together. All I wanted was good old simple fast Eclipse.

So I began uninstalling the packages. The new "Product Configuration" management console in Eclipse was neat. You could manage plugin and feature installations and updates from here. No more shutdown-delete_files-restart. Think RPM with a nice GUI. The only downside was that some folders and JARs got left behind. Did I say "only"?? Still, it was better than going in blindly all guns blazing. Goodbye WST. Goodbye JST. Goodbye EMF. Goodbye GEF. About 218 folders (and contained files) and JARs later (and after a "-clean" run), I snagged Colorer Take-5, set up some "File Associations", and was merrily editing JSPs at regular speed. Sure, there was no code completion, opening brace/closing brace matching, no way of knowing if the code was fine until deployment. Potentially more round trips. But at least I would be doing something instead of staring at purple morphing into white bands and looking about with embarassment making sure no one was walking about -- can't have people stop and laugh at you for your conviction in a tool that clearly didn't seem to be doing the job right.

No comments:

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.