When surfing the internet, our eyes are always caught by animations and videos, rather than text. We are impressed by the design of certain websites, and usually, the most impressive ones are those that don’t stick to a very plane and simple format with a menu and some drop down urls. One might wonder how are these made?

The answer is, in two ways. Adobe Flash and Microsoft Silverlight are two technologies that allow the user to create a so called “Rich Internet Application” (RIA). This means a web application that looks and feels like a desktop application. It feels like an installed application.

Flash is the first to appear out of the two and arguably the most popular one. The youtube video player is in fact, a flash video player. From an application point of view, Flash creates frame-based animations, meaning that the developer must specify what he desires to happen in each frame and at the end, all the frames are played in a particular sequence which can be controlled.

Similar to Flash, Silverlight is a framework for building rich internet applications. Just like Flash, it also has a runtime environment as a plug-in for all the web browsers. It has a component for audio/video streaming and one which supports the development of complex applications.

One of the drawbacks of Flash was the lack of structure and architecture of the code behind the application. In response to this, Flash came with Adobe Flex, but we will not get into details on this topic. This is the point at which Silverlight tried to strike. While it provides pretty much all the capabilities Flash has to offer, it brings something new to the table: all the power of the .NET framework.

Flash files are in the SWF format and can be played by any compatible player. Flash has its own free downloadable player. It is partially because of the popularity of the player among internet users that Flash is always one of the first choices for every developer when building a web application/site.

In order to facilitate the development of complex web applications, Flash has its own scripting language called ActionScript. It is an object oriented language, very similar to Javascript. The code is able to handle any type of business logic required in the application domain and with specific functions to easily handle animations.

For the user interface, Silverlight uses the XAML markup language. The interesting part is the back-end where developers are allowed to code in any .NET language, even in versions of popular dynamic programming languages (IronRuby or IronPython). This gives it huge power in building complex applications that can even have a database behind them: objects can be handled through the Document Object Model interface.

Flash is widely spread on every desktop platform, and on mobile phones. The only issue is its compatibility with iOS (iPhone and iPad) and with new versions of Windows Phone OS. Even though there are workarounds in place in order to handle Flash content, Adobe announced that it will no longer focus on developing new versions of Flash for Mobile Devices, but will switch to new standards (HTML5). In a similar fashion, Silverlight is also cross-platform, supported by all the desktop browsers. When it comes to mobile platforms, Silverlight is at the cornerstone of Windows Phone OS and is supported (to a certain extent) on the other popular platforms.

There are however two main reasons why Silverlight has not caught up with Flash in popularity among this type of web based RIAs.

First, because of its late arrival; most of the sites with rich content were in Flash, most of the people already had the Flash player inside and thus Silverlight had a big mountain to overcome.

Second of all, all the nice advantages Silverlight has, are not very important when it comes to media content inside a web site. One of the most popular technologies for building complete websites is PHP with MySQL and Flash will only represent a small portion (the media content). In this scenario, most of Silverlight’s features are already covered by PHP/MySQL and it remains to compete with Flash without bringing anything revolutionary.

It is because of this that Flash is still the most popular RIA frameworks on the market. However it has a new competitor out there in HTML5 and only time will tell who will come out victorious.