…Palm’s approach is
radically different from both Android’s and Apple’s. Since they’re all here
at more or less the same time, running the
same Web browser on roughly
equivalent hardware, this represents an unprecedented experiment in
competitive software-engineering approaches.
Language Framework Notes Apple Objective-C Cocoa Old-school object-oriented language compiled to the metal; general-purpose UI
framework with roots reaching back to NeXT.Android Java Android Java language, custom VM, built-from-scratch UI
framework aimed at small-form-factor devices, fairly abstraction-free, based
on “Actions” and “Intents”.web OS JavaScript “Mojo” All Web technology all the time. Innovative and visually-impressive
“card”-based UI.(I think it’s interesting to see Windows Mobile on the list:
Windows Mobile C/C++ Windows CE/.NET Micro Philosophically tries to bring Windows to the phone. When I did WinCE development it felt like doing C++ for a Windows OS from the past. )
I see way too many other factors to attribute success/failure of the devices to the language. So I wouldn’t call this an experiment.
But it is interesting how much development for each platform diverges at a fundamental level!
Historically most operating systems —
UNIX, OS/2, Linux, Windows, Solaris, Mac (Classic and OS X) — were predominantly, written in C/C++. While each platform has it’s own frameworks, they all have strong support for C++ development. (Although Mac OS X has is slowly dropping support for it’s C/C++ “Carbon” API, and Windows wants to be moving to C# .NET)
It’s really cool to see mobile platforms doing something radically different from each other. There are good arguments for each approach — may the best one win.