views:

769

answers:

6

I want to set up a personal workspace on my home machine. I mainly intend to use it for Java development on home projects. Which tools do you recommend me to use? (I prefer free tools, since this is just for home use.)

I hope you could recommend some tools for me, and I'd be grateful if you could give me a brief comparison of some tools in each category. For example, I'm thinking about source control and issue tracking tools, but any other categories are welcome.

I also hope to get some information about the ability to move between suggested tools (e.g. migrate between CVS and SVN), and even between operating systems if applicable. (I'm currently using Windows Vista, but I may want to switch to Linux sometime soon.) Maybe even information about how easy it would be to move the project to an open-source repository (e.g. SF.net).

Thank you.

(P.S. Any comments on how to enhance/clarify my question are more than welcome.)

A: 

These are some of the tools I could think of. I don't have much (any?) experience with most of them, so I hope others can provide more insightful information about them, and even compare them if possible.

P.S: I have practically no experience of most of these tools (except for CVS, Eclipse and NetBeans), so I hope others can give better information about them.

Hosam Aly
+4  A: 

Too generic question, but here it goes:

Netbeans or Eclipse IDE. If you do GUI development, I suggest Netbeans, otherwise go for eclipse.

Git or Mercurial as a VCS. If you're dealing with a large code base or if you dig the UNIX philosophy go for Git. If you don't want to handle cross-OS differences, go for Hg.

Any of these IDE gives you integration with the source control system, so you're just a google search away from it.

As for opensource, if you use Git, just push to github. If you use Hg, push it to bitbucket and you're done.

For issue tracking I suggest you hosted Redmine (RoR app) that integrates with CVS, SVN, Git, Mercurial and a few others.

If you choose Eclipse, you can integrate it with Mylyn.

Alcides
Thanks for the link to Redmine, I've not seen it before, and it looks pretty useful.
Mike Houston
Thanks a lot. Could you please elaborate a little why Git or Hg may be better than SVN, or why Hg would be easier for cross-OS differences? Also do these two have (reliable) Eclipse/NetBeans plugins? And finally, how does Redmine compare with JIRA?
Hosam Aly
http://whygitisbetterthanx.com/
davetron5000
+1  A: 

In the free tools space, Eclipse and NetBeans are the primary IDE contenders. IDEA is also available for free for open source developement and a lot of people swear by it. Depending on your background, you may find NetBeans more intuitive than Eclipse. Eclipse has a certain way of looking at the world that is a little different than a lot of other IDEs, especially if you're coming from a Visual Studio background. All three have good built-in support for CVS and SVN as well as integrated debuggers.

I personally like Eclipse. I find it much more responsive and more powerful than NetBeans. NetBeans has made a lot of progress over the last few years though.

If you're going to be doing Swing development, I would say that the GUI editor in NetBeans is better than anything available in Eclipse. In the area of web service development I've also had a lot more success with NetBeans. For straight Java code, I still prefer Eclipse though.

The question of moving between source control systems is a separate issue from development environment, in my opinion. Move the code then check a fresh copy out from the new server.

Dave Ray
Thank you. I prefer Eclipse too (except for Swing development), but I didn't know that IDEA is available for open-source projects. I definitely look forward to trying it. As for source control systems, wouldn't it sometimes be a hassle to move the repository between operating systems?
Hosam Aly
+1  A: 

I use the following tools and have been happy moving between Windows/OS X/Linux without a problem:

IDES

  1. Eclipse 3.4 IDE. Lots of great free plugins. Its a bit slow as an IDE but I prefer it to NetBeans
  2. NetBeans -- another free IDE that has lots of plugins.

Version Control Basically the things people are using now are SVN, CVS, or maybe GIT.

  • SVN for version control -- it is more mature and now seems more in use than CVS. Has good integration with Eclipse. However in terms of sourceforge I think it still uses CVS though there are other open source hosting that probably use SVN.

  • CVS still good support though many people have been moving to SVN

  • Git I haven't used it myself though I have heard its been gaining a lot of traction and is more powerful than SVN.

Issue Tracking

  • I use Mantis which is actually a PHP-based one. Its ok not a great.

  • Bugzilla

  • Trac

Ish
Sourceforge supports both CVS and SVN - you can use either (or both!)
Mike Houston
Thank you. What's in Mantis/Trac that makes you prefer them to others? (No rant.)
Hosam Aly
+1  A: 

Version Control

I would recommend SVN over CVS, although distributed version tracking tools like Git and Mercurial seem to be very popular among open source projects.

Importing into a public repository should be easy; if you don't want to keep the revision history, just 'export' a clean copy of the repository, and check it in to the new one.

If you do want to keep the revision history, there are tools for cloning repositories, although converting from one type to another might be more tricky.

Bug tracking

The most well-known system is possibly Bugzilla - it's the only one I've used on a local system myself. Others can possibly recommend a better single-person tracker. Bugzilla is hosted on a MySQL database, so you should be able to move it to another server easily enough. Moving between bug tracking systems may need a more complicated script though.

Mike Houston
+1  A: 

A few other thing besides Eclipse and Subversion.

IcoFX - freeware icon editor, a copy of Effective Java, Cygwin, VMWare Player (or VMware Workstation), CruiseControl, and SciTE - free source code editor.

eed3si9n
Thank you. Nice tools to be used next to the main ones. :)
Hosam Aly