Is Eclipse behind where it should be?
In a guest commentary this week, DevX reader Gerard Fernandes says Eclipse fails to meet the needs of typical enterprise Java developers. Is Eclipse behind where it should be? Do we even have the right to make such demands from free software?
Let us know what you think of this week's guest opinion:
While Eclipse does a great job wrt refactoring, I believe that IntelliJ Idea was the real pioneer in that area.
Mr. Fernandes does not seem to understand the concept of an extensible platform. The Eclipse IDE should only ever have the core functionality expected in an IDE--essentially a good text editor. Additional capabilities (such as J2EE development, XML editors, JSP editors, etc.) should be added on via plugins. In my opinion, Eclipse has too much functionality currently, including some (such as Ant integration) that may be candidates for extracting out into plugins.
I would venture a guess Mr. Fernandes is also a big fan of emacs, Microsoft Office, the Mozilla suite, and other do-all-plus-the-kitchen-sink suites of software. As for me, I like my software small, nimble, and extensible. Give me vi, Firefox, and a wiki.
That said, I'm not going to begrudge the kitchen-sink camp or disparage their software; different folks work best with different types of software.
Choice is not a bad thing
Everyone is entitled to their opinion. I just wish that people would realize that the entire world does not revolve around XML and J2EE. There are some that simply disagree with the architectural direction of the J2EE platform or the "XML is life" mentality. There are also some (gasp) that even develop applications that do not target a 3-tier enterprise datacenter. From these perspectives (which, if you haven't guess includes me!), IDE's that force all of the unwanted stuff at you are not entirely welcome.
Also, from a different perspective, I found the NetBeans way of doing things nearly unintelligible and followed virtually the exact opposite path from the author in the quest for an IDE. Everyone does it differently. Diversity in tools is NOT a bad thing. At least we're not in the .NET camp where we can develop in any of a multitude of languages but are virtually constrained to use whatever drivel of an IDE Microsoft puts out (I'm not really against .NET here, I just wish it wasn't effectively Visual Studio or the highway -- VS just isn't my thing). I expect a lot from an IDE in order to get it past the point of efficiency where I am better using the IDE than developing with nothing but a good text editor, but what I expect is guaranteed to be vastly different from many others. I'm glad that there are enough IDE choices to satisfy the different types of developers.
Great comments. My initial thoughts reflect some of the comments made here: That the 'disconnectedness' of Eclipse (aka the extensible architecture) is precisely the advancement that led to its popularity. Java developers are accustomed to autonomy and choice in their programming, and Eclipse fits the mold (or the lack thereof).
I find it difficult to understand why you have published Fernandes piece, since he clearly does not know what he is talking about.
How he can possibly assert that "Eclipse has not supported any of these [enterprise Java] technologies" beggars belief. For the last year, I have been using various contributions from the Eclipse projects to work on J2EE applications. It is simply untrue that "Eclipse inexplicably remains focused on desktop Java applications". How come that, in addition to support for J2EE and Web Services, there is an entire Eclipse project devoted to providing a C/C++ environment? Cobol is on the way. I don't remember seeing support for these popular 'enterprise' languages in NetBeans. There are Content Management Systems, schema editors for SQL Databases, UML modeling tools, C# support etc etc.
Fernandes bizarre claim that using Eclipse is somehow going to lock-in developers to IBM ("Eclipse's most significant problem"!!!) is nothing short of ludicrous. How, exactly? The MyEclipse plugin provides support for JBoss, hardly an IBM product. The WTP project supports Apache Tomcat, Apache Geronimo, Apache Derby, JBoss, JONAS, Weblogic and, yes, WebSphere. Last time I checked, only one of these is an IBM product. How this locks me into a single application server is elusive. Perhaps this is all some subtle corporate conspiracy designed to let IBM take over the world. Maybe A simpler explanation is that Fernandes is just flat wrong.
But it is not only a question of factual errors: Fernandes simply does not seem to understand what Eclipse is. It not only does not, but should not directly provide J2EE support - or many other things. This is because Eclipse itself is not just an IDE, but an extensible workbench. The role of Eclipse is to provide the framework for *extending* the workbench. Thus Eclipse is supplemented by various other specialized frameworks which can form the basis for editors, modeling etc. These in turn provide the basis for specialized Eclipse projects which *do* provide support for building Web Services apps, J2EE apps etc. Eclipse itself has no pretensions to be the universal IDE, so to criticise it for not being something it does not pretend to be is to miss the point.
Eclipse is so successful precisely because it knows it can't provide all the answers and provides a clean way for others to do so. I am currently running various plugins including the Eclipse web tools project, Nokia's J2ME framework, the Hyades profiling plugin, the CDT enviroment, various emulators etc etc. To do this, Eclipse relies on a broad community of organizations and individuals contributing plugins, ranging from huge enterprises to aspiring supercoders sweating away late at night. I don't have to take what one individual or company believes is right for me: I can pick and choose. Indeed I can write my own plugin if I don't like or can't find a tool that works for me.
Fernandes has got a nerve to criticise in its entirety a product the price of Eclipse if he hasn't contributed to it. Complaining about development tools has been a favourite (and rather boring) pastime of developers for decades. There's nothing to stop any of us from improving Eclipse: Don't Whine: Code! But Fernandes gives us the impression he'd rather sit on the sidelines with his six-pack berating the team instead of contributing.
Some people drink wine, some beer, some lemonade. Whatever works for Fernandes is cool with me - I found NetBeans totally infuriating, but I'm not going to attack it. But if you want to criticise, know what you're talking about, keep up to date with actual developments, don't make up accusations and, above all, earn the right by contributing.
We're talking out of the box
Eclipse out of the box isn't as good as Netbeans in my opinion. The download is huge and you don't get as much out of the box as you do with other IDEs.
If you download and install Netbeans 4.1 you're able to create Enterprise apps (JSP, EJB, Webservices, etc..) immediately, no going out and downloading plugins that may not work with new versions as must be done with eclipse.
Netbeans out of the box is also great for building Desktop applications and rapid prototypes. Netbeans 4.2 looks to be even better in this area.
I should note that I pay for an IntelliJ Idea license which is superior to both Netbeans and eclipse in many ways. The CVS support in Idea is far superior to what netbeans or eclipse offers. Idea code editing is also nicer in my own opinion than either eclipse or netbeans. The problem I have with Idea is that there are few plugins available and writing new plugins is a pain and not well documented. Also the GUI builder is subpar not offering nearly many features you would expect from comperable tools.
I have yet to find a Java IDE that does everything I would like. I love Idea for code editiing, but I think Netbeans is the best overall IDE.
The intention here was to throw light on the failings of Eclipse to recognise what Java development means to the majority of Java developers. While there is some desktop development happening, we must acknowledge that the majority of Java development uses at least some part of the J2EE stack.
Even desktop developers must recognise the importance of XML in Java applications.
It is these issues that Eclipse fails to address. Even in 3.1, there is no XML support. For an IDE that has an Ant editor an omission like this is impossible to understand.
It is simply not enough to be extensible. The extensibility must be put to use. There must be a process for incorporating best-of-breed developments into the platform over time. After all, Lomboz existed for a long time. Not much was done to either enhance it or to incorporate it until fairly recently. And even now, the Web Tools Project is very unstable.
With regards to making demands of free software, I can only point people who make this allegation towards Linux. Being free is not an excuse for poor or substandard quality. If Linux (and the community behind it) can strive to make it a full-featured OS, I'm sure Eclipse (and its community) could - if they tried - strive to make it a full-featured IDE.
I chose NetBeans specifically as a point of comparison because it is open source. As far as features go, NetBeans far exceeds Eclipse out of the box. IntelliJ IDEA still has features that NetBeans needs to catch up with. However, NetBeans, in version 4.1, has made a genuine effort to provide new useful features like making Ant its first class build tool. This is commendable.
I've worked with many enterprise scale projects. In my experience I've realised that if you end up fighting your IDE to get it to do what you want to, it doesn't really help. Whether you like it or not, you have to admit the fact that fighting your IDE hurts productivity. Eclipse doesn't fit well into large enterprise projects. You have to invest substantial time and effort in building processes around it to 'fit' it into your development process.
NetBeans fits more easily.
At the end of the day, it is important to realise that extensibility through Ant is far more achievable and practical than extensibility through Java plug-ins. As an example, the Ant support in NetBeans 4.1 makes it very simple to integrate any J2EE app server into your development process. In Eclipse, while integrating any J2EE app server is quite possible, it is neither elegant nor transparent to users.
That is the difference between Eclipse and NetBeans (and even IntelliJ IDEA).
After all the IDEs I've tried to fit into my development process, I have reached the same conclusion as Rob above - NetBeans is simply easier to integrate into a J2EE development process out of the box.
Last edited by gdcfernandes; 07-29-2005 at 06:58 AM.
As said before, Eclipse is NOT a Java IDE. Netbeans and IntelliJ IDEA are. Their concepts are different. Neither is wrong. The Netbeans/IntelliJ IDEA concept works better for you and others. For me and others, Eclipse works better. Once you do truly understand the difference, you will understand that your belief in the failings of Eclipse is incorrect.
It is not Fernandes who has missed the point. The title of the article is:
Eclipse Fails to Meet the Enterprise Java Developer's Needs
Which would be correct if you are specifically looking at the "Enterprise Java Developer's Needs". It's not like Fernandes came out and said "Eclipse is a bad development tool". He narrowed his opinion of Eclipse down to a specific purpose.
I am not sure why anyone is upset about this. I am sure you won't get much argument from Fernandes that Eclipse isn't a JAVA IDE, and probably thus the reason he wrote the article so that folks looking for a JAVA IDE won't be steered down the wrong path of Eclipse being an out of the box J2EE development tool.
I am and have been using Eclipse (+plugins) successfully on Enterprise products for years. It has meet my needs. And then some. I and many others have not had the problems he has had.
Just because it doesn't come with Web stuff, doesn't mean it doesn't meet enterprise developer needs. It just doesn't fit his needs and others needs.
And this is all a mute point. There is a single download for WTP that packages Eclipse with WTP.
It would have been fine if he had just said "Don't expect Eclipse to support XML and Web Dev and ..." right out of the box. But that is what HE expects. And that is fine, if that is what he needs. But it doesn't mean "Eclipse Fails to Meet the Enterprise Java Developer's Needs". Definitely not all developers.
Last Post: 08-01-2007, 08:46 PM
By Danny in forum Talk to the Editors
Last Post: 03-25-2005, 12:56 PM
By DeepakShokeen in forum Java
Last Post: 02-20-2005, 04:47 PM
By Dan Dubinsky in forum java.announcements
Last Post: 08-23-2002, 05:48 PM
Top DevX Stories
Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL