
I got a copy of NetBeans 6.1 from JavaOne.
About 6 years ago, when I downloaded JDK 1.3, Sun told me there is a free IDE bundled with it. Sure, why not, I thought. I choose to download the bundled JDK1.3.1 + NetBeans pack. That became my second-worst Java download experience in my whole life. (The worst experience is the Project Looking Glass bundled with JDK 6, which I uninstalled in a just a few minutes after download.) I don't know how to describe the NetBeans 3 experience. At that time I've been using UltraEdit for quite a while. There is nothing I can't do with UltraEdit plus a command line compare to NetBeans 3, plus the sluggish "lightweight" Swing implementation on JDK 1.3.1. The whole experience is really a bad one, and I wondering why Sun kept saying this is the best IDE ever. I mean, have they ever use the Visual Studio before? I almost swear I will never use NetBeans again in my entire career, unless my job force me to use it.
In the mean time IBM open-sourced the groundbreaking Eclipse IDE inspired by their VisualAge product line. It is a smart mix of native and Java layer; It has the native user response and experiences, while still have the simplicity and extensibility of Java. In my opinion at that time, Eclipse technologies are at least five years ahead of NetBeans. Those advances are not just about some conceptual differences, but all the details too.
Six years later, I finally decide to give NetBeans another chance. The reason is because I saw Tor Nobye's JavaOne demo with James Gosling and realize NetBeans has grown up now. I happened to work on a Java Micro Edition project for my work recently, and NetBeans plus the Mobility pack seems like the perfect chance for my first impression on NetBeans 6.1.
The installation of NetBeans 6.1 is very simple. It has a platform-specific installer for both Mac OS X and Windows (those are the only platforms I tried). The start up time is quite good, actually it takes about the same time as Eclipse on my machine. The user interface is pretty neat, way much better than the nightmare version 3.
The Mobility pack contains the famous Visual Mobile Designer. This is one of the best screen flow design tool for Java ME. It works around the tricky round-trip code generation issue by putting the generated code in a read-only region, so new code will not mess up the generated code. You still have the freedom to write code outside the generated region.
One click on the Run button, the compiled code is deployed to the emulator, and the emulator is launched. Unit testing on NetBeans is as simple as using Eclipse or Microsoft tools. The jar and jad files are generated under the dist directory automatically after project is built. Simply upload those files to a web site, and your MIDP application is ready for deployment. The Mobility pack has a manifest tool to assist you to select the JSR and MIDP/CLDC profile requirement, and the packaging are very easy to use.
My goal is to build a web URL monitoring panel. The tool sends concurrent http requests to the web site I want to monitor, and display the response on the phone. This is a very simple application. I had it done in two days using the brand new tool. However, the development is not totally painless. I found that NetBeans provided a Swing-like mobile TableItem which supports the backing TableModel. I was very excited about this and decided to use it on my first project using Mobility pack. When I update the model and fire an update event, the screen does not refresh on the standard Mobility pack emulator. I need to navigate around to see the refreshed screen. I tried the same thing on Sony Ericsson's development tool, which is a modified Sun's WTK 2.5, and that emulator works fine. I see my screen refreshed after table model change and fire the event. Since the manufacture's emulator works for me, I moved the finished project into the device. Guess what? TableItem is not working in the real device! It partially works in Mobility emulator, works in the manufacture's emulator, but does not work in the real device. I end up rewrite all my TableItem code into StringItem. Of course, the Z310 phone supports StringItem just like all Java phone, and no need to fire any events to make it refresh. At this time, I will stay away from NetBeans implementation of mobile TableItem. It is definitely not reach production quality for sure.
It is nice to know that NetBeans is now really a usable tool. I managed to finish a project completely in NetBeans without switching back to other IDE. Six years of hard working, now NetBeans is getting much closer to it's competitors. Other than bit by TableItem, the first impression on NetBeans 6.1 is quite good. It will be my Java Mobile IDE from now on.
No comments:
Post a Comment