SproutCore: Demos Start to Prove the Point

Developers I know will often evangelize their chosen platform, framework, or approach. Vendors like Adobe and Microsoft have theirs (e.g., runtimes and tools to deliver AIR and Silverlight respectively) and they expend a lot of effort examining the entire value chain — from developer, designer tools to finished runtime container — and figure out ways to make theirs the dominant runtime and thus control the upstream value chain and potentially make bazillions.

Making strategic choices as a creator or even as an end-user on next generation internet-centric applications — be they “Web 2.0” or hybrid desktop/web — is a challenge. None of us want a repeat of the video days when one had to choose Windows Media, Real or Quicktime (or all three) to deliver video, and even the right choice wasn’t a good experience for the viewer since WMV or Real didn’t run well on a Macintosh or at all on Linux.

The flip side with that video example is that content creators today are delivering video and applications to the most widely available runtime container, Flash, which means that Adobe is in a much better position to control the upstream value chain than anyone else and sell design, development and end-user tools and licenses to everyone along that value chain. That’s one reason why Silverlight is of such extremely high importance to Microsoft as they certainly don’t want to abdicate the hybrid application space, and everyone along that chain, to anyone else.

Apple is eerily silent in this video battle, as well as one emerging to connect all the different devices we use (desktop, laptop, mobile phone) to application functionality delivered via the ‘cloud’. For example, there’s been a lot of talk about the lack of Flash on the iPhone — and conjecture on how Apple disallowing it is placing Flash at a competitive disadvantage as a runtime container — but it’s all speculation about how Apple is doing so to keep a proprietary platform from gaining hold of the iPhone delivery model.

With respect to video runtime, the lack of Apple discussing publicly the installed base of Quicktime, which is undoubtedly close to Adobe’s touted 97%-of-all-computers claim for Flash due to every iTunes instance installing Quicktime on that computer, is a puzzler since they could be a player in the runtime battle for video delivery.

Why hasn’t Apple made Quicktime a target runtime container to compete with Adobe and Microsoft and ensure they dominate the value chain?

SproutCore and Web standards are two reasons why (see W3C and WSOrg for more on why standards matter).

When people discuss hybrid applications, the most oft-cited example is iTunes. It’s a desktop application that allows us to “Rip, Mix, Burn” our music and stick it on an iPod or iPhone. It’s considered hybrid since it also connects to the ‘net for music, video (and now iPhone app) purchases, podcast downloads, and cover art for the music you’ve ripped off of CD’s.

Connecting the desktop to internet/web server functionality “in the cloud” isn’t enough when we carry around devices like an iPhone or the rumored touch tablet and other small devices growing in penetration. Now we have three primary uses for so-called hybrid applications:

  1. Do stuff on our desktops that connect to the internet so we can purchase items, access our stuff or collaborate/share with others. Examples include iTunes, Apple’s MobileMe, Google Docs and Acrobat online
  2. Access, manage or use our stuff with a web browser from any connected computer or device
  3. Synchronize, access and manipulate our stuff with our “extreme mobile” devices (e.g., iPhone, $399 Eee PC)

Apple’s Safari browser is based on the open source WebKit, and it was quite revealing when they delivered a session at their June Worldwide Developers Conference entitled “Building Native Look-and-Feel Web Applications Using SproutCore.”

Though little has been intimated publicly on what Apple might specifically do in the hybrid application space, it’s clear that they’re driving forward in this area and delivering MobileMe (online applications also connecting desktop and iPhone through the ‘cloud’) and the success with small apps running on the iPhone itself, point the way to a distinct possibility that their vision of hybrid applications is triangulation with devices.

Huh? What the hell does “triangulation of devices” mean Borsch?

If more and more of us buy iPhones, the rumored touch tablet coming, and have desktop computers (either PC’s or Mac’s), why deliver an iTunes for the desktop when you can deliver it in the cloud like a MobileMe app and have it available to every device, sync’ing them together? Why focus on delivering hybrid applications that only connect the desktop to the cloud?

SproutCore is an approach that points the way to a hybrid, synchronization, and Web-based application delivery model that is being driven to ensure that no single vendor controls the value chain.

On the site they pitch developers with this, “SproutCore is a framework for building applications in JavaScript with remarkably little amounts of code. It can help you build full client applications in the web browser that can create and modify data, often completely independent of your web server, communicating with your server via Ajax only when they need to save or load data.

If you’ve used iTunes or iPhoto, the image here (of a very early demo that doesn’t support all browsers…yet) is of a web photo application using the SproutCore model and toolset. Of course, it doesn’t yet use a ‘triangulation’ approach to sync photos from the desktop to the cloud to an iPhone or device, but an app on the desktop or smartphone could easily connect to the server in the cloud and do so.

The best part? Open web standards. On their FAQ page SproutCore asks, “Why should I use SproutCore instead of a plugin like Flash or Silverlight?

Nobody likes using software running in a sandbox and no one likes to download plugins before they can use your software. If you want to create an application on the web that is fast, fluid, and native, and usable by everyone, use the only technologies that come built right into every browser: HTML and JavaScript. SproutCore makes it easy to do just that.”

If you’re making a strategic choice as a developer, content creator or deliverer of applications, how can you be certain that SproutCore will be embraced over an Adobe AIR or Microsoft Silverlight? Will the tools upstream in the value chain be available to create and develop runtimes that are open, or does it make more sense to go with a proprietary vendor approach?

I would argue that it depends…on your goals and objectives, support from a commercial vendor, and momentum (which is clearly in Adobe’s favor now). Delivering hybrid applications that triangulate to the desktop, cloud and smartphones requires a helluva lot more than a SproutCore approach alone could deliver (e.g., significant server-centric, scalable delivery would be required), but at least it’s a web standards, fairly fast development environment for creating the web portion of a triangulation strategy.

If you’re watching this space, I suspect that we’ll see a more fully fleshed out runtime container strategy from Apple by next January’s Macworld (though whether they’ll try to control it like the iPhone platform remains to be seen). Then we’ll begin to understand if the proprietary vendor approach is the one to take. If these vendors truly deliver amazing and wonderful tools and processes that nail every part of the upstream value chain, then people may choose that path.

If Apple (and others like Google) can convince everyone that an open, web standards approach will keep the internet a level playing field where all of us can innovate and create (my hope), then people may choose that path.

Which one would you choose and/or which approach (open or proprietary) do you think will win?

Posted in  


  1. John Dowdell on August 18, 2008 at 4:30 pm

    Hi Steve, a JavaScript framework is a way to code once atop various proprietary JavaScript runtimes. You’re still constrained to what the various proprietary JavaScript runtimes will allow you to do. A framework just gives you an easier way to find the intersection of their capabilities.

    (A “sandbox” defines stuff you can’t do… local file access, interapp communication, etc. The browsers have sandboxes, just as the cross-browser plugins do.)


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About Steve Borsch

Strategist. Learner. Idea Guy. Salesman. Connector of Dots. Friend. Husband & Dad. CEO. Janitor. More here.

Facebook | Twitter | LinkedIn

Posts by Category

Archives (2004 – Present)

Connecting the Dots Podcast

Podcasting hit the mainstream in July of 2005 when Apple added podcast show support within iTunes. I'd seen this coming so started podcasting in May of 2005 and kept going until August of 2007. Unfortunately was never 'discovered' by national broadcasters, but made a delightfully large number of connections with people all over the world because of these shows. Click here to view the archive of my podcast posts.