As a developer the greatest joy for me is to experiment with new tools, right at the bleeding edge. So what are the toys of today?
While I am obliged to use Eclipse in office, I use Netbeans for my private play projects since a while, and more and more I like this tool. Now the current version NB 6.8 seems to be really mature and stable, and it is a joy to work with it. As I often want to test this and that at very different locations, I appreciate that I can even work with NB on my Netbook on a 1024×600 resolution display.
Another hype I am eagerly following is Scala, and at least until now the NB Scala plugin by Caoyuan Deng was always a much better experience than the Eclipse plugin. NB always seemed more smart and simple than the complex doing-it-my-own-way IDE with the hidden sun.
Well, mentioning Scala, this is really a language which captivated me. Groovy was a great experience, and in some areas still is: Especially for scripting and embedding and where dynamic is the most effective way to do things. But from a Java perspective I never learned so much about programming since when I started to learn Scala. I would really like to see it become main stream in enterprise development.
The most recent hype that caught my attention is Google Wave. A really interesting new approach to communication and collaboration, even if in its very early stages yet. It fuels the phantasy very much, although I often see that my very interesting new ideas are already thought and even implemented by some smarter guys 😉 .
Well, when you start learning more about Wave from a developer’s perspective, you will come to Google App Engine very fast, as the robot extensions currently are only supported on that platform.
Nice to see that a Netbeans plugin already supports development of Google Apps, although it is not promoted on the famous pages. And hey, Guillaume Laforge’s Gaelyk library seems a really nice thing to work with Groovlets on the GAE. Unfortunately it is in Netbeans not easy to create a mixed project, being of GAE and of Groovy nature…
So I had to put hands-on now and start a template project for Gaelyk development in Netbeans. You find it now on Github.
Yeah, Git and Github, the next big thing in my toolkit. I started to explore git some weeks ago, and I really like the decentralised approach of it. I had experienced sccs and cvs, and in my company we are now working with subversion (and tortoise), which substituted PVCS and was a really big step forward. But yes, with the central repository, commiting code or creating a branch was always “a big thing”. The rule was: Never check in uncompilable or vulnerable code. So often large parts of develepment are kept on the local hard drive of developers. Well, you even don’t want to pollute the already complex repository with even more branches, do you? It is enough to find the branches of the different supported versions and of larger projects in it.
But beware, if you have to stop working on a complex development to fix this bug or prototype that feature in the same version of your software. With subversion this means: setting up a whole new workarea for each task.
How other is the development with git, where you keep all data locally in one workarea, and you commit and branch as often as you like. Switching from one task to another means simply switching the branch. And if your code is mature enough, you push into the central repo. A real joy to work with.
BTW: I stumbled over git because many people in the Scala user list seem to use it and I was curious. And there is also a Netbeans Git Plugin which is in early stages and has a somewhat moderate progress pace, but the most common tasks you can do directly in Netbeans.
The only thing that is a bit sad is, that it is not easy to combine all this nice things easily in one Netbeans project. You often have to create separate projects to explore the build.xml and properties, and than merge the different things together in one project, just as I startet with Gaelyk-NB-template.
So what do you think, if you read that all? I changed my tool box in the last two years heavily, but I feel really good with it. The time has come to look forward to program the first Wave robot with Gaelyk and with Scala/GAE, and make that experience even more convenient.
Well, another sad thing is that this is miles away from my company, where Java, Eclipse and Subversion is set …