![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I have long spurned the use of IDEs preferring rather to rely on trusty tools that work on the command line that have been so well debugged that they just work. Vim, ant, sed, awk were my best friends in coding land. Then I had to develop a desktop application that had to run on Windows. In Windows Vista, cygwin and java do not get along, and cygwin doesn't work very well at all in Vista particularly. I turned my attention therefore to the leading IDE available for java: Eclipse (I poked NetBeans, but it sucked compared to Eclipse, in particular it couldn't import my ant build scripts successfully, and doesn't deal with other formats well). I started to work with it, and found that it's fairly easy to work with, and things are well set up and easy to find for the most part. Then I discovered it could handle my python files in the project (The project has a bin directory that has various python scripts that do trivial database operations that are too big to want to do in a stored procedure that gets smooshed into one transaction). Then I discovered AspectJ. I cannot imagine trying to work with AspectJ outside of an IDE that can figure out where your pointcuts are applied dynamically. It would be a total nightmare, and I'm getting very fond of AspectJ features, to the point that I purchased the AspectJ book. Then there is web.xml editing. Frequently when I edit this important file by hand, I make simple typing errors which causes a restart of tomcat over and over again till I get the format corrected. This does not happen in the IDE as it's presented as name value pairs where the name of the tag is pulled from the DTD and presented in a drop down menu when you want to add a new tag. This is getting particularly important as I am starting to shun the use of JSTL in JSP for submit pages, and move back to using pure servlets for this functionality after a big blow up with a database upgrade. All these things have dramatically reduced the time I spend fixing trivial typos in my project and allowed me to be more productive. I wrote a PDF library that will be used on multiple projects in about 4 days straight including tests with some Aspect Oriented features. I don't think that would have been possible on the command line.
My one and only complaint is that there is poor git integration. There is an egit project that is a pure Java client for git, but it doesn't work very well, and so I have to go back to the command line to work with git. This is a general weakness of git though. They have the wonderful gitk program, but when it comes to visual interfaces, particularly on Windows, it is severely lacking. Given some of the advanced features of git that I have had occasion to use like git filter-branch, I can't imagine switching to another VCS unless it had those features, which I'm pretty sure no other VCS does (though I'm looking into bazaaar).
Another nice feature is Eclipse's ability to capture stdout and stderr from various sub-processes like tomcat, and JUnit testing which allows me to see right in my IDE what's going on with the server or with my test cases.
In short, it appears that I am eclipse's newest convert, though to be honest, to make the best use of Eclipse you need a monster monitor for all the views, but I have that mostly taken care of with (New Egg 22" Acer wide-screen for just $229!).
There are many other features of eclipse that I am going to have to explore. It has some very nice looking plug-ins for creating UML documentation, and documentation is something we are lacking a bit. I tend to do a good job of keeping things in my head, and as there isn't another developer, I am a bit guilty of not documenting what I have built very well (though the code is commented, but I hate trolling through source code personally). Generally most of what I build is too simple to warrant complex UML diagrams anyway, they are mostly just websites that process basic information to a database in simple submit processing type forms, and basic search functionality on top of that data.
My one and only complaint is that there is poor git integration. There is an egit project that is a pure Java client for git, but it doesn't work very well, and so I have to go back to the command line to work with git. This is a general weakness of git though. They have the wonderful gitk program, but when it comes to visual interfaces, particularly on Windows, it is severely lacking. Given some of the advanced features of git that I have had occasion to use like git filter-branch, I can't imagine switching to another VCS unless it had those features, which I'm pretty sure no other VCS does (though I'm looking into bazaaar).
Another nice feature is Eclipse's ability to capture stdout and stderr from various sub-processes like tomcat, and JUnit testing which allows me to see right in my IDE what's going on with the server or with my test cases.
In short, it appears that I am eclipse's newest convert, though to be honest, to make the best use of Eclipse you need a monster monitor for all the views, but I have that mostly taken care of with (New Egg 22" Acer wide-screen for just $229!).
There are many other features of eclipse that I am going to have to explore. It has some very nice looking plug-ins for creating UML documentation, and documentation is something we are lacking a bit. I tend to do a good job of keeping things in my head, and as there isn't another developer, I am a bit guilty of not documenting what I have built very well (though the code is commented, but I hate trolling through source code personally). Generally most of what I build is too simple to warrant complex UML diagrams anyway, they are mostly just websites that process basic information to a database in simple submit processing type forms, and basic search functionality on top of that data.