I spent a fair amount of time today reading about and playing with IBM's Eclipse. My reasons for investigating Eclipse are twofold: (1) I'd like to see if it is compelling enough as an IDE to make me switch from GNU Emacs. (2) I was tasked with learning about plug-ins and what Eclipse was really designed for. We were wondering about using it as the framework on which to build some Java GUI tools.
On the first count, I've found Eclipse to be rather frustrating as an IDE. I have a project that lives in CVS today. I was hoping to point eclipse at this directory and begin working with the files. So far I haven't determined how that can be done. The wizard-like things that attempt to guide me thru the project creation process aren't terribly helpful in this regard.
Furthermore, my interactive response with Eclipse it less than I'd hoped for. On my Pentium 3 866 with 768MB RAM and a Voodoo 3 3000 running Debian Linux, it just feels sluggish. If I type a bit too quickly, it can't quite keep up with me. And some of the UI stuff just takes a bit too long to be pleasing.
Don't get me wrong. Eclipse is an amazing piece of software design. I just don't think it's for me. I should probably spend some time checking out what the Emacs world offers for Java programmers. If it's even half as impressive as the C/C++ tools, I should be just fine.
As to point #2, after reading the white paper, it's pretty clear to me that Eclipse was designed for software development. While it is a relatively generic framework, I'm not sure that it's appropriate for building the sort of tools we envision (data browsers, query interfaces, and management tools). Anyone have counter examples? Stories to the contrary? I'd love to hear/see 'em.
Tomorrow will probably be Avalon day, while Friday and Monday will focus on JDBC and MySQL connectivity.
Posted by jzawodn at December 17, 2002 06:03 PM
I've been programming Java using emacs with JDE for several years.. you really can't beat this setup. The option of writing your own extensions to JDE is a wonderful, wonderful thing and emacs (in my opinion anyway, shoo you vi people) is the best programming editor.
Another IDE to check out is IDEA (intellij.com). It's not open source, and it costs money (not much, ~$500), but it is simply amazing. I am a dyed-in-the-wool xemacs user, but the capabilities this thing gives you is quite amazing. I liken the ability to refactor easily (and automatically) to the feeling you get when you code tests first -- you have more confidence that the changes you make won't bite you two months from now.
Additionally, it's extremely keyboard-friendly -- you can map just about anything to a chord -- and the emacs bindings are top-notch. And overall, things work exactly the way I expect them to, which I could never say about eclipse. Before using this I'd pretty much figured that IDEs weren't for me, but I'm thoroughly impressed.
Sluggishness - well, eclipse _IS_ written in java, so you can't expect it to be the worlds fastest program, but you may need to tweak it a little to give it some grunt.
Make sure you give it a bit of room to move memory-wise - set the -Xmx256m parameter (or however much memory you're willing to let it have - remembering that java tends to fall on it's arse if it's needing to swap to disk).
It also depends on which JRE you're using to run it. I think you mentioned you were using the sun one? You might want to give it a stab with the the IBM JRE and see how it goes.
I'm a big IDE fan, but that's mainly because I was fiddling with IDEs before I knew much in the way of emacs/vi and wasn't willing to sacrifice the IDE niceties for the emacs/vi ones - and you'd probably be coming from the other end of that.
Now once we can get an IDE with a proper vi/emacs stateful editor in it, I think things could really get cooking... pity there seems to be a bit of a religious divide between the two writing styles that seems to be holding up that line of thought.
And I found the CVS usage to be pretty intuitive and had projects up and running from CVS pretty quickly.... My work with CVS based projects is pretty limited, but I think eclipse makes a pretty damn fine CVS client.
Hey, here are a couple of tips.
First, your cvs problem. There are two ways to do what you need to do. If you already have your project checked out from cvs, then you can just create a new project in Eclipse and point it to wherever you have the project checked out. Then right click your project, click Team->Share, and Eclipse will derive what your cvs server is and offer to update your project for you.
If you haven't checked out the files, then go to Window->Open Perspective->Other->CVS Repository Exploring. Once you get there, it's simple to create a new repository location, and once you do that you'll see all the modules on your cvs server. click an module (or for that matter, any directory in any module), then choose "check out as project".
After you get your project imported from cvs, you can right-click your project (or any folder/file in your project) and select Team-Synchronize With Repository. Then you'll begin to see the beauty of Eclipse and CVS working together. :-)
On the performance side, I'd bet money you have automatic build turned on, which can slow things down. Go to Window->Preferences, click Workbench, and turn of "perform build automatically on resource modification".
I've been using Emacs + JDE + Xref
(http://www.xref.sk/) to develop in
Java for over 4 years, and I really
believe this combination can't be
beat. Xref provides refactoring
tools like you can get in IDEA, but
completely integrated into Emacs.
Add in PCL-CVS (Emacs CVS integration)
and you really have anything you can
get from IDEA or Eclipse, except it's
WAY more customizable and you don't
need annoying wizards to do anything.
Don't get me wrong, I think IDEA and
Eclipse are pretty cool, and I would
recommend them to anyone starting Java
that doesn't know Emacs or vi well.
But if you already know one of these
tools, why give up their power?
I use Eclipse to develop the JDBC driver for MySQL.
There's quite a few things I really like about eclipse.
First is refactoring. It saves me a lot of time when re-arranging code or re-doing interfaces. I was a JDE user quite a while ago, and it didn't have that functionality at the time, not sure whether or not it does now.
Second is the debugger with hot code replace. That saves a lot of time, especially when debugging applications that are running in application servers that take a bit of time to startup...or on code that takes many steps to reach.
Third is the plugin support. I'm using the jalopy plugin to clean up my sloppy style, checkstyle to make sure I'm not missing any coding style bits, and pmd to suggest optimizations that might be squirrled away in old code. Being the single developer on the project, and not having anyone able to code review for me (yet) means that I lean on tools a bit :)
(To find any of these plugins, just use plugin-name.sourceforge.net, they're all hosted there). These tools all have command-line versions, but it's so much easier to use them when they're integrated.
Fourth is the team support. I'm using CVS right now (because it's legacy), but it's as simple as can be to talk to CVS repositories, even over SSH, and do all of the operations that one usually needs to do (tagging, branching, merging, etc). Now all I need to do is write a BK plugin so I can be aligned with the MySQL-AB SCM procedures :)
Eclipse does run a bit more slugishly on Linux than it does on Windows, so I stay in Windows for most of my development :(
I find it only maybe 5-10% slower than something native that has anywhere near this scope (like Visual Studio.net), but the productivity I have more than makes up for it...I could always throw another 512MB in the laptop, and the sluggishness would probably go away :)
What are the hardware requirements for Eclipse IDE to run.