Sunday, May 2, 2010

Will HTML5, WebGL and Cloud Computing Kill Desktop Based Software Development?

If you are not an IT savvy, you might not know what these three cutting-edge technologies are. I know we hate reading facts and theories with full of jargons and binary digits. So just sit back and watch the following video before we proceed to the main discussion.



Fascinating isn't it? Imagine you can now fire up your favorite web browser and run the FPS game right in it without any plugin like Flash, Java or Silverlight. This is the power of HTML5, WebGL, cloud computing, etc. I am not going to explain what each of the technologies is since you can easily google them up. What I want to discuss is will these bleeding edge technologies kill desktop software development in the future? When I say desktop based software I am referring to your MS Word, Photoshop, Media Player, Warcraft, Left 4 Dead and even Windows.  

With the rapid growth of world wide web, more and more applications are moving to the server side and the users simply can access them from a web browser. I mean as a developer why bother to create desktop applications which can be easily pirated when you can earn hundreds of thousands of dollars from the monthly subscriptions to your web applications which can hardly be cracked? Plus, the users would prefer to use an application without having to install the enormous size of files on the computer. I believe most of you have your web browser running when you log onto your computer and Facebook applications seem more appealing than the old-school mini desktop games to you guys.

Google is smart. In fact, Google has been promoting the concept. They claimed that operating systems are old and obsolete and they believe that powerful server side with thin or weak client mode of applications is the way to go in the future. While Microsoft has the widely-used Office, Google has the web based version of it, called Google Docs. While Microsoft Windows is so prevailing, Google has introduced its own operating system, Google Chromium OS (or Chrome OS) which is meant for browsing web applications. How can Microsoft ever slack while its opponent is trying to shift the market away to another platform?  

Having said that, I believe it takes some time to make the changes. After all, the network coverage and bandwidth is still an issue, especially in many developing countries like Malaysia.

What do you guys think? Write down your opinion and we shall discuss. */

2 comments:

  1. This is almost definately the future. The only problem will be to find a good way of marketing the software we make. If this opens up, it would finally be global competition literally. Someone from ulan bator in a small hut can challenge a software house. So, start thinking how best to market using this sweet piece of techonlogy :D
    ReplyDelete
  2. I don't think anything is going to kill development of desktop applications. What you are discussing is the death of traditional distribution of those applications but not the apps themselves.

    Once that happens, the only deciding factors for whether or not an application is considered a "desktop" app is the machine being used to run the app (chosen by the user) and the needs of the application itself, such as input devices (mouse & keyboard), memory requirements, etc.

    Since my computer can't process bits stored on another computer (a cloud server), those bits must be downloaded to my machine before use. This means that any application that has to process a lot of content (such as a game) must still store that content locally. The difference between downloading game content versus installing game content is nominal.

    The Doom demo shown above is a good example for showing off WebGL because the content for that game is tiny by today's standards and can be downloaded in moments. The very cool Fractal Lab application (http://fractal.io/) avoids this by having procedurally generated content. But modern games such as Crysis 2 will get no such benefit and players would still need to download gigabytes worth of art before they could play.

    WebGL won't solve the piracy problem because the majority of applications should still be able to run in a closed environment (not connected to the internet). Would anyone buy Angry Birds if you couldn't play while in airplane mode?

    Getting back to the development side of the argument, as a software programmer myself, I see one glaring flaw in WebGL and that is Javascript. Javascript is rather unstructured and is unsuited for non-trivial applications. Other initiatives such as Google's push to allow native code to run from a browser (see
    http://www.theregister.co.uk/2011/02/18/google_releases_first_native_client_sdk/) means that I will still be able to write my applications in C/C++ using OpenGL.

    And once I've done that, I can distribute on disc, download, website, app store, whatever. If the application happens to require 10 gigs of ram and a beefy video card, then it isn't going to be run on a tablet, regardless of whether or not the app is hosted in a web page.
    ReplyDelete