When A Project Goes Dormant

We use the ZK web application framework on our project at work. It was selected before I came back to Sun. ZK in itself is a pretty decent web framework that would allow JavaScript averse Java developers to write an Ajax-like dynamic web application without having to worry about the details of the browser. We've done some pretty amazing things with it.

But this is not a post about ZK.

Most of the team also uses NetBeans as our IDE. NetBeans has improved a lot over the last couple years. I even switched back to it when I was still at TransZap and used it a few times at OpenLogic for it's profiler. NetBeans 6.0 is really an amazing environment to code in Java, has great support for Ruby and has a community of plugin developers who are at work adding support for Groovy, Scala and other languages.

This post is only partially about NetBeans though.

I was pointed to the REM plugin when I came back to Sun. This plugin adds support for ZK to NetBeans. It was created as part of a school project and was posted on SourceForge. It was supporting ZK 2.3.0 and we were using ZK 2.3.0. This plugin made it much easier to learn ZK and write the pages themselves.

Then we upgraded to ZK 2.4.1. The plugin didn't though. But it was still useful, so we kept using it.

Work on NetBeans 6.0 was moving along quite nicely. I downloaded NetBeans 6.0 beta 2 to test it. I started installing my collection of plugins only to discover that REM wouldn't load. I posted a note on the forums asking about support for NetBeans 6 but didn't hear anything. So I downloaded the source code for the plugin, found the area of code that wouldn't work with NetBeans 6.0 and commented it out. It was still usable, but it wouldn't quite do for production work.

I decided to contact the project owner and offered to help. That was the beginning of my official involvement with the REM plugin. In a few weeks, I upgraded the plugin to support ZK 2.4.1 and then ported it to NetBeans 6.0. This was done just in time for Sun's IT to upgrade the default IDE to NetBeans 6.0.

This wouldn't have been possible if REM was a closed source product. We would have been either stuck on NetBeans 5.5 or we would have had to abandon the plugin. The open source nature of the project means that not only can we keep using the plugin moving forward but that we can contribute back to it and make it more valuable to people outside of Sun. This in turn helps the ZK community by adding value to it by integrating it with another IDE and helping it grow.