I retired from personal blogging in July 2008 but you can find me over at blog.xero.com
Follow @roddrury
If you were blown away by the MobileMe interface, then this link is very, very interesting on a number of levels.
Cocoa for Windows + Flash Killer = SproutCore
Google needs an open web because it can’t compete and sell ads if Adobe or Microsoft infect the open web with proprietary Flash or Silverlight plugins and subsequently convert web content into opaque binaries instead of open HTML.
I remember Pink, Taligent and Copeland. Man that goes back a while.
SproutCore not only makes it easy to build real applications for the web using menus, toolbars, drag and drop support, and foreign language localization, but it also provides a full Model View Controller application stack like Rails (and Cocoa), with bindings, key value observing, and view controls. It also exposes the latent features of JavaScript, including late binding, closures, and lambda functions. Developers will also appreciate tools for code documentation generation, fixtures, and unit testing.
A key component of its clean MVC philosophy that roots SproutCore into Cocoa goodness is bindings, which allows developers to write JavaScript that automatically runs any time a property value changes. With bindings, very complex applications with highly consistent behavior can be created with very little “glue” code.
and
That makes SproutCore a light Cocoa alternative for deploying web apps that look and feel like Mac OS X desktop apps. At WWDC, Dr. Michael B Johnson of Pixar gave a lunchtime presentation where he pointed out that if you don’t need 64-bit addressing, multithreading, or other desktop-only features, it makes a lot of sense to deploy apps using the web.
But aren’t web apps awful? They historically have been, particularly in the days when every server response required a page load. The development of Ajax technologies, which allow the current page to draw new data from the server asynchronously in the background, has helped. Modern Ajax websites such as Flickr offer drag and drop features, and Google’s use of Ajax in its web apps has made them more desktop-like, but web apps are often well behind those designed for the desktop in terms of a usable interface.
SproutCore helps push things forward; it keeps rich interaction local within the user’s browser and supports offline functionality, making web apps behave more like desktop apps and less like the constantly reloading HTML pages that users dislike. They also look like desktop apps, and in particular can look like Mac OS X desktop apps.
The SproutCore framework also solves a lot of problems for web developers. It takes care of browser incompatibility issues to run cross-platform in Safari, Firefox, or Internet Explorer 6/7. It also makes it easy to leverage the fancy CSS features of modern browsers.
On Apple SaaS …
Apple already has a silent lead in the consumer “Software as a Service” market with .Mac; While Google, Yahoo, and MSN have built models around pushing ads to fund their online mail, photos, and other applications, Apple has been quite unique in being actually able to sell its .Mac service to subscribers. Everybody wants to do what Apple is actually doing.
Fascinating. Another few bites of the Apple strategy revealed.

Have you had a look at 280 Slides yet, Rod? http://280slides.com/
It’s an amazing effort, the app itself is beautifully constructed, but it’s even more impressive because of the backend architecture, which sounds a lot like Sprout from what I have read in your summary.
They’ve basically ported the Cocoa library to JavaScript; the result is called Objective-J — hinting at it’s close relationship to Objective-C (the scary and bracket heavy C language of Macs :)
The biggest obstacle to this approach at the moment is the JavaScript VM inside our browsers, but lots of work is currently going on and massive improvements in execution speed are now visible on the horizon.
Aha, that would be why they are making a big deal of the Java VM work in Safari 4
http://webkit.org/blog/189/announcing-squirrelfish/
Sproutcore looks pretty interesting - it would be great if something like that could be leveraged to write iPhone apps in a scripting language rather than having to resort to Objective C.
On the Flash front though, it’s interesting to note that Adobe is opening up the swf (flash) and flv (flash video) formats and removing licensing restrictions, primarily to encourage adoption of the Flash player on mobile and embedded devices. See http://www.adobe.com/openscreenproject
Furthermore, the Actionscript 3 specification is also open source and since Adobe donated the codebase to Mozilla, who then produced Tamarin (http://en.wikipedia.org/wiki/Tamarin_%28JIT%29) - which is essentially Javascript 2, which will see it’s first real implementation in Firefox 4 and will likely be widely adopted to replace Javascript. The only things that remain proprietary to Adobe are the Flash IDE (to create Flash content) and the Flash player, though all the information is freely available for anyone to implement their own authoring environments and players.
The swf content is binary but easily decodable, so there is no reason that Google can’t index the content within. Besides any Flash developer worth his salt would store core content in a database anyway, just like any CMS does.
That article irritates me for several reasons, probably because I am one of the “short-sighted developers” who has chosen to “blindly shackle themselves to Flash or Silverlight simply because those tools might help them accomplish their immediate objectives without too much effort.”
Er, news flash: my client is paying for me to accomplish their objectives without too much effort (well, no more than we’ve budgeted for). So yes, I’ve chosen Adobe Flex, because it meets my client’s needs (and supports real, bidirectional network sockets - try that with your Ajax library). But it’s much easier to port your RIA from Flex to Ajax/SproutCore (where do they get these names?) than some legacy C++ Windows app to Linux/X. Of course this is partly because your RIA doesn’t do as much as a C++ app can, but still.
It’s an exciting time to be a (self-employed) software developer, and the landscape is evolving fairly rapidly (as indeed are the SD “laws of nature”, it seems). But it’s unwise IMHO to get too excited on the basis of any single new framework/language/whatever, even if it is from Apple. (And I own Apple shares, so I’m definitely not knocking Apple.) And certainly not just from reading the one post.
But of course one has to keep track of these new developments somehow. Thanks for the pointer.
“making web apps behave more like desktop apps and less like the constantly reloading HTML pages that users dislike”
Dunno. I dislike desktop apps because they don’t behave like HTML pages :)
@Adam: “Objective-C (the scary and bracket heavy C language of Macs…” Well, not scary if, as a C/C++ programmer, you take the time to find out that it isn’t. ObjectiveC 2.0 further reduces the amount of code needed. :)
@Scott: “The only things that remain proprietary to Adobe are the Flash IDE (to create Flash content) and the Flash player…” Is that all? (i.e. that’s the problem ;)
@John: “That article irritates me for several reasons, probably because I am one of the “short-sighted developers” who has chosen to “blindly shackle themselves to Flash or Silverlight simply because those tools might help them accomplish their immediate objectives without too much effort.” ” Sorry to hear that, John. Every Lotus has its Symphony.
@Peter: “Dunno. I dislike desktop apps because they don’t behave like HTML pages :)” Now, that’s the spirit!!
{@Rod- pssst: it’s Copland, not Copeland. I remember too, I lived through it as well. :) }
“Sorry to hear that, John. Every Lotus has its Symphony.” Er, what does that mean? And yes, I remember Symphony; I remember the two-page ads they ran in Byte magazine when it came out. This “grizzled veteran” pose gets dull very quickly, and I think it gets in the way of the analysis (not that you’re offering any). If you’re comparing Flex and/or AIR to Symphony (since Flash must be 1-2-3), I’d be interested to know why.
“Is that all? (i.e. that’s the problem ;)” Now you’re just being facetious. Scott’s point is that it specifically isn’t a problem when all the formats and protocols are opened up.
Anyway, I need more coffee. Sorry for the ad hominems.
@Rod What estimates are there for .mac take-up? My guess is that it is pretty low…
@John Pallister - long time no see! I had to look up ‘ad hominem’ for a full definition. 5 years of school Latin seems to need some refreshing for me
John,
Not an ad hominem. History. I’m a buff for computer history. My statement was in relation to the future.
Lotus was a “short-sighted developer” that “blindly shackled themselves” to the 640K memory limits of 286 Intel pc’s when they were developing 1-2-3 3.0 and Symphony. In the span of two years, they had crammed 1-2-3 and Symphony into that limitation, without taking into consideration that in the meantime Intel would address the problem with the 386. End result? Something no-one wanted because the pace of technology changes rendered the product stale, and Lotus was doomed to a life of never catching up in the office productivity war.
Flash and Silverlight may have their place in the world today, but they represent modern-day 1-2-3 and Symphony to me. There are a lot of web developers (including me) that hate Flash (and Silverlight) for good reason. I’d prefer to develop with open source standardized tools and frameworks that no-one owns, making the web more open to all browsers. If Apple embraces an open framework that actualizes the inherent capabilities of Javascript, CSS, and HTML 5 without resorting to the server-response AJAX paradigm, I’ll gladly welcome, investigate, and likely adopt that initiative if it makes things easier. Since it’s open, anyone is free to port the development framework to the platform of their choice. Right now, developing on Mac OS X has it all over anything else, but I’m not expecting that to last forever. Just like Flash and Silverlight. :)
Doug, that analogy is kind of backwards don’t you think? The technologies behind Ajax are 10 years old and somewhat flawed, while Flash continues to evolve with the current state of technology. The closed-source argument no longer has any teeth since the specifications are freely available. You can, right now, create Flash and Flex applications using free and open-source tools without paying a cent to Adobe. And I would bet money that the next couple of years will see some great free and open source tools for creating graphical Flash content.
I’m playing devil’s advocate here - I love Flash, but I’m not a blind evangelist that would recommend it under inappropriate circumstances, but when comparing Flash with Ajax technologies, Flash is light years ahead. Flash files are smaller, faster to run, faster to develop with, allows for far richer interactions, can display and manipulate audio and video, binary socket streaming, and has better security. And the killer feature: it is guaranteed to look and behave exactly the same on any browser under any operating system. You can’t say that for Ajax, more’s the pity.
So I just got my very first mac. My first “PC” was an Atari 800 when I was in 8th grade, back in 1983. This is my first experience with the mac. The .MAC account you mention above was actually a bit off-putting for me. I thought with all the free services out there, it seemed … wrong … to charge me for a service with limited storage at that. We’ll see how this whole Mac thing goes (just got it last week) but that was one area I was a little disappointed. I understand why they do it, mind you… just disappointed.
@Miki - Hey man! Like the blog (http://szikszai.blogspot.com/), you’re putting up some great ideas there!
@Doug - I suspect this conversation isn’t going to go anywhere, but…
It’s great you’re interested in computer history, but the 640K memory barrier has nothing to do with Flash and Silverlight. (Read Cringely’s Accidental Empires - you can’t mention Lotus and not mention Microsoft. Then you might get closer to a relevant analogy. But you might as well quote Sun Tzu; they’re both ancient history.)
Of course as a web developer you prefer OSS and web standards. So do I. But as I said originally, I chose Flash & Flex because it meets my customer’s needs better than Ajax can. Will this always necessarily be the case? Of course not.
I’m sure there are a lot of web developers who hate Flash. I doubt many (any?) of them actually have good reason to. None of the professionals, anyway. They don’t throw around words like “hate” for something as trivial as a piece of software. Doing so would blind them to the reality of the situation.
This is getting interesting as Apple pushes thru into Software + Services. It shows the power of having the desktop and the browser.
http://www.appleinsider.com/articles/08/06/21/first_shots_of_mac_os_x_snow_leopard_show_desktop_web_apps.html