I am building HTML5 applications at Sencha. It is a great platform, take a look...

 

  Ted Patrick - Developer Relations @ Sencha


   Note: This is the personal blog of Ted Patrick. The opinions and statements voiced here are my own.



Defining cross-platform

DIGG IT!     Published Monday, March 03, 2008 at 10:46 AM .

We need a solid definition of "cross-platform" as I see this term being abused with many of the new rich web/desktop runtimes. I think "cross-platform" is defined by having 4 distinct characteristics:

Across operating systems and web browsers:

- Identical APIs (classes, methods, properties, types, and return values)
- Identical API behavior
- Similar performance
- Similar installation experience


Having identical APIs is an essential ingredient to any "cross-platform" technology. Even the most minor differences in the APIs within a runtime will force a developer to program towards a specific operating system or web browser. Developers want to make something once and know it will work everywhere without issue. Supporting identical APIs across operating systems and web browsers simplifies development, testing, deployment, and support. ( It also has an amazing side effect of lowering ongoing development and support costs! )



Certain technologies are championing the "cross-platform" name but are providing expanded APIs for specific operating systems and web browsers. These technologies are really only "cross-platform" in the APIs that are available everywhere and are poisonous in their intent. These sound very good but in practice all it takes is one API call to lock an application to a specific OS or web browser. This is "embrace and extend" in a nutshell and will result in many application that only work under the right conditions.



Similar performance is also a key area. It is great that things work on different operating systems but performance needs to be similar. It is a poor user experience for an application to run 50% faster on a specific platform than another. I know for a fact that lots of engineering work goes into making sure Flash Player performs similarly across different operating systems and browsers. Actually we implemented incremental garbage collection in Flash Player because browsers differ wildly in how and when they allocate memory to a plug-in. On some browsers memory is handed out like candy while on others it is given in 256Kb chunks up to a ceiling of 10MB total. Regardless of the browser in use Flash Player tries to make sure all application behave the same both in start-up time and during use.



Please be careful with "cross-platform" and its use. It is one thing to run on several operating systems or browsers but quite another to work identically. We need to be able to develop once and run identically everywhere, not develop many for each target OS/browser.

Cheers,

Ted :)


Where to find me:

Ted on Twitter - @__ted__
Ted on Adobe Groups
Ted on LinkedIn
Ted on Facebook
Ted at Adobe

Latest

Lists

Links

Jobs

city, state, zip

Archives