Tuesday, April 29, 2008

Countdown to JavaOne 2008 (and Twittering)

This will be my first year going to JavaOne, and I am expecting to have a lot of fun. In creating my schedule I was a little surprised by the number of sessions on scripting languages. I guess I shouldn't be though, there has been a lot of news regarding scripting languages on the JVM in the last year. Here is a sampling of the sessions.

  • JRuby: Why, What, How...Do It Now
  • JavaScript Programming Language: The Language Everybody Loves to Hate
  • Comparing JRuby and Groovy
  • Programming with Functional Objects in Scala

Add to this a strong sampling of JavaFX sessions, Ajax sessions, and a session on Sun's new Fortress language provides a strong sense of what we can expect in the next ten years. Frankly I was hoping that my scripting days were behind me, but it looks like I need to get my hands dirty again. I just wish that there was a JPerl!

By the way, if you didn't notice, I decided to try out this Twitter thingy. I am thinking that I will Twitter from JavaOne in between sessions. Are there any other programmer type Twitterers out there? Anyone else Twittering from JavaOne?

Wednesday, April 23, 2008

Are web apps moving to the Desktop?

I saw an article on Ajaxian yesterday noting that Google was now allowing you to use their APIs in non-Ajax applications. For instance, you can now use their translation API from the server, or in a Flash application, or perhaps even from a VB application.

This combined with the release of Adobe AIR, a platform form running "web applications" on the client, makes me wonder if the future of "Web 2.0" applications is not in the browser, but on your desktop.

If you look at AIR, the attraction seems to be that it allows you to utilize resources on the client PC, going beyond the capabilities of JavaScript in the browser. On the other hand, don't count out the browser.

At the heart of the Firefox browser is XUL Runner, an engine that allows you to build applications on top of the XUL markup language and JavaScript, along with the ability to use resources on the local PC. A more recent tool is the Google Gears browser plugin, which essentially puts a SQL Lite database engine in the browser.

So what is all of this mean for the future of the industry? It seems obvious that the push is to turn the web application of old into a desktop application. These applications will go beyond Ajax, allowing the application to use resources on the client PC such as databases, access to the file system, and will in general be runnable even when no Internet connection is present.

I embrace this future, but I question its popularity. Yes, I expect that GMail will have off-line access for most of their apps by utilizing Google Gears. I am sure AIR will be a success as companies roll out "desktop" apps using the platform. And I expect that there will be others... a lot of others.

I think this is where the problem lies. When the term "Ajax" was coined, it was available almost everywhere, support for it was ubiquitous. This I believe led to its immediate adoption and the state of the web today. But for off-line web applications the story is different. There are too many tools out there, and in all cases the user needs to download and install software on their computer.

My hope is that all of these tools can get along, but the reality is that this is unlikely to occur. As a user of these applications you will be faced with a choice. You can user install the Google tools for Google apps, Microsoft tools for their apps, and Yahoo tools for their apps... or you just won't use them.

Tuesday, April 22, 2008

.NET is leapfrogging Java and fairies just stole my underpants

I received an email from Manning along with a link to their forum that caused me to pause. It was titled "Has .NET Leapfrogged Java?".

It seems that an anonymous author had three facts that made this true.

1. .NET has LINQ
2. C# had generics/foreach before Java.
3. .NET has Python, Ruby, F# and others.

These "facts" seemed a little light to me, and I said as much.

If you have an opinion on the matter of Java vs. C#, you might want to check this out.

GWT-Ext vs. Ext-GWT

If you haven't seen Ext-JS, you should. It is a wicked cool API for JavaScript containing tons of widgets and tools. What immediately attracted were the rich set of attractive widgets that comes with Ext-JS out of the box.

For us GWT developers there is a project that wraps the Ext-JS library for GWT, namely GWT-EXT (GWT before Ext). The initial release was in July of 2007, and since then it encapsulates most of the functionality of Ext-JS.

Now just yesterday something happened that could undermine this project. The same team that developed Ext-JS has now released an initial beta of Ext-GWT (Ext before GWT).

This has got to be a blow to Sanjiv Jivan of the GWT-Ext project, who has undoubtedly given up a lot of his free time for the development of the library. But perhaps it does not have to mean an end for GWT-Ext. The first thing it has going for it is that there are already a lot of developers using it, who may not want to switch to an entirely different set of APIs just because it is the "official" version. Also, on taking a quick glance at Ext-GWT, I already see at least one feature that is missing, and that I can not do without.

For me, I am not sure where I stand. I think that for now I am going to stick with Sanjiv's GWT-Ext, at least until Ext-GWT comes out of beta. And then I will decide based on the stability of each, and which provides the features I need.

What do you think? Is an "official" Ext-GWT really what we needed?