Naturally there will be differences with other folks, but here's my current "ideal" development environment and I'd appreciate comments or feedback, alternatives etc. What's your ideal dev env?
It has taken a number of years to finally settle on a suite of Development tools that I like and am (finally) quite used to
(prior to 2005 I was mostly using JBuilder waiting until Eclipse 3.0 became fast enough to be usable and ant integration became good)
- Checkstyle for Eclipse 4.2
- EclEmma 1.1 for Code Coverage while Unit testing
I'm just starting getting up to speed on using the latest WTP (Web Tools Platform) and TPTP (Test and Performance Tools Platform) releases from a recent release of Callisto.
1) Tomcat - well there could be only one - WebSphere is just too clunky and I've not used WebLogic. I tried Geronimo a while back in '06 but the lack of documentation / tutorials stopped me cold. Hopefully it will get better.
2) Others I'd like to play with - JBoss are going great with the addition of things like Drools and Glassfish seems to be coming on strong too. It certainly appears that the open source oriented containers are far outstripping the commercial boys in terms of features and functionality.
Other Key Tools
1) Automation: Apache Ant
2) Modeling: StarUML (just found this on a recommendation from a comment on this blog - it rocks)
3) General Scripting: For most simple things KSH, beyond that Perl.
4) Test Tools:
5) External Code Report Tools (integrated with Ant)
- Checkstyle 4.2
- PMD 3.8
- FindBugs 1.1
- JDepend 2.9.1
- And good ole Javadoc
Why use three different code checkers - Checkstyle, PMD and FindBugs? They find different bugs and potential problems. See my blog "Analyze This - Put your code on the couch!" for more details.
Source-code control is pretty much up to my employer, so over the years I've used
1) CVS (very basic)
2) Microsoft's Visual Source Safe (very basic and couldn't really scale)
3) IBM Rational Clearcase (very complete but such a hog)
4) Perforce (just about right)
Haven't used Subversion yet :-(
Gotta say I really am impressed by Perforce – primarily how fast and scalable it is and for the way it lets you group checked-out files together into so-called "change-lists" and am surprised the product doesn't get more attention (although I learned that Google uses it quite a bit and that gives it a well deserved buzz). Subversion clearly is very hot right now but haven't had a good reason to use it yet to compare.
1) More and better Ant integration with Eclipse- I wish Eclipse could easily extract (dynamic - property drive) classpaths from Ant
2) StarUML integration with Eclipse (the existing free UML plugins out there aren't great)
3) Faster PMD plugin for Eclipse (it takes about 10 times as long to run as Checkstyle but it finds some good problems)
4) I wish I had some time and money to buy a subscription MyEclipse :-)
Any other good tools I should know about and be aware of? IntelliJ continues to get rave reviews from individual Java developers and I've never tried it - is the cost worth it when compared with Eclipse?
p.s. speaking of tools, IBM Developerworks just had a great article entitled "Selecting the best tools for your software system design", yes it has an IBM leaning but also references a few open source tools I wasn't aware of, particularly OSRMT and TestLink.