Docker vs HTML5

A techie post on two hot technology trends, Docker (and virtualisation in various forms) and HTML5.
Virtualisation is the process of interposing a layer between the operating system that runs your applications and the physical hardware on which it runs. So in a non virtualised world you write Java code, the Java code runs inside the JVM, the JVM talks to the OS and the OS talks to the hardware. In a virtualised world the same example would now be you write Java code, the Java code runs inside the JVM, the JVM talks to the virtualised OS, the virtualised OS talks to the virtualisation software and then either the virtualisation software talks to another OS (Linux, Mac, Windows etc.) which then talks to the hardware OR the virtualisation software talks to a specific virtualisation OS which then talks to the hardware.
 
HTML5 is a version of HTML that includes a lot of user experience functionality that allows a rich experience that is close to that offered by a fat client C# or Java application. The benefit is of course that provided a standards compliant browser is used it should be possible for an internet deployed application to be browser and operating system agnostic. The other benefit is that there is generally no issue with opening the appropriate firewall port such as 80 or 443 to allow http traffic through.
 
So, why compare these two technologies?
 
Over the last 20 years we have seen a move from mainframe and minicomputers to client/server, three-tier-architecture and now web deployed applications.
 
We now have a world where everywhere we look to mobile-first and browser-first.
 
But why not use the power of virtualisation to allow for applications to be written in say C++, C# or Java and then deployed along with a minimal operating system within a virtualisation package. With high speed bandwidth and disk space at rock bottom prices it's now easy to envisage a paradigm where every application has it's own operating system.
 
Hence, why write code for the JavaScript engine (HTML5) when you can write fully featured fat clients and deploy them to a virtualisation platform? I use VirtualBox on Windows and Mac. Not hard to envisage some equivalent of Java WebStart to download a new image from a central server and then run it from a client. Run it on whatever OS you like that's supported by the virtualisation software.
 
Downside - virtualisation on a mobile device may be a bit heavy going. However, Moore's Law and all of the associated progress suggests that hardware will catch up and mobile devices will be able to cope within a short time.

So maybe the future is not HTML5 everywhere and old style fat clients can get a new lease of life?
 
 

Comments