Saturday, December 15, 2007

OpenSolaris for Mobile Development

I generally prefer to use my laptop for all my hobby programming for various reasons. I currently have my laptop set up as a dual boot system with both Windows XP and OpenSolaris (SX?E b77) installed. I've been trying for over a year now to get really comfortable with OpenSolaris as a development OS, but for my particular needs, it is still a somewhat troubling experience. For instance, I've been using NetBeans 6.0 a lot recently (for the JEE trivia app that I've been working on), but NetBeans is painfully slow on my ThinkPad t42p. This may be due to the pretty sluggish performance of GUIs in general since OpenSolaris does not have direct rendering support for my ATI video card (yet), but it is still disappointing that running the most recent Sun IDE on the most recent Sun OS on the most recent Sun JVM leaves much to be desired with respect to productivity. I really want to like this OpenSolaris experience, but the following issues always make me feel like going back to Linux or perhaps even Windows for my development machine. Here's my current wishlist for developing on OpenSolaris on my laptop:
  1. Direct Rendering support for my ATI 9600 Mobility card. The graphics performance on this machine is very noticibly sluggish.
  2. Bluetooth support so that I can use my mobile mouse. This mouse has worked fine for me in Linux, FreeBSD and Windows, but I still cannot get it to work on Solaris.
  3. Proper support for my Synaptics trackpad. Even if I had a working external mouse, I still find the convenience of having the track pad right and mouse buttons right at my fingertips to be very helpful. Right now, it simply works as a default PS2 two-button mouse. No middle mouse button, no scroll-wheel emulation, no disabling of tap-to-click, etc.
  4. A proper upgrade solution for the base OS. Indiana isn't quite there yet (from what I've heard, I've been too busy with other things to actually give it a test run so far), so I'm still using Solaris Express. I've decided to build all my local software packages under my home directory now, since I'm wiping the system partition so often for re-installs. Also, it's a little frustrating to have to download 3+ GB of data, just for incremental updates.
  5. ZFS for the root partition in a way that's upgradable. I did set this up once using the manual procedure, but I was then completely unable to upgrade the OS with the current OpenSolaris install tools (aside from BFU, of course, though I'm not completely sold on going that route, and being resposible for updating each consolidation manually).
  6. Seemless support for suspend, hibernate, resume. I've had this working just fine on Linux and Windows (not FreeBSD last I checked), and it is definitely one of the compelling features of laptop development that I'm missing out on while using OpenSolaris. If I want to shift locations, I have to either close down all my apps, or close the lid while the computer still runs. Also, it's nice to be able to simply hibernate the machine overnight, so the next time I have a few minutes for development time, I can have my environment set up just as I left it, without having to leave the laptop on 24/7.
That said, I should point out that it isn't all bad, of course. There are some good aspects of using OpenSolaris as my dev platform (which is why I haven't wiped it quite yet).
  1. ZFS for my home partition rocks. Being able to send my home partition to another machine, with incremental snapshot upgrades, is great. Setting auto-compression for my source directories helps me save a bunch of space.
  2. Having DTrace (and the other observability tools) available is wonderful, as well as the fact that Java/PostgreSQL both come with DTrace probes enabled on Solaris Express.
  3. Having the latest Gnome is a nice touch. I've been using Gnome for my desktop environment for many years now, so the actual desktop on Solaris Express is extremely familiar.
  4. NWAM has made a wonderful difference in my everyday usage. I can now easily set up my network whether I'm wireless at home, wired at home, or on using the free wireless at my local library and/or Panera. This lets me at least not have to worry about network connectivity while working.
  5. Having a full Unix command line available all the time. This is something that I really miss whenever I have to use Windows. I always install cygwin, but even so, I often have compatibility issues while using it under windows, and I simply cannot be productive without the Unix shell that I've grown to love in the decade since I first installed Linux.
Now, many of the issues that I mentioned in my nit-picking are currently being worked on, but I still get the feeling that the OpenSolaris community isn't the most open (e.g. Why exactly was b78 delayed, and when will it be available? Is there anything the community can do to help the build/deploy process along?), so it is difficult to tell when exactly these enhancements will be released.

No comments: