Editor's Note: Shankar Bharadwaj is an Information Technology professional with more
than 16 years of experience in the industry with experience in diverse platforms. He works for Microsoft in Seattle. He will be writing a two part series on User Interface and Cloud Computing. We, at Cloud Avenue, may or may not share his views but we always encourage alternate viewpoints in our quest to explore the cloud computing terrain.
I was just reading
Cloud Envy by
Eran Kampf, in which he quoted Larry Ellison's comment on Cloud
Computing. I have to say that I agree with Larry Ellison, that cloud
computing has now become the fashion, the uber-term to describe any new
technology that is remotely connected with the Internet.
The phrase "Cloud Computing" was originally meant to describe the
concept of making available huge computing power at affordable prices,
to the general public, on the Internet. One manifestation of that
is the Amazon's
Elastic Compute Cloud (EC2).
But as Larry Ellison mentions in his rant, the phrase has slowly
evolved to encompass any type of application hosted on the Internet.
Following are a couple of application categories that come under cloud
computing today:
-
Line Of Business (LOB) applications:- Example is SalesForce.com
-
Software as a Service (SaaS) providers (previously called as Application Service Providers):- Google Docs, OfficeLive.com and hundreds of providers selling e-mail and web hosting to businesses.
In this particular post, I'm going to put forward my thoughts
on why graphical user interface is going to play an important part in
the success of the above two categories. Finally I'm going to delve in
to some details of the upcoming HTML 5 specification.
Though the pundits have been proclaiming the death of desktop (including our own
Why Desktop Software is a Failed Model) for
quite a few years now, the desktop has continued to survive and doesn't
show any sign of weakness, if not gaining strength. People did not
abandon desktop as expected. It will be naive to expect people to give
up the rich user interface afforded by the desktop (be it Linux or
Windows) for the browser.
If we trace the history of Internet, we find that the first
communications were done using text-mode terminals. I still remember
sending e-mails using my VT-100 terminal (was it Ctrl+M to send?) back
in the early nineties.
The
first attempt at rich user interface in the web was Java Applets, which
was part of the Java language that first came out in 1995 (Cascading
Style Sheets 1.0 was also created around that time). After looking at
the Java's promise of write once/run anywhere and the applets, the
anti-Microsoft crowd became euphoric. Larry Ellison and Scott McNealy
(who was then the CEO of Sun Microsystems) came up with the concept of
Network Computer (NC) and proclaimed that desktop is dead. But the
Java's graphics APIs (Swing) was not compelling enough for the users to
make the switch. And also since Java was compiled only to intermediate
code (called byte code), Java applets had performance issues. The
result was that people preferred Windows applications over the "run
anywhere" Java applets. Java never took hold in the desktop space.
Microsoft
tried its best to make web applications look spiffier. They introduced
ActiveX controls, which are actually native Windows programs running
inside a browser. It was a moderate success, though the majority of the
web continued to have text-like user interface.
Next came the technologies of AJAX and Flash, which have been dominating the web for the past seven to eight years.
AJAX is
the acronym for Asynchronous Javascript And XML. To explain this in
simple terms, the JavaScript program in a web page makes an
XmlHttpRequest call to the web server to get the data (in XML format),
converts that to HTML format and displays it on the browser.
Incidentally, Microsoft played an important role in AJAX. They created
the
XmlHttpRequest object, which is the back-bone of AJAX, for use in their Outlook Web Access. All of
Google Apps are based on AJAX and so are many of the other sites.
Flash,
on the other hand, a product of Adobe Systems, became the technology of
choice to integrate video content in to the web pages. Many of the
sites, including the famed
YouTube,
use Flash to display video. Flash has gained mind share only as a
technology to display video, which is limiting its adoption for other
applications.
Around the same time when these two technologies were gaining ground, two other technologies came out. First one was
Java Web Start from
Sun Microsystems. Unlike the applets, web start applications are
full-blown Java applications deployed on the web server. When the user
visits the web page, the application is downloaded to the user's
computer and executed locally. Microsoft responded to this with its own
.NET technology, called
ClickOnce which
was released along with .NET 2.0. The only difference between the two
technologies is that the former required a Java Virtual Machine (JVM)
to be installed on the user's computer, while the latter required .NET
Common Language Runtime (.NET CLR) to be installed on the user's
computer. Both these technologies allowed the user to run fully
featured applications without the hassle of installing them on the
local machine. Since both of them required a download and since some
applications were too big for the download speed available at the time,
both of them had only moderate successes. These technologies are still
in use and gaining ground, but the jury is still out on them.
My prediction is that all the above technologies are on the way out. The future of user interface on the web lies with
SilverLight (from Microsoft) and
HTML 5 (from W3C).
The best way to get people to use cloud computing applications is
to bring the rich user interface of the desktop to the browser. I'll
delve deeper in to the elements of SilverLight and HTML 5 in the next
post and explain how they are going to change the face of UI on the web.
Disclaimer: The opinions expressed herein are my own and do not represent my employer or their views in any way.
Post Comment