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
IDE:
Eclipse 3.2.2
(prior to 2005 I was mostly using JBuilder waiting until Eclipse 3.0 became fast enough to be usable and ant integration became good)
Plug-ins:
- 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.
Container Environment
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:
- JUnit
- Cactus
- HttpUnit
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.
WISH LIST
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.
5 comments:
Your list is very similar to mine but with the following differences:
- Jetty instead of Tomcat
I like its design
- I only use PMD to find duplicate code and run my own rules. I don't use the plugin. Checkstyle plugin can do most of the checks PMD does.
- I want to start using FindBugs
I used it in the past tho.
- Jacobie instead of HttpUnit
I would rather control a real world browser than a simulated one.
- Subversion
It rocks but Perforce is as good
You should also have a look at these plugins.
- ant4eclipse
Integration of the two. There are other similar ones.
- Java Profiler
eclipsecolorer.sourceforge.net
Cool, but annoyingly buggy
- QuickREx
Makes complex regular expressions made easy
You must download and test Mylar (Eclipse project). I love it even when Im not developing in Java (Python currently).
Mylar is great when you need to switch focus from one bug to another one, and then back again. It is also really nice to get an interface to trac/bugzilla in eclipse, filtered for next release, etc. The changesets are great when you have worked on two bugfixes at the same time; now you can see which files that were changed for one fix (quick fixing one and working on another). And you dont have to write another commit message ever again (not entirely true)
Frank;
Great list. A lot of developers could use some recommendations like these.
Drop me a line. I may be able to help with an item on your list. :-)
-Jens
MyEclipse
jens@genuitec.com
re: Eclipse vs Idea. Eclipse has 90% of what Idea has, plus the plugins. If someone else is buying, Idea is certainly like flying first-class, but Eclipse is great.
re: myeclipse. Check out "Easy Eclipse". They bundle plugins together to ensure compatibility.
Your list is excellent. Some additions.
(a) a scripting language. I'm into Groovy lately, though I loved JPython
(b) Cygwin's bash shell for windows. Set up an alias like "acc" and you'll never type "ant clean compile" again
(c) JEdit as a utility editor
Cool list. I would definitely have to put AccuRev SCM with integrated issue tracking above Perforce or Subversion, but if you're strictly talking about mainline development without need to branch and merge, Subversion is a good interim tool.
IDEA is great too and don't forget about Jira for bug tracking for something a bit more full featured.
Oh, speaking of version control, have you seen the YouTube videos??!
There's a bunch of them:
http://www.youtube.com/watch?v=msDuQoKqysw
Post a Comment