Adobe Mobile Packager: are runtimes still important or are development environments and tools taking over?

[Adobe just released and new way to package Flash Lite Applications for S60 and WindowsMobile: this announcement, if linked to the announced Google native client, the Adobe Alchemy product and other industry initiatives is an indication of where the desktop and mobile development are going. Blogger Thomas Menguy tries to bring some coherence to these seemingly uncorrelated initiatives].

tower of babel

At one time application developers were targeting OSes: Windows, MacOS, Unix.

At one point the target began to move towards runtimes (or Application Environments as discussed in this earlier article): the web browser, Flash player (inside the web browser), Java VMs, .NET, and more recently Java FX, Silverlight, AIR…

In all cases each runtime is imposing its own development environment, tools, SDK and above all a development language (Java for the Java VMs, Action script for Flash/Air, Javascript for the web browser, C# for .net).

And of course the runtime has to be installed on your final target, BEFORE deploying your application or content.

But the lines between tools, languages and runtimes are now blurring, as evidenced by several industry moves:

  • Mobile Open OS are all offering solid and robust application and content management (the Mobile Application Store syndrome). A runtime sandboxing its dedicated content from the rest of the system is seen like an unnatural way and bad user experience for handling content.
  • Google has a framework (GWT: Google Web Toolkit) to develop for the web browser runtime … except that the development language is NOT javascript
    • You develop in Java
    • In Eclipse or NetBean
    • You can use a RAD
    • The Java code is compiled in Javascript and will run in a browser not a javaVM (except for development)
    • This brings a kind of unified approach for the client and the server
  • OpenLaszlois a great RIA development platform …without a specific runtime :
    • You develop in the OpenLazlo language : LZX, a specific XML + Javascript
    • You compile your code for flash or DHTML (a Java version exists but doesn’t seem to be supported anymore) so you can select your runtime!
  • .Net /Silverlight
    • You can choose you development language VB#, C# or action script
    • All are compiled to the .NET bytecode runtime
    • Microsoft is releasing its “Expression” line of tools to bring ease of development to the designer/developer
  • Adobe AIR
    • You can develop in Flash/Flex/Action Script or … in AJAX (Javascript)+HTML
    • The Air runtime is in fact an aggregation of a Web Runtime (Webkit) and a standalone Flash player
    • Your applications are deployed …nearly like any other application on the underlying platform. The ‘nearly’ is important because the AIR runtime installation is still visible, as is the application air packaging
    • Adobe is releasing Catalyst, a very nice WYSIWYG application prototype IDE targeted to designers with strong links to CS4
  • Google Native Plugin
    • Allows to develop and reuse C/C++ code … in the browser
    • use a raw GCC toolchain (and so the browser plugin has certainly to embed an OS independent dynamic loader…reminds me something we are doing for years at Open-Plug 🙂 )
  • Haxe:
    • An Action script like language you can compile to … php, C++, java and of course ActionScript
    • Unification of the client and server development
  • The adobe Alchemy project (for the techies, explained here):
    • Compile any C/C++ code to ActionScript byte code to be run in a flash player (examples of Doom, here,  and Quake running in Flash are now famous)
  • And the announcement triggering this analysis: Adobe Mobile Packager
    • Development in CS4, with CS3 device central
    • Flash Lite Application is packaged in a “standard” .CAB file for Windows Mobile or an .SIS file for S60, with everything needed to make your application run
    • Flash Lite applications are no more second class citizens, you don’t have to open the Flash runtime anymore to launch such applications
  • SonyEricsson Capuchin
    • … is at the end the way to package flash lite application in a java jar file.

All those examples are depicting underlying trends:

  • We see, more and more a decorrelation between the development environment and the targeted runtimes
  • Many development languages are popping out, and we won’t have a “one language fits all”: developers will tend to use
    • What they know , and it’s even easier now with all those tools
    • Reuse legacy code as much as possible
    • What fits best for a particular task
    • What can help with client/server development
  • Ease of development and tooling seems to be key, especially looking at Microsoft and Adobe strategies
  • The on device final Application Management is left to the underlying platform/OS and will be more and more abstracted for the developer that is targeting multiple platforms with a single application development environment.

From what I see today, I tend to think that Adobe is getting it right, little by little, especially thanks to their very strong tooling offer (CS4/FlexBuilder/Catalyst)…and we may see other initiatives from other players like Nokia or even Google to accelerate the development and deployment of services (web or not).

Interesting times for a developer!

Looking forward to your comments.

Thomas

Mapping open source into mobile: who, where and how

[Android, Symbian Foundation, Maemo, Trolltech… there’s been so much talk about open source moves in the mobile industry, but so little analysis on the big picture.  Andreas Constantinou distils market noise into market sense by mapping out three dimensions of open source in mobile: the who, the where and the how.]

Open signWithout a doubt, 2008 has been the year where open source has transitioned from a status of early adoption to one of acceptance and endorsement by the mobile industry’s who’s who as a recipe for collaborative software development.

The Android launch, the Symbian acquisition and open source roadmap, Intel’s Moblin 2.0 and OpenedHand acquisition, Nokia’s adoption of WebKit as a feature of the S40 platform, the Trolltech acquisition and incorporation of Qt on S60, Purple Labs acquisition of Openwave and Sagem assets, AOL’s Open Mobile Platform… it seems that in the space of just one year open source has transitioned all of a sudden from geekware for Linux enthusiasts to a succesful commercial alternative to closed-door standards.  Moving forward, 2009 will be the year of maturity for how open source can be used as a tool for cheaper, faster collaborative software development, which reduces barriers to entry and breeds innovation.

Yet rarely do analysts, bloggers or media cover the big picture of open source use in mobile; in other words who is using open source, where are they using it and under what terms (i.e. the license and governance terms). Here I ‘ll attempt to do just that; paint the big picture of mobile open source against three dimensions, the who, the where and the what

1. The Who’s Who
Who is who in mobile open source? The following table provides a near-complete list of who’s who, from operating systems to development tools and industry initiatives. Naturally, the table excludes the 100s of smaller open source software projects that have been used in some capacity in one phone or other.

Table: who’s who in mobile open source

Linux support packages Wind River (also one of the most prominent integrators for mobile Linux stacks), MontaVista
Operating systems for feature phones: Purple Labs; for smartphones: Azingo, Access Linux Platform, A la Mobile, OpenMoko; for MIDs: Intel Moblin, Ubuntu Mobile. Also OKL4 is virtualisation (hypervisor) software for mobile phones.
Middleware GNOME’s GTK+ and related projects (e.g. D-Bus, Gstreamer), the graphics subsystem of Nokia’s Qt and the db4o database engine.
Application environments Google’s Android, Nokia’s Maemo, Nokia’s Qt, Eclipse eRCP, Sun’s Java phone ME, Motorola’s Java MIDP3, AOL’s Open Mobile Platform and Nokia’s Web Runtime
Browsers Apple’s WebKit (on the verge of becoming a de facto standard for web-centric service delivery) and Firefox Mobile
Service deliv. platforms Funambol (consumer email sync), Volantis (content adaptation)
Development tools Eclipse Foundation (manages the Eclipse IDE, used as the basis for Nokia’s Carbide, Wind River tools and many others). Plus RhoMobile – a new set of open source developer tools for creating connected enterprise apps on smartphones.
Industry initiatives Symbian Foundation (EPL license), Open Handset Alliance (APL2 license), LiMo Foundation (open source as it builds on top of Linux), GNOME Mobile and Embedded (LGPL-licensed GTK+ and related software)

There are also a couple of initiatives which are associated with ‘openness’ but are not related to open source; Microsoft Shared Source is a complex array of 10s of different licenses involving access to source code for Microsoft software, only two of which have been approved by the Open Source Initiative, the gatekeeper of open source license compliance; and the Adobe Open Screen Project which does not employ open source licensing at all.

2. The Where
Where is open source software used in mobile phones ? The following table provides a 10,000 foot view of where open source licensed software is used within a mobile phone, from the kernel to applications. The rule of thumb is that the lower you go towards the base of the software stack, the more open source software you ‘re likely to find.

Table: where is open source used in mobile phone software

Kernel + base oper. system In a Linux-based OS, 90% of the kernel and base OS (drivers, base services) is community-sourced and unmodified, while 10% is community sourced and modified. The drivers for the modem stack are always closed source.
Middleware Where GTK+ is used (e.g. traditionally NEC and Panasonic phones), about 30% of the middleware stack is open source licensed based on the GNOME family of multimedia middleware (e.g. Gstreamer, D-Bus)
Application environments The percentage of open source software ranges from 100% in the case of Android and OpenMoko to 0% in the vast majority of feature phones where a proprietary Java ME engine is used.
Applications Applications are nearly 100% closed source, with the exception where WebKit is used as the browser.

Open source licensing is also used in server software; most notably in Funambol’s email synchronisation server and Volantis’ Mobility Server, a device identification and content adaptation framework. Network infrastructure vendors like Nokia Siemens sell Linux-based boxes and software, but that doesn’t really imply an open source product.

3. The How
How is open source used in mobile? In other words, what are the licenses and the governance models employed in open source projects?

Several major mobile open source projects use a weak copyleft license (e.g. EPL, LGPL or MPL). Generally speaking, weak copyleft licenses carry some obligations for publishing source code modifications if distributed, but clauses around derivatives are less strict so can be used with proprietary software. The APL2 (non-copyleft) license is also popular – it is used in Google’s Android, Motorola’s planned MIDP3 release and AOL’s Open Mobile Platform.  Note how the GPL license, by far the most popular license in PC and Internet OSS projects is rarely used in mobile. This is one of the reasons for the zero adoption of Sun’s Java phone ME by handset OEMs and the same reason why Qt will have to be re-licensed under a more permissive license if Nokia wants to see it adopted by other handset OEMs.

Governance models vary widely; from Funambol’s moderator-based incorporation of contributions, to a single-company control over contributions, as is the case with Apple’s popular WebKit browser core. There’s lots more parameters to a governance model – particularly control over the release schedule, membership-only access, membership fees and IP ownership, but this a lengthy topic that deserves a separate discussion.

The next table summarises the license type and governance model (how contributions are managed) for popular mobile open source projects (see also earlier article on community dynamics).

Figure: comparing community governance models and licenses for popular OSS projects Comparing licenses vs governance models

Here it’s worth shedding some light over a common misperception; an open source license does not imply a zero licensing cost.

For example many Linux-based OS vendors like Wind River, Azingo and Purple Labs are charging per-unit royalties for the software. As another example, the Symbian Foundation has vowed to release Symbian OS code under an EPL license, while members of the Foundation will have access to source code under a zero royalty license, for a flat membership fee of $1,500 per year. However the Symbian Foundation hasn’t publicised the fees members will have to pay for shipping handsets with the Symbian Foundation code; if the Foundation is to support is sub-500 staff (numbers according to Lee Williams), then the effective license fees should be in the region of millions of dollars per year per member.

Updated: OK Lab’s OKL4, a virtualisation (hypervisor) software engine is available under a dual license (commercial and a copyleft-like license similar to the one used by Sleepycat). OK Labs does not open contributions to the OKL4 engine, but instead supports a community of value-add software contributors that develop on top of the OKL4 engine.

Comments welcome as always. And thanks to LinuxDevices and the O’ Reilly Radar for covering this article.

– Andreas

[If you ‘d like to find out more about open source in mobile, check out our 360 degree workshop, a one-day deep-dive into everything and anything that is mobile open source, from economics and business models to license best practices, software management guidelines and 20+ case studies of real world lessons from open source use in the mobile industry.

You can also download our free research report on GPL2 vs GPLv3: The two seminal open source licenses,  their roots, consequences and repercussions.]

Update: We ‘ve been voted as the best blog in the Mobile Comms category by  Electronics Weekly Magazine!