I’ve been reading a lot about Ojective-J, Cappuccino and SproutCore and I believe these new frameworks are going to have a huge impact on the web app industry and user experience on the web.

So what are they?

Objective-J is a clone of Objective-C, the language behind OSX desktop apps. It was created by the guys at 280North who recently launched 280Slides (a browser-based version of Apple’s Keynote). If you’re interested, I managed to find a link to the Objective-J source which hasn’t been open sourced yet. More files here and here.

Cappuccino is a port of Cocoa (the set of Mac OS X Objective-C application frameworks) to the web. It was created by the 280North team.

SproutCore is JavaScript framework created by Charles Jolley which is being used in the new Mobile Me platform that Apple has just introduced.

So what’s the big deal?

Right now, people are generally building web apps with CSS, HTML, a sprinkling of AJAX and their framework of choice (Rails, Django, Symfony, etc). The basic client-server model still dominates.

Objective-J and SproutCore change all that. They allow you to create true desktop-like apps right inside the browser. They don’t rely on a continous web connection and they are as quick as desktop apps. In fact, if you run them inside a site specific browser like Fluid, you probably would think they were real native desktop apps.

Everyone already generally agrees that we’ll see a melding of the desktop and the browser, but Objective-J and SproutCore are the first solid step in this direction. They’ve abstracted away all the basics so developers don’t have to re-invent the wheel for every web app they build.

Quoting from Mac Fanatic:

“Developers have even more reason to be excited. The whole Javascript/HTML/CSS design process to manipulate the DOM is abstracted to a higher layer with the introduction of Objective-J. The Objective-J language allows developers to write code in a style more like writing for traditional desktop applications. The developer doesn’t directly interact with the DOM or style the page with CSS. Instead, Objective-J itself manages all the views and drawing the objects to screen. More so, the Cappuccino framework provides functionality that is traditionally lacking from other Javascript frameworks, such as: copy/paste, undo/redo, document management and archiving, vector graphics and animations.”

So the big shift is this: instead of relying on the client-server model, you can build asyncronous, offline, robust web apps right inside the browser. In fact, they don’t even need to connect to the web at all.

And even more interesting is this: if you use Cappuccino, those apps will automatically look and behave like OSX native desktop apps – with zero learning curve on the developer’s side. He or she can simply focus on building an kick ass app instead of trying to re-invent basic UI functionality every single time.

You might be saying “Duh. You can already do this with AIR or Silverlight. What’s the big deal?” The answer is that Objective-C, Cappucino and SproutCore are all open source. I think this is very important as it ensures the ideas aren’t directed by one specific company or organization (and their financial goals).

Backed by the big boys

Everyone has heard about Mobile Me, Apple’s latest incarnation of the .Mac platform. They are essentially porting Mail, Address Book, iPhoto and iCal to the web … but what isn’t as well known is that Apple have chosen to use SproutCore for Mobile Me.

This is really exciting for a couple reasons:

1. A massive consumer based company (Apple) is building applications for the browser that look, feel and function exactly like desktop apps. This will change the average web user’s expectations of what ‘web apps’ should be able to do, thus eventually completely removing the need to differentiate between desktop and web apps. The user simply won’t care.

2. We will start to see standardization in UI conventions because more and more apps are built on frameworks that mimic OSX. (This could be the topic of another large blog post as it relates to Apple’s long term strategy to crush Flash, AIR and Silverlight and standardize everyone in the whole world on Cocoa.)

So that’s it. I’d love to hear your thoughts on where this is going. Whatever happens, we’ve got exciting times ahead.

Additional Reading