satine.org

by Charles Ying

How to Build The Next Ultimate Application Platform

May 29th, 2007

A long post. Enjoy. :-)

Today, my friend Rand Wacker revived a great post about browsers as the ultimate application platform. At a high level, I agree with him, but the reason why we’re not seeing more “multi-platform” applications is that right now, for many companies, the web browser application platform presents the best choice.

Desktop and mobile applications are very expensive to develop and are extremely difficult to build at an Internet pace on today’s platforms. Mobile frameworks like WebKit and desktop frameworks like Apollo and WPF are trying to correct this, but it’s not an easy problem to solve, and hasn’t been solved right yet.

In my career, I’ve had the pleasure to work on mobile apps, mobile browsers, mobile web apps, desktop web apps, desktop Windows + OS X apps, Flash widgets, RIA frameworks and RIAs at FilmLoop and Openwave. So based on those experiences, I present you with:

The 3 Key Ingredients of the Next Ultimate App Platform.

  1. Insane visual / graphics / text layout performance. It’ll off-load the heavy lifting to the GPU, do all the game programming tricks out there, and likely talks directly to DirectX and/or OpenGL.
  2. Spectacular type-setting and type layout. Macintosh, PostScript, TeX, PDF, HTML. Each of these successful projects either did text right, or text fast.
  3. Easy animation. I’ll speak more about this in a future topic, but to pass the bar Apple has set for application user experience, you must have animation and it must be easy. Most folks realize the need for animated UI now, but very few toolkits have made it easy. Apple’s Core Animation is one such toolkit, and you can see what it’s done for OS X Leopard and iPhone. At my company, PixVerse, we may open source our own implicit web animation toolkit once we get some free time.
  4. The basics (Okay, so there are really four … ) The obvious things that so many have hyped and written about already… fast dynamic scripting language; database and searching engines; persistent storage for offline use; encryption; desktop notifications; networking; sync, etc.

Now for a disclaimer. This isn’t the whole picture. It’s just one piece — the visual user experience. It seems to be the one that the hyped up platforms seems to be addressing first… whizzy graphics and video. Important things are being ignored: machine learning; data mining; decent search facilities; robust multi-directional sync (have you read about RSS-SSE and Unison?)

Written using TextMate. ;-)

Technorati Tags: , , , , , , ,

FaceBook Platform In A Nutshell

May 24th, 2007

FaceBook released their new OS Platform this afternoon. It’s a big deal, but it’s hard to get a grasp on what the new changes are for developers.

Briefly, the FaceBook Platform extends the existing FaceBook API with:

  • A few new APIs, for setting FBML on a user’s profile.
  • A new FaceBook markup language, FBML, a subset of HTML with some FaceBook extensions. JavaScript and AJAX is not allowed per se (except via a Mock AJAX proxy), but Flash and SilverLight are.
  • An application directory for new FaceBook applications.

I’ll post later why you might think of this as “Windows 1.0 with deep social network integration”, and all the dangers and excitement that goes with it, but for now… you can read all the fun details and try out some FBML here: (until the main Developers page is updated).

FaceBook Platform Developers

More coverage: Facebook Launches Facebook Platform; They are the Anti-MySpace

Technorati Tags: , , , , ,

The iPhone Aloha Architecture Overview is ….

April 2nd, 2007

… a complete fabrication. April Fools!

Didn’t see it? See here: Digg.

Little easter eggs were mixed in that people found, namely:

  • LayerKit instead of Core Animation
  • LLVM as the static compiler and part of the runtime
  • Apple Computer, Inc. instead of Apple, Inc.
  • Bertrand Serlet as the PDF author
  • OS X 10.4.8 internal developer seed
  • Onyx as a successor to Quartz
  • % date -r 1143931338
  • Pixo is the original iPod OS
  • llvm-gcc instead of gcc-llvm

WTF? Why? How?

  • I like subtle April Fools jokes, and hadn’t seen any truly convincing ones so far. I had to be careful not to get carried away and slip on something (like llvm-gcc).
  • A lot of the components (Core Services, BootCache, etc.) come from the Apple TV dissections posted around the net. I grabbed the file dump from a homebrew site and cherry picked some frameworks that seemed likely.
  • LLVM comes from my prior posts on the LLVM ARM backend contributions from Apple.
  • Onyx was picked because it matches the Quartz theme, and it’s black, matching recently designed Apple UI, including iPhone.
  • And finally the major features (and the fact that it’s OS X) are derived from the Macworld keynote.

Thanks for the great comments, I hope you had a good laugh and it wasn’t too annoying. ;-)

Technorati Tags: , ,