Visions in Online
Crystal Ball: Is Silverlight 2.0 “THE NEXT BIG THING”?
by Eugene Akinshin, Ph.D., Chief Technical Evangelist for Perpetuum Software
LLC
The Holy War has begun. Forums and blogs are full of flames on «Ajax vs Flash vs Silverlight vs JavaFX».
Currently it is obvious that in the near future SaaS (Software-as-a-Service)
application distribution model will capture considerable part of both corporate
market and home users sphere. It is estimated that about 25% of corporate
applications will be distributed as SaaS by 2011. I won’t go into detail of
advantages of this distribution model, as there are many publications on this
topic. It is enough to say that SaaS applications don’t require installation on
client computers. As a result only provider should take care of application
setup, management and maintenance; this helps dramatically scrimp on software
licensing and save considerable sum on hardware and IT personnel.
RIA (Rich Internet
Application) is tightly connected to SaaS. Unlike traditional Web
applications, RIAs obtain functionality that can be compared with features of
complete desktop applications, but they have all advantages of Internet
applications. Ease of deployment and maintenance are the most important ones.
There are no doubts in
promising future of RIA, but it is not clear what software platforms will make
it come true. Main challengers are Adobe Flash,
Microsoft Silverlight and Sun JavaFX.
Before I start trying to
persuade you that Silverlight
is a favourite in this race and someone throws rotten eggs or tomatoes at me,
let me make some remarks.
1.
I place a considerable stake. I risk with my money when I talk of the
best RIA platform. All free resources and energies of my small company are
directed to design new product line for Silverlight. If I am
mistaken, this mistake won’t be fatal, but it will strongly hurt my financial
situation.
2.
Microsoft doesn’t pay me for advertisement. I don’t feel religious
commitment to its products, I am not a Microsoft fan, especially after I
upgraded to Windows Vista. I don’t like a lot of things about Microsoft and its
products. If anyone asked me, I would prefer Silverlight to be
developed by some small and yang company. But no one asked me.
Then why Silverlight?
It’s simple: Silverlight appeared at the right place and time, with the required functionality
and outmarkets competitors. So, let consider all of these items.
…at the right time…
Statements on forthcoming
triumphant progress of Internet applications are made with enviable regularity
for long time, but only at the moment evolution of the corresponding
infrastructure achieved “critical mass” that allows realization of their
potential. The most important thing is availability of broadband channels all
over the world and dramatic increase of computing power of client systems
starting from desktop computers and ending with smartphones and communicators.
The last factor makes it possible to run client even on mobile devices.
Moreover, it should be noted
that SaaS model is more and more trusted. Improved audit of SaaS providers that
guarantees confidentiality of the information entered into the system and high
reliability of its work contributes to growing trust to SaaS model. Hardware
equipment of the companies became more diverse; this relates to both used
processor architecture and operating systems. As a result, cross platform
support is the obligatory requirement for corporate applications. This limits
area of desktop applications and opens up floodgates of RIA. Besides that, the
amount of mobile employees whose critical requirement is availability of access
to corporate system form any place in the world has increased.
Development of the platform
from scratch right before RIA boom helps Microsoft be more relevant to market
demand in comparison with competing products that bring inherited limitations
collected for 10 years of evolution.
…at the right place…
Even the best platform won’t
cost a cent without appropriate promotion.
It is proved that Microsoft
firmly controls desktop operating system market. And this will help to overcome
the main barrier – distribution of a browser plug-in executing applications.
Most Windows users even won’t notice that they happily obtain the latest
Silverlight edition, as plug-in will install during auto update or when the
application runs for the first time. Microsoft’s ability to communicate with
content providers also plays its role. Even today many players on media market
announce their willingness to use Silverlight as base for
the Internet projects. The most famous project is the official site of The
Olympic Games that uses media features of Silverlight.
But the most important role
is played by the huge community of .Net developers who know all development
tools that are used to design Silverlight applications.
…with the required functionality…
Silverlight is based on a
special edition of .Net Framework. .Net Framework subset that is a part of a
platform makes it possible to write high-performance code using the most
up-to-date programming languages (such as C# and VB.NET) and the most powerful
library of built-in classes. You even won’t sacrifice security, as system won’t
let you go beyond the “sandbox”.
The other important
constituent of the platform is compatibility with the WPF technology. You will
be able to use unique GUI system to design visual part of Internet applications.
I should write a set of articles to describe all advantages of this technology.
I will specify only the most important ones from my point of view. First of all,
this is a unified object model for representing all types of graphic elements:
bitmap or vector images, text, controls, video, supporting automatic layout on
the form, arbitrary nesting of elements in each other and geometric
transformation. Secondly, full-featured mechanism of separation of logic and
visual representation via the data binding system, styles and templates allows
developers and designers work independently over one and the same project.
And “small
points”:
-
full access to HTML DOM from
Silverlight application and vice versa full access to Silverlight application
objects from JavaScript code;
-
ability to use dynamic script
languages such as Python, Ruby and others;
-
Deep Zoom technology also
known as Sea Dragon making development of applications such as Google Earth a
trivial task;
-
ability to use LINQ (Language
Integrated Query) to uniformly access all data source types including XML.
I just need to mention wide
media and presentation features: built-in system of KeyFrames animation, set of
graphic primitives, various fill types with semitransparency, playback of video
and audio content including that of high resolution (to be honest, I not
interested in the last item as a
developer of business applications).
And finally, compatibility
with the full version of .Net Framework helps you use all advantages of one of
the most powerful IDEs at the moment – Visual Studio.Net to design and debug
applications.
… outmarkets competitors.
(Please, understand me correctly. By saying this, I mean competitors in
the sphere of RIA creation. Silverlight™ won’t replace
HTML to create websites, Flash™
to design animated graphics, etc.) So, let’s have a look at possible
competitors.
Ajax
is swept
away immediately. (This is it, rotten tomatoes are thrown at me). Ajax technology is outdated, but the problem is that it became outdated long
before it appeared. Just think that applications designed in the 80s of the last
millennium worked faster and were more user-friendly. Creation of full-featured
user interface using the means of text markup resembles pegging of square pegs
in round holes. Ajax systems are distinguished by huge amount of working hours
required for their creation, low speed of work, primitive user interface and low
reliability. Plus problems with browser compatibility.
I should admit that there are
quite a good number of happy exceptions. There are developers showing miracles
of ingenuity and creating really powerful and functional applications, but they
are in the minority. I agree that Ajax™
will remain the only way to create applications that work on all platforms for a
long time, but it is not bright future, it is a forced step connected to
technology imperfection.
Flash
is undoubtedly a wonderful tool to design animated and interactive graphics, but
as any system evolving for a long time, it has a huge heritage complicating its
use in RIA.
I doubt whether it is
possible to seriously compare ActionScript features with abilities of .Net
languages. The GUI object model loses out to the Silverlight model. Flash™ supports only frame-by-frame animation that is not so flexible as
KeyFrames model. Plus lower performance, use of proprietary formats to code
audio and video content. All is worsen by very complicated binary swf file
format that makes it difficult to write third party utilities and tools.
Svg
technology that didn’t establish a big presence, to my deep regret, is oriented
at the design of animated graphic content and doesn’t provide powerful tools to
create applications.
JavaFX
is some kind of reincarnation of the well-known JavaApplets technology.
JavaApplets exists for 13 (!) years already and allows developers to design
powerful Internet applications. Java loses not much out to C#. In spite of the
fact that execution environment, GUI, libraries are not so flexible as
Silverlight, they help
create full-featured applications. Platform contains full-fledged libraries of
classes that help efficiently solve even the most complicated tasks. It seems
that Java
is the real leader. But even over this period the technology is not dramatically
popular. Java vendor – Sun Corporation was not able or didn’t want to eliminate
obvious disadvantages of the system. Most complaints are related to low system
performance, clod start and incompatibility of different versions of the Java
runtime environment. I don’t get deep knowledge of Java, but the fact is that
Java is used as a RIA basis rarely and I doubt that Sun will be able to
influence situation in the near future.
Summary
Everyone including old people
and expectant mothers should learn Silverlight. – (joke) ;-)
Silverlight has quite a
good chance to become the most popular platform for designing Internet
applications. If you have anything to do with the Internet industry, you should
pay attention to Silverlight.
If you are a .Net developer, knowledge of Silverlight
will be just essential in the near future.
Please, send your comments on this article to comments@perpetuumsoft.com.
|