Tuesday, April 01, 2008

No, not April Fools.

While I sit here, hopefully upgrading our BusinessObjects installation, I thought I'd note a few things. Things that have either been on my mind, through my mind or out of my mind.

First, let us talk of Adobe AIR, and indeed AIR for Linux. Now here's a turn up for the books, while many apps seem to be going "on to the web" and running in a browser, AIR shows us a new way. Lots of apps that can run on a desktop. No, not klunky, minimal widgets, but full featured apps that read/write to apps "out there" in web-land. Pretty, damn schweet.

Now, some smart-arses may be thinking that this is nothing new. Indeed, this is what I thought MS were going to do with .NET and Windows 6/Longhorn/Vista, when .NET was initially mooted, but no. They chickened out. Which is a shame, because the .NET runtime (a.k.a CLR), C# and VB.NET aren't bad (being MS rewrites of the JVM, Java, and er.. a .NET-ified, "it's a proper language now" version of VB, respectively). However, the Adobe AIR runtime seems a lot better at memory management than the JVM, or my limited experience of Mono's CLR implementation - this makes it more suitable for desktop-based RIAs. Maybe there aren't enough, really rich apps out there yet for AIR to tell, but I'm sold.

Talking of .NET apps: why do I run more .NET (Mono) apps on Linux than I run .NET apps on Windows? On Linux:

Talking of Mono (neat segue, here) - I've recently tried openSUSE and will be playing with SLES 10, somewhat soon. What do I think (bear in mind previous comments I've made), well the fact that GNOME is available (good job too, considering the number of GNOME/Mono experts at Novell!) and has the best interface of all GNOME versions is a boon. Being able to choose between drivers for my wireless card (unlike Ubuntu - old driver only, and Fedora - new borked driver only) was a cool addition. Things worked pretty well, and I'll blog more later in the year.

Mentioning .war files, I've been playing once more with Grails, now it's hit it's 1.0(.2!) release. It's a lot more polished and very, very cool. At this point in time, both Java and experienced, MVC-using PHP programmers can either choose to try (J)Ruby on Rails or Grails. Neither is perfect, but if you do bother learning one or the other your (future) productivity will rocket.

JRuby has the distinct advantage in Sun sponsorship, with Netbeans integration etc. Grails has the advantage of being written in Groovy/Java and thus you can get at all the Java classes for free. Grails also has the fine, familiar underpinnings of Spring, Hibernate, SiteMesh, GSP (which are so like JSP) which most Java-heads have dabbled with at least.

Groovy at least isn't particularly performant (as some recent bloggers have shown) but neither was Java all those years ago... (Unsure about Grails, which has large parts written in Java - my own apps aren't accessed often enough to tell).

It's funny how things come around: when I was a full-time postgrad (1992-6), Java 0.9 came about, but most "powerful" machines only had 32MB RAM and well-sub-100MHz CPUs. We were all LISP fans/programmers - OO stuff was used, but among the some of the faculty, Functional programming was often looked upon as some sort of god-like beauty. Now, Java 7, Groovy, Scala, ... are all closure/Functional-programming obsessed. The Art of the Meta Object Protocol will always stick in my mind because of how much a couple of people were excited by it (and it had a great cover) and look at all that lovely MOP in Groovy.