I now this question has been asked somewhat similarly before, but I have done hours of research into some sort of application, whether browser based or not, that will allow multiple people (ie my friend and I) to collaboratively work on a Java project. In the past, my friend and I have simply been using a flash drive or dropbox to periodically send each other files and changes, but that has quickly become tedious.
I've gone through a number of different sources, such as EtherPad, Cloud9, and EFC DocShare, but none of them worked the way I wanted them to.
At the very least, I wanted something that:
- Can display changes in real time. In the past, we had to have one person code while we discussed changes and new content to be added, so being able to both code at the same time is ideal.
- Stores a project on a cloud/synchronizes files between the users.
- Acts like an IDE, such as Eclipse or Netbeans, in that errors (such as missed brackets and semicolons) show up in real time, and not after the program is compiled.
Things I have tried:
- The browser based Cloud9 application, but they don't have native Java support. There are, however, compilers and runners that can be easily made to allow Java support for Cloud9 here:
Despite this, it was rather confusing to set up, and even when it was finally working I had to compile and then scan the console for all the locations of errors in the program. The whole point I use an IDE is so it will catch small "grammar" errors when I type them, not after I compile it. Maybe that means I'm a bad programmer, I don't know.
- I then moved to using ECF's native DocShare support, which is an Eclipse plugin. The documentation for that, https://wiki.eclipse.org/ECF/DocShare_Plugin, is not plentiful, and it is outdated. I was able to send and receive messages from my friend via eclipse, but we could not get file sharing to work. Had the file sharing worked, it would be exactly what I needed since it synchronizes each person's workspace, allows for multiple users to type at the same time, and will "spellcheck" as you code.
- Etherpad I looked at too, but it does not have native Java syntax support. As such, it not only does not check the code as I type, but it doesn't highlight stuff as an actual IDE does.
So in summary, what is there that can allow for real-time multi-user programming, cloud or synchronized file sharing, and compiles code whilst you type.