Sunday, December 28, 2008

Visions in Online Crystal Ball: is Silverlight™ 2.0 - “the Next Big Thing”?

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.

The RIA (Rich Internet Application) term 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.

No comments:

Post a Comment