Sunday, December 16, 2007

Netbeans may get me to learn Ruby?

I wouldn't necessarily call them IDE wars, but the competition among IDE vendors is certainly making things easier for us developers. The only difficult thing we face now is choosing amongst them. The newest release on the block is NetBeans 6.0. I have tried various versions of NetBeans over the years, and 6.0 looks like a well-integrated version as opposed to a collection of haphazard plugins. They seem to be firing on all cylinders now with support for the latest frameworks, mobile development, and even non-Java languages like Ruby. They even include excellent Rails support. I can't wait to find a good excuse to try out Ruby on Rails. I plan to use it as a front end to a JPA backend. Check out this video to be amazed at the powerful combination this can achieve. What a nice way to introduce Rails into your Java enterprise. After all, it is all JVM bytecode (at least with JRuby), and while a consulting client may balk at native Ruby code, they may be more receptive to JRuby since it runs on the same platforms they are already using.

Eclipse: Friend or Foe

I have had a love/hate relationship with Eclipse over the years. I began my Java career like most folks; using a text editor (TextPad on Windows for me) and command line compilation. Despite this humble start and the mantra "real programmers use emacs", I was not a text editor bigot. My prior career with Pascal and the advantages of a real IDE like Borland's Delphi was not lost on me. So it came to pass that I began to develop Java on Symantec's Visual Cafe. I think my copy came with a book on the Java language. What was intriguing to me about this IDE was the first integrated debugger I had seen for Java, and it came with its own JVM. The VM allowed you to modify source code for a running application in real time and the changes were immediately reflected in the running application. You could program a red circle to bounce around the screen, and while it was running, you could change the color to blue. Only now, with the pressure of dynamic languages, is this productivity benefit being realized in modern Java environments by products like JavaRebel. My first Java customer was Victoria's Secret in Columbus, Ohio. There IDE of choice: Microsoft Visual Studio J++. Yup, and I loved it. I was developing programs for the Windows platform and I could make calls directly to COM objects. It compiled blazingly fast (for the times), and had a good debugger. My next Java customer was a Borland JBuilder shop, and it was very comforting for me to get back in touch with Borland. At that time, many of the popular IDEs had coallesced, and JBuilder became the top dog in only a couple years. They enjoyed that spot for a number of years until poor marketing, lack of focus, a failed J2EE container, shotgun acquisitions, and a bloated IDE and price point caused it all to crumble away. The advent of IntelliJ IDEA and the newly formed Eclipse Foundation soon crushed Borland where it stood. How could Borland justify $3,000 or more for an IDE when competitors were providing similar benefits for free or very little cost? The answer; they couldn't. Since that time, Borland attempted to sell their IDE products but considered the offers too low. So in 2006, Borland formed a wholly owned subsidiary named CodeGear to market and develop the products. Sometime in 2003, I noticed that my customer was spending about $60K per year on JBuilder licenses, and suggested they switch to IntelliJ IDEA for about $5K per year. After all, we weren't using any proprietary features of the JBuilder suite, and IDEA consisted of a code editor that blew JBuilder out of the water. So, I have been a happy IntelliJ user for many years now. Over the years and between customers, I lacked for a Java IDE that I could use for personal use. I usually got by using a beta version of IntelliJ, however I always stole a peek at the latest version of NetBeans or Eclipse. I had also investigated each of these products as a platform for Rich Client Applications. Still, I don't believe that I ever developed a fondness for either of these "alternative" IDE's as long as IDEA was only a mouse click away. That all changed this month. This month, I am at a customer's site who uses Eclipse. Not only Eclipse, but the Rational Software Architect suite built on Eclipse. RSA is a behemoth. The install on my notebook occupies over 7GB of disk space. Yes, you read that correctly. GIGABYTES! That's almost triple the size of my Windows XP operating system! To be fair, this includes Websphere, but come on. To add insult to injury, a single license of RSA costs almost $10,000. OMG! Despite the size of the install, the Eclipse version is 3.2, and it performs rather well. I don't believe you actually learn an IDE well until you are forced to use it. It took about a week for me to get comfortable with it, although even now I can't say I like it. I think it has all of the functionality that I need, or at least it can have it using plugins. Plugins can be a double-edged sword however. You have to know that you want one, you have to find it, you sometimes have to choose between several, then you have to hope it works well. I have tried the MyEclipse product in the past, and I think I will give it another shot now that I am more comfortable in the Eclipse IDE. It seems to have a nice starter set of plugins. I have noticed however, that even though they list support for some features, the forums tend to reflect that the support is still buggy. MyEclipse is supposed to come with good Websphere support and IBM offers a free ClearCase plugin. Since my current customer is not leveraging any other features of RSA, they could save $9,857 per developer by switching!