Classic software development and the mobile industry

25Feb08

Hot topic these days: Mobile applications, RIPOffline web applications. Of course the Web2.0 guys (let me put it this way) have an agenda, but the developers tied to native environments have it as well. What to believe? There are many moving targets these days.

In the last years we have seen the omnipresent web eating space to the native desktop, from webmail and remote Flash games to the Google suite and the desktop inside browser experiments. This fight is getting tougher in the mobile context, where many factors seem to oppose resistance to classic software development: platform fragmentation, unstable API, demanding UI, restrictive write access, security buzz… We are even hearing about learning curves when it comes to compare C, C++ or Java to the languages brought by the WWW assisted by envisioned web APIs that will do the rest for you (apparently).

Native development had a safe past in mobile devices thanks to its optimized use of resources and its 99,9% professional/commercial motivation, but things are changing. The devices are getting more powerful allowing a thicker layer of abstraction without affecting dramatically the performance. Light application development is favoured by Flash, widgets and the web family of languages running offline. Microsoft’s Silverlight, Adobe’s Air, S60’s Web Run-Time… they are already here. Even something like Facebook development is getting increasing attention/fuzz. Thankfully the W3C is also approaching the field.

How Linux and open source developers are taking all this?

PS: I’m personally curious about Python and Ruby in this context, having both offline/runtime and online/net success stories.

PS2: True, I didn’t mention Android or the iPhone SDK.



6 Responses to “Classic software development and the mobile industry”

  1. The idea that web applications are inherently different from native application is just a paradigm. As languages and techniques evolve we see the two fields merging.

    We see for example AJAX, where part of the processing is done on the client side, so the server acts more as a database. This turns the web browser in nothing more than a very fancy virtual machine. There’s even Google Gears, so the server connection is not needed for execution anymore.

    On the desktop side there’s for example Adium which uses WebKit for it’s UI, taking advantage of the browser “VM”. Both Adium (desktop) and Meebo (web) use the same engine, the only difference is the UI.

    You can listen to last.fm from the browser, or with a native application, the same with YouTube, or Twitter.

    Web just means that you are using a web browser, which is a native application. If you split the parts of the web browser that you need for that particular application you have a native application that uses that web service.

    As the browser wars continue they will become more modular, and as the Web2.0 buzz continues sites will kill each other and people will soon realize that the content should be separate from the UI (hint dataportability).

  2. I’m not a programmer, but weren’t early programming applications written to run on a central server operated by a terminal?

    It seems like web apps aren’t anything new, but a return to the old days of centralised computing.

  3. I have purchased both a Nokia 770 and the 800 and with buy the 810 before June 2008 but not because I can watch movies or browse the web or whatever.
    It is Python in your Pocket. It is a easy language to learn and I have done all kinds of neat things with it like drawing, resizing images, calculating, producing pdfs, storing data, finding where planets and stars are at, and list goes on. They are one Mean, Green, Programing set of machines with Python. I just can not do all that with out spending a lot of time with any web tool kit.

  4. 4 tonikitoo

    you forgot mentioning about mozilla’s xulrunner (firefox 3 ecosystem)

  5. Saying the two (web-based and native) platforms are going to merge assumes an “Always On” nature to Internet connectivity that just doesn’t exist in many, many places.

    At the moment, I’m in Rwanda (see my weblog for more details) and I’m discovering that, when it comes to the web, I’ve become a page-load-speed dork. An open-source, desktop-replacement app (Zimbra) started me on this path, but then I started looking around at different sites. Amazon.com took 40 seconds to load here!

    Before web and native apps merge, developers really need to think about these sorts of things.

    FWIW, in Rwanda we’re looking at putting apps on mobile devices. In most of the villages, there is no connectivity — A “merged” application would be useless.

  6. 6 qgil

    Mark, note that I didn’t talk about “web-based” applications but about applications using web runtime (online or offline). Note also that I started the blog post offering a link about “Offline web applications”.

    krisse seems to habe fallen in a similar semantic mistake when refering to “applications written to run on a central server”. The web-runtime we are talking about acts locally just like a Python runtime, but using “web language” (HTML, CSS, Ajax and so on).

    I agree the terminology leads to the mistake, but “web” is now not equivalent to “online”.



%d bloggers like this: