NetBeans Projects Pane
I’m trying out NetBeans 5.5.1 as a Java IDE and I’m very impressed so far. Thought I’d cough up some related thoughts on programming environments and free software, mixed with some personal history:
MS Visual Basic
I began my corporate programming career using Visual Basic 4, and moved on up to VB6, which I continued to use at home until last year. I really liked VB for GUI programming and quickly putting together various utility programs. I’ve probably made over a hundred more or less complicated VB programs for my personal use, in addition to the huge program I worked on at my job many years ago.
While still using VB on the job, I started learning Java and have done a fair amount of server-side programming with it. I’ve always wanted to learn how to do GUI in Java, but it hasn’t been easy.
I started out using Borland’s JBuilder in 1999. It had layout managers for putting together an interface, but they seemed clumsy in my initial experiments. It had some proprietary layout manager that was supposed to be better, but I didn’t want to become dependent on it, being at the time already interested in free software and not wanting to become hooked on yet another proprietary system like VB. (Even if JBuilder itself was proprietary, that was fine for starters if I was only operating on free code.) (And yes, Java wasn’t free at the time, but it seemed like a step on a better road than VB.)
Proprietary GUI helpers or not, it just seemed so much more cumbersome and harder to make an interface with Java. I continued using VB for “fun” GUI programming and playing around, always hoping to learn Java GUI programming later and also hoping that it would become easier in time.
Of course it was a trap to stick with VB for so long. It wasn’t free, and it was Microsoft’s beast. It was possible they could throw out classic VB and come up with some new and incompatible version, maybe calling it vb.NET. Long term, it was completely incompatible with my free software ambitions, and Microsoft has made it very clear what can happen if you count on them for future support of your programming environment.
NetBeans Widget Pallete
Moving to Free Software
A few years ago, I started using Eclipse for my Java IDE. It’s free as in freedom and it was better than JBuilder. (At least, better than the older version of JBuilder I was using.) I was able to start using it quickly, but haven’t spent a lot of time learning the intricacies since my job isn’t primarily Java programming. It’s only occasionally that I need to get in to the IDE and make or modify a more complicated program. Often I just edit Java class files with a basic text editor. (Which can be a good exercise for keeping some details of the language in your memory rather than relying on the IDE for everything.)
Eclipse is super. This entry isn’t meant at all to run it down. I intended to keep using it (and may continue using it for work, at least) because it is free and well-supported (and funded). Whenever possible, I like picking popular projects for the network effects and for the best chance at longevity. I had heard NetBeans was pretty good, and it is well supported with Sun and a community behind it, but basing my decision solely on size and reach of the respective projects, I think I’d have stayed with Eclipse.
So what has tipped me over to NetBeans? It comes back to GUI programming and started this weekend when I went looking for a way to do this in Eclipse. I quickly found references to the Visual Editor plugin, and I found a lot of information about it, but I couldn’t get it working with my installation of Eclipse. With enough motivation I might have persevered, but I had the NetBeans alternative to look at.
Also, my Eclipse struggles reinforced the reservations I’ve had about Eclipse. While I was quickly able to be productive with it, I’ve never felt at home in it. (I’m sure partly due to my lack of experience.) There’s something that hasn’t felt right about it. Maybe it feels too complicated with all the ways it is meant to be extended. Maybe it’s terminology, or the way things are presented, or the way it wants me to work that doesn’t feel comfortable. (Reminds me of how I felt about my very brief exposure to WebSphere a number of years ago.) Nothing that can’t be overcome, but something that may lead me to stray.
Please don’t get me wrong: there is a a lot to like in Eclipse. Maybe I just want a more warm and inviting IDE womb to feel safe in, and am hoping NetBeans will be that. Although I know it is very powerful and extendable itself. (Outside of Java though? I don’t know.) Maybe it’s more appealing for being more Java-centric. (As far as I know.) Sun gave us Java, and I could see some benefits to throwing in with them for Java development.
So I was open to trying something new. I heard great things about the GUI Builder interface in later versions of NetBeans, called “Matisse.” I also tried to learn more about what the SWT thing was all about in Eclipse and considered if I’d be better off with the pure Swing approach that I’d get in NetBeans. It sounds like with newer JVMs, Swing performance is much better. I read reasoned opinions from people in favor of either editor or both. There was the suggestion that Eclipse with its SWT approach kicked Sun in to gear to make Swing better.
I’m sold on the GUI editor. If this thing can do all the other things an IDE should do, I’m pretty sure I’ll be a NetBeans convert. I don’t want to gush too much about the GUI designer, and this may not be a big selling point for VB-disparagers, but I can see this as a fully capable replacement for what I had in VB, GUI-wise. Except now I’m free and cross platform enabled. It’s way cool how they’ve made this thing.
If you look at the screen shots here, the GUI may not look especially flashy–I think this is the default “Metal” look and feel–but it seems plenty functional and I’m only mildly driven by eye-candy appeal of user interfaces. I can appreciate a pretty interface, but I don’t need it. It looks like there are other options, but that’s further down on my list of things to learn.
Win Win Win Win Win Situation
Either way, NetBeans vs. Eclipse, what a fantastic situation to have for free development options. Two great IDEs to choose from. Some healthy competition. Great stuff.
Another Opinion and a Diversion in to Application Integration Tools
I read many good posts out there while exploring my options, but there’s one in particular I found interesting:
Benjamin Booth wrote a thoughtful post a couple of years ago saying that for him, there was no real debate: it was Eclipse over NetBeans. What surprised me and grabbed my attention was that he is (was?) a developer at webMethods, and worked on the webMethods Developer IDE for four years. This is a program that I’ve used extensively in my job from 2001 to the present.
webM Developer is a good example to me of how Java can be used to make a respectable GUI program. It has a little bit of sluggishness, but it is a rich and powerful environment. Although not without a lot of areas for improvement. It’s one of those programs that is targeted in some ways to non-developers, and can frustrate you with its attempts to make things “easier” for business types. At the same time it provides a lot of options for developers to work around limitations.
Tibco is another Java integration product I’ve used extensively and makes good use of Java both for GUI in its developer products and for the engine of its server components. (I’d really like to take the better features of both products and put them together.)
Just an aside, FWIW.