Java Ecosystems for Python Programmers
(Posted on behalf of Miles Thibault, a former CSC49X student now working in London, England.)
I have a problem: I’m a Python programmer. That’s not the problem. My problem is that I’m starting a Java project and I don’t really know what experienced Java developers do when they build software.
I know I want things like version control, an IDE, unit tests and logging; but I don’t know which specific tools and libraries I should be using, nor how to best utilize them.
There are myriad books on the Java programming language proper, but I’m having a tough time finding anything that says: “If you’re going to build Java software, here are some popular/pragmatic tools that most people use because they like building quality code and they don’t like wasting their own time.”
I’ve spoken to a few Java hackers and here’s what I’ve come up with so far (thanks Bill, Sean, and Greg). I’d be interested in hearing what else you use.
| Version control | Subversion (included for completeness—I already use version control) |
| IDE | Eclipse (tough one for a Textmate fanboy) |
| Debugger | built into Eclipse. |
| Build | Ant |
| Deploy | Ant |
| Unit tests | Testng |
| Logging | Log4j |
| Docs | Javadoc |
| Lint | Findbugs |
| Coverage | Clover |
| Style | Checkstyle |
| Continuos integration | Cruisecontrol |
| Monitoring | Nagios (included for completeness) |
| Postmortem debugging | does Java do core files? |
| Performance testing | Jmeter |
| Profiling | PerformaSure? |