Android, Tizen and the End of Java

javaisdead

Life, the Universe and EverythingI wanted to call this piece Life, the Universe and Everything.  If you’re an avid sci-fi reader, or you’ve at least read Hitch-hiker’s Guide to the Galaxy, then those words might mean something to you, but this argument is not about the book, or Douglas Adams.  Allow me to explain.

When the iPhone was announced, Apple had created another closed ecosystem that runs on just one processor architecture.  This was a critical decision from an engineering and design standpoint that allowed for two things.  It allowed for Apple to have over-arching control of its platform and 2) permits extreme performance from 3rd-party applications.  While I don’t condone closed ecosystems and platform dependence, having application code (Objective-C) built specifically for a device is a boon for mobile performance and most certainly attributes to the success of Apple’s iPhone.  That’s not to say that we are doing it wrong, however.  Java has been an obvious choice for mobile and has dominated in this space for over 10 years.  The range of hardware configurations has narrowed somewhat in that time, but it’s still varied enough that Java continues to dominate in this space.  We all need to be able to play Angry Birds, right?

Java and the Dalvik machine exists on Android because of the Market.  In my opinion, it’s perfectly reasonable for a developer to produce applications with C++ or some Objective-C variant, or whatever.  What’s to stop them from making multiple builds for different CPU’s and then uploading them all to the Android Market while having a mechanism within Market to detect your configuration and install the proper build?  Unfortunately, that’s not the reality.  Java is the real Android enabler, and for better or for worse, it works.  In this respect, Java is the Universe, and that’s life as we know it.

Tizen

Tizen is a grab-bag of other projects that have been previously side-lined.  These projects include;

MeeGo:  A dashboard like, Linux OS not completely unlike Chumby in its presentation, debuted last year in a compelling app-based configuration on the Nokia N9.  Born from Moblin (Mobile Linux), this project was parked by the already legendary deal/failure between Microsoft and Nokia to release high-end, attractive Windows Phone 7 branded hardware.

Maemo:  It is itself a grab-bag of Debian, bits and pieces of Gnome and many other open-source projects.  Before the iPad and Android’s aggressive march into the tablet market, Maemo was very appealing—though the Nokia hardware that powered it was outrageous priced and the lack of subsidized availability limited its appeal to the masses.

Currently, Tizen is an effort of the Linux Foundation, LiMo Foundation, Intel and Samsung.  The latter of which will be merging its Bada efforts into the project, further unifying it into something that free- software advocates should consider, among other projects such as Web OS.  Tizen’s target is mobile, and though the interface lacks originality and creeps dangerously into Gingerbread territory in the most generic possible way, there is one place that the project really shines.

HTML 5

I predict that HTML 5 will be the great liberator of this decade.  Robust enough to make real applications with, it’s hard for me to imagine Java’s relevance moving forward.  Angry Birds, no matter how tired some us are of this never-ending phenomenon, is a perfect example of the power and flexibility of this emerging web standard.  Currently, Rovio is forced to build a version in Xcode for the iPhone/iPad, tasked with building a Java version, maybe with Eclipse, all in addition to its existing HTML 5 efforts for Facebook, Google+ and the web at large.  Since they are still making money hand-over-fist, I’m sure they are perfectly content with maintaining all of these versions, but it is all wasted effort.

The proliferation of HTML 5 is absolutely unavoidable.  It’s already poised to put the final nail the Adobe Flash’s coffin, and to a lesser extent, Microsoft’s Silverlight.  Its versatility—as far as what can be made– is only matched by traditional programming languages whose programs are bound to the CPUs they were built for.  Tizen—Intel actually—promotes HTML 5 as its tool of choice for building applications.

Life, the Universe and Everything

That moment when you pick up your Galaxy Nexus and open up Angry Birds in a web-browser and get the exact same experience as what you downloaded from the Android Market, it will only be a matter of time.  Technologies like HTML 5 have the distinct ability to ambiguate mobile devices much in the same way HTML as a whole has ambiguated desktops and laptops.  Chrome OS is a perfect example of the needlessness of a Mac/Win/Lin machine when the real need is just to get to facebook.

As HTML 5 starts to become the foundation of everything, it’s us, the user who wins.  Those of us that comprise the %1 of desktops users using Linux now have the same choice on our mobiles.  Many of us use Android, but there will no longer be a reason to be bound to it.  We can choose to use Android, Tizen, iOS, WebOS, or whatever we want.  We will have the same level of access to productivity apps, games and entertainment, as anyone else.

HTML 5 will be the technology that completely eliminates the need for an ‘ecosystem’.  It’s an enabler of freedom.

From a technology standpoint, HTML 5 is life, the Universe and Everything.



Dean Howell

Dean Howell has over a decade of experience with Linux and nearly 2 decades of experience with computers in general. Currently, Dean is Editor-in-chief of The Powerbase and also works for one of the world's largest providers of Linux-based NVRs.

Related posts

  • Andrew Holden

    Great post Dean, thanks. – Andrew @WeeverApps

  • Anonymous

    While I think HTML5 is certainly a big part of the future of mobile (and could solve a lot of problems on the desktop as well), there are still some pretty big hurtles. The fact that HTML5 can’t do much to take take advantage of native hardware and software capabilities makes it less than ideal for the myriad of mobile devices we have now.

    So while it may well be an enabler of freedom in some respects, it also has the tendency to make everything look and work in the same un-optimized “so-so” sort of way.

    • http://profiles.google.com/deanhowell2 Dean Howell

      With regard to your concern about not being optimized, I think that technologies like WebGL will be a big part of HTML5 adoption on mobile. With the user agent string, an “app” would be able to serve content in a way that integrates well with the device being used. At least, I hope so. If Android fragmentation continues, it may be impossible…

  • Ppesci

    Well, sorry but i don’t think so. C, C++, Objective C and Java are full fledge programming languages. HTML 5 is only about a presentation layer. It has some interesting features, and simple applications can be made with it, but remember that today smart phones has the power of desktops made on 2000 or so, and the power in the future will grow for sure.

    My bet is for better tools and better/wider languages support. Compatibility is nice but HTML 5is too much underpowered to be used in sophisticated applications.

    • http://profiles.google.com/deanhowell2 Dean Howell

      The “sophisticated software” exist on a remote server and HTML 5 is simply the delivery mechanism. I certainly don’t expect HTML 5 to decode 1080p video…

      • Ppesci

        Think the phones will be more and more powerful. Using it only as presentation layer is a limited point of view.

        I think HTML 5 will have its own space; right now I use Ajax based apps (gmail comes to my mind) and some of them are nice ones, but my desktop experience is almost all related to native apps. The vision “HTML 5 rule them all” will never succeed.

        Choice is good.

    • Anonymous

      HTML5, CSS, and JavaScript are the languages. The browser or other sophisticated platform is the interpreter. So as long as you build a very well optimized platform aka a browser and JavaScript VM, you can get near native performance from the applications that are built, just like Java. And by the way, JavaScript is a full fledged programming language.

      As long as you build a platform with proper hooks for all the HTML5 features, you’ll get great performance from it, no server needed.

    • HTML5FTW

      As superlinkx said, Javascript is a full fledged programming language that can be used both on the server side (node.js) and client side. A game like angry birds can already be made using an HTML5 engine like Impact (www.impactjs.com) and can already run well on mobile devices. See Biolab Disaster as an example: http://playbiolab.com/

    • Joseph O’Neill

      HTML5, alone, is just HTML. However, it offers more than previous versions. Remember, much of the GUI development is done with XML and the like. If HTML5 is seen as a similar thing, it is not much different from developing with Java on a mobile platform.

      Look at the Kindle Cloud Reader. It is HTML5, yet, works just like the app. I use it on my desktop, but I hear it works great on the iProducts in Safari.

      And most applications are not “sophisticated”.

  • Pingback: Linux News » Android, Tizen and the End of Java

  • stolennomenclature

    Javascript is a much nicer language than Java to program in, owing to its higher level nature. Undoubtably Java has performance advantages, although if all you want is performance then I guess C++ would be better still. One of the most ironic features of Java under Android is the more or less unnecessary virtual machine, since almost all mobile devices use Arm.

    • Sid

      Interesting point about ARM. Given that Android is coming to x86 that might not be so true in future

    • Anonymous

      Why is a virtual machine not required under ARM?

    • Hex

      That’s completely subjective, try refactoring a big Javascript app and you’ll reconsider how “nicer” javascript really is. Also, you can program Javascript with java and get all the advantages of both (GWT)

  • http://twitter.com/hbogert Hans van den Bogert

    I think LLVM will be a big liberator in the end. To think one standard, like HTML5 will dominate the other is wishful thinking. LLVM will be the rosetta stone we need.

  • Pingback: Links 4/2/2012: Ubuntu 12.04 Alpha 2 Preview, ACTA Backlash in Europe | Techrights

  • http://pulse.yahoo.com/_H4OC3ORTNP54HLAZ7VIEP3PJHM Gary

    One area that has to be factored in is the balance of trust between web service providers and users. Web-enabled technology such as HTML5 may provide adequate functionality when compared with native applications, but it also requires that users be comfortable with opening up their devices and data to access by outside parties to a far greater extent than they realize. At what point should users be concerned with trading off privacy and personal security in return for improved web application performance?

    Web-based applications can potentially open up a number of new avenues where security can be attacked and compromised when compared to native applications. Besides simply worrying about securing their own personal systems, users of web applications may also have to be worried about the reliability and security of many outside parties – including the supplier of their browser of choice, their ISPs, and each of the different application service providers they might visit. People may also grow worried over the degree to which all of their activities over the web can be tracked and cataloged by almost anyone and everyone, for any purpose. These are all issues that have to be added into the discussion about whether web apps are a legitimate replacement for most native apps, or are better seen as simply a complementary part of a balanced mix of applications that users can choose from to suit their individual needs.

  • James Cupoftea

    Interesting. Is not HTLM5 dependent on a web browser while Java, C++ etc are not? As good as HTML5 is, the browser is the week link. (as is the cloud, but thats another story!!)

  • Pingback: The Power Base Chrome For Android Beta Released, Torments Gingerbread Users

  • Guest

    HTML 5 is just a lazy half-assed standard made by clueless people. xhtml 2 is a lot better. sadly, as always, the worse format wins. VHS vs Beta, MiniDisc vs CD, SACD vs DVD-Audio, DVD-RAM vs DVD+/-R, HS-DVD vs BluRay, etc, etc

    • JohnnySmith0

      How is HD DVD better than Blu Ray.

    • http://profiles.google.com/deanhowell2 Dean Howell

      Yeah, how is HD-DVD better the Blu-Ray? They use the same container and compression yet Blu is far more dense as far as optical media is concerned.

  • http://twitter.com/sycoso_tela sycoso

    It would be very easy for new platforms such as boot2gecko, yeah

    But I don’t see how they would implement things such as the unreal engine because that just needs very performant code…

  • v_3

    My buying choice will be affected by (1) functionality – does it do the stuff I need: make calls, act as a PDA and do tethering, etc (2) seamless integration with my cloud and laptop programs such as Evernote and with my contacts, email, calendar, etc, which both Apple (Mac + iPhone) and Android – with Google mail/calendar do excellently. Regarding other phone-laptop connectivity I find Android better – I had an iPhone previously and use OSx, W7 & Ubuntu in different contexts. (3) Ease of use and battery life.

    The cost factor must take into account the cables & chargers

    Frankly, whether an ecosystem has 4 billion or 5 billion apps which I will never use does not interest me.

  • http://gouessej.wordpress.com/ Julien Gouesse

    “The end of Java”? Is it a joke? HTML 5 is a presentation layer and Javascript cannot be as fast as Java as it uses dynamic types and its JIT compiler is not as optimized as Java Hotspot JIT compiler. It has been possible to make 3D applications in Java for more than ten years and faster than with WebGL even on mobiles, JOGL 2.0 works fine on Android and any Linux embedded distro. It’s possible to use Java on IPhone with JamVM + MidPath, XMLVM, Avian… Sorry to contradict you, forget fashion, Java is still “life, the universe and everything”, it’s crossplatform and fast.

  • http://www.facebook.com/enigma101 Stephen Franks

    Java is good for cross-platform desktop applications, it is fast and has a lot to offer as a language and in development tools. It is still a unique alternative to Flash, Javascript, and NaCl by being fast and more cross-platform than other options.

  • Anup Verma

    Consider “HTML5″ in the article to be => HTML5 + CSS + Javascript

  • pippo

    From a programmer’s perspective the idea of using javascript to create a complex software is just nightmarish.

    Strongly typed programming languages are there for a reason, not to say that many modern applications are multithreaded and, as far as I know, javascript has no native concurrency support.
    So, end of Java? No way, long live Java!

    • Hex

      Concurrency is just one of the advantages of Java. Maintaining a big multi-developer application in pure Javascript is unthinkable (no refactoring, no real unit testing, no continuous integration), so that will necessarily restrict the size and complexity of apps. Unless you use something like GWT to compensate.

Top