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.
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:
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.