Flash Vs Silverlight

Flash vs. Silverlight: What Suits Your Needs Best?

Today everyone who uses Internet is familiar with these two terminologies, thanks to the recent evolution in web development. Both of the tools produce spectacular affects and give a new life to the world of web development. With the release of Silverlight 1.0 and its subsequent versions, a debate started among designers and developers regarding choosing between Flash and Silverlight. Silverlight faces difficulties in capturing the market because of the maturity of Flash. However, Silverlight has managed to keep up by including certain features that designers and developers have always wanted to see in Flash, such as search engine optimization. In this article, we will discuss some of the technical differences between Flash and Silverlight to help you choose the technology that best suits your needs.

Formerly known as Macromedia Flash and now relabeled as Adobe Flash, flash is streaming animation for WebPages. Sometimes Flash is a portion of an html web page, and sometimes a web page is made entirely of Flash. Either way, Flash files are called "Flash movies". These are special .swf format files that beam to your web browser screen as you watch them. This highly interactive tool is frequently used for advertisements and games. More recently, it has been positioned as a tool for "Rich Internet Applications" ("RIAs"). Flash manipulates vector and raster graphics to provide animation of text, drawings, and still images. It supports bidirectional streaming of audio and video, and it can capture user input via mouse, keyboard, microphone, and camera. Flash contains an Object-oriented language called Action Script. Flash content may be displayed on various computer systems and devices, using Adobe Flash Player, which is available free for common Web browsers, some mobile phones and a few other electronic devices (using Flash Lite). Flash can be used to create interactive rich media content (including text, photos, music, video, vector graphics, voiceover, and a wide variety of motion graphic effects and animation) to be displayed in a browser. By producing a compiled flash movie and an html page which embeds that movie and uploading both to a web server, the content is made viewable to a site visitor via a Flash browser plugin. Flash can also be used to create executable files, to be played from a CD or from the desktop of either a PC or a Mac, without requiring any additional software (the Flash player is embedded in the executable). A Flash source file is also referred to as a Flash movie, whether it is actually an ad, a cartoon, a complete web site, a game, or some other Flash application. Flash is an ideal application, not only for entertaining or making a statement on a website, but for any online application involving user interaction, display of database content, need for resizable graphics, maps, explanatory animation, custom navigation, or seamless/custom integration of video or sound. The software is ubiquitous on the Web, both because of its speed (vector-based animations, which can adapt to different display sizes and resolutions, play as they download) and for the smooth way it renders graphics. Flash files, unlike animated but rasterized GIF and JPEG, are compact, efficient, and designed for optimized delivery.

Known as a do-it-yourself animation package, Flash 4 gives Web designers the ability to import artwork using whatever bitmap or illustration tool they prefer, and to create animation and special effects, and add sound and interactivity. The content is then saved as file with a .SWF file name extension (the letters SWF stand for 'Shockwave Flash.').

Web users with Intel Pentium or Power Macintosh processors can download Flash Player to view Flash content, which performs across multiple browsers and platforms. Flash is lauded for being one of the Web's most accessible plug-in. According to an independent study cited by Macromedia, 89.9 percent of Web users already have Flash Player installed. Until the advent of HTML5, displaying video on a web page required browser plugins, which are uniquely implemented by third party vendors. Virtually all browser plugins for video are free and cross-platform, including Adobe's offering of Flash Video, which was first introduced with Flash version 6. Flash Video has been a popular choice for websites due to the large installed user base and programmability of Flash. In 2010, Apple has publicly criticized Adobe's implementation of Flash Video playback for not taking advantage of hardware acceleration, as well as criticizing Flash technology in general which has been cited as reason for not implementing Apple's mobile devices. Soon after Apple's criticism, Adobe demoed and released a beta version of Flash 10.1, which takes advantage of hardware acceleration even on a Mac. Flash as a format has become widespread on the desktop market; one estimate is that 95% of PCs have it, while Adobe claims that 98 percent of U.S. Web users and 99.3 percent of all Internet desktop users have installed the Flash Player, with 92 to 95% (depending on region) having the latest version.] Numbers vary depending on the detection scheme and research demographics. The Adobe Flash Player exists for a variety of systems and devices: Windows, Mac OS 9/X, Linux, Solaris, HP-UX, Pocket PC/Windows CE, OS/2, QNX, Symbian, Palm OS, BeOS, and IRIX, although the performance is typically best on Windows (see Performance). For compatibility with devices (embedded systems), see Macromedia Flash Lite.

Among mobile devices, Flash has less penetration because Apple does not bundle or allow third-party runtimes on its iPhone, which accounts for more than 60% of global smartphone web traffic, or the iPod touch, which makes up more than 95% of "mobile Internet device" traffic. This hurts Adobe's ability to market Flash as a ubiquitous mobile platform. However, Flash support has been announced for competing mobile platforms, including the next version of Android.

Advantages

  • Fast Loading: Unlike file attachments in email, which you must wait to fully download before viewing, Flash movies start playing as the content is transmitted to you. While the Flash movie may be 6 megabytes large, you can start to watch the animation within moments, while the rest "streams" to your screen in the background. This makes Flash very desirable for web publishers, as it opens creative doors for them to make very powerful animations for their readers.
  • Vector Graphic Animation: "Vector graphics" are different from "raster graphics" (jpg, gif, png, bmp graphics). Vector graphics use math formulas to draw animation shapes, while raster graphics save millions of tiny colored dots to draw photos. This difference allows vector graphics to be very small file size, and very crisp at any resized format. For these two benefits, Flash designers use vector graphics to make powerful web page visuals that load to your screen very quickly and crisply.

Disadvantages

  • Some organizations block Flash movies from being received through the Internet. While this is partly motivated by fears of Flash viruses and Flash hackers, the greater motivation is disciplining staff. Many managers of private companies do not want their employees playing Flash games at their office computers, so they will ban Flash movies at work through technical blockers on the network. Do not be surprised if your employer chooses to implement a ban of Flash at your office.
  • Not everyone has the required Flash Player plugin. Because they do not like "blinking things" on their screens, some users choose to disable or not install Flash Player.
  • Flash .swf movies can be very time consuming to edit. It is very laborious work to change a Flash web page quickly. For this reason, you will almost never see a dynamic content page like a news site utilizing Flash for its rapidly-changing content. Instead, Flash is used more for decorative purposes, and for advertising and online gaming purposes.

Microsoft Silverlight

Silverlight is a powerful development platform for creating engaging, interactive user experiences for Web, desktop, and mobile applications when online or offline. Silverlight is a free plug-in powered by the .NET framework that is compatible across multiple browsers, devices and operating systems to bring a new level of interactivity wherever the Web works. With support for advanced data integration, multithreading, HD video using IIS Smooth Streaming, and built in content protection, Silverlight enables online and offline applications for a broad range of business and consumer scenarios. Silverlight is being pushed side-by-side with Microsoft's Live services for developers. Microsoft is opening up APIs (application program interfaces) for its search engine, for Virtual Earth, for its instant messaging service, and for other services, under generous, but not unlimited, licensing terms. These services will allow the creation of interesting online applications that take advantage of existing Microsoft networks and resources. For example, Match.com today demoed a new version of its service that can connect directly to other Match.com subscribers who are MSN Messenger users. Mash-ups are nothing new, of course, but it is important that Microsoft is giving developers access to its computing resources as well as its user base.

Silverlight supports the display of high-definition video files, and importantly, Microsoft will do the heavy lifting of sending them over the Net. Streaming large media files is expensive, but Microsoft will (optionally) host Silverlight media files and applications. This will enable smaller developers to deliver large and high-definition files quickly and reliably, without paying content distribution network fees. Microsoft is promising reliable 700kbps throughput for media files, and free distribution of all content on its network for one year. After that, distribution will continue to be free up to 1 million streamed minutes a month. Fees after that have not been set.

Also, Silverlight applications are delivered to a browser in a text-based markup language called XAML. That's no big deal for Web users once they land on a site. But search engines, like Google, can scan XAML. They can't dive into compiled Flash applications. Flash-heavy sites do often wrap their applications in Web code that search engines can crawl, although it's extra work for developers and designers to do it, and may not yield search results that are as good as they would be if the search engine was indexing the actual application instead of keywords tacked on after the fact. Silverlight applications will be more findable. Silverlight is combination of different technologies into a single development platform that allows you to select tools and the programming language you want to use. Silverlight integrates seamlessly with your existing JavaScript and ASP.NET AJAX code to complement functionality which you have already created. Silverlight aims to compete with Adobe Flash and the presentation components of Ajax. It also competes with Sun Microsystems' JavaFX, which was launched a few days after Silverlight. Currently there are 2 major versions of Silverlight, Silverlight 1.0 and Silverlight 2.0.

Advantages

  • Highest Quality Video Experience: prepare to see some of the best quality videos you have seen in your life, all embedded in highly graphical websites. The same research and technology that was used for VC-1, the codec that powers BluRay and HD DVD, is used by Microsoft today with its streaming media technologies.
  • Cross-Platform, Cross-Browser: finally build web applications that work on any browser, and on any operating system. At release, Silverlight will work with Mac as well as Windows! The Mono project has also already promised support for Linux.
  • Developers and Graphic Designers can play together: Developers familiar with Visual Studio, Microsoft.net will be able to develop amazing Silverlight applications very quickly, and they will work on Mac's and Windows. Developers will finally be able to strictly focus on the back end of the application core, while leaving the visuals to the Graphic Design team using the power of XAML.
  • Cheaper: Silverlight is now the most inexpensive way to stream video files over the Internet at the best quality possible. Licensing is dead simple, all you need is IIS in Windows Server, and you're done.
  • Support for 3rd Party Languages: Using the power of the new Dynamic Language Runtime, developers will now be able to use Ruby, Python, and EcmaScript This means a Ruby developer can develop Silverlight applications, and leverage the .NET Framework.
  • Cross-Platform, Cross-Browser Remote Debugging: If you are in the need to debug an application running on a Mac, no problem! You can now set breakpoints, step into/over code, have immediate windows, and all that other good stuff that Visual Studio provides.
  • The popular development environment: Visual Studio is a very popular development platform. As it continues to constantly evolve, so will Silverlight.
  • Silverlight offers copy protection: Have you noticed how easy it is to download YouTube videos to your computer, and save them for later viewing? Silverlight will finally have the features enabling content providers complete control over their rich media content! Streaming television, new indie broadcast stations, all will now be possible.
  • Extreme Speed: There is a dramatic improvement in speed for AJAX-enabled websites that begin to use Silverlight, leveraging the Microsoft .NET framework.

Comparison

Animation: The Flash format itself has no notion of animation other than transformation matrices. You can apply a matrix to an element on a per frame basis to move it around. Want to move something across the screen in 3 seconds? Calculate how many frames 3 seconds will take, then calculate the matrixes required for each frame along the way, and don't forget that the player won't actually maintain any frame rate unless you embed blank audio tracks, so that 3 seconds might turn out to be 2 or 6 or 5, it just depends what kind of mood the machine is in.

Silverlight supports the WPF animation model, which is not only time based instead of frame based, but lets you define the start and end conditions and it will figure out how to get there for you. No need to deal with matrixes. No need to calculate positions on various frames. It just works.

Shapes: Flash stores its shapes using binary shape records. In order to write shape definitions, you will need to either license a 3rd party Flash file format SDK, or build your own. It isn't too difficult, but it does require a bit of a learning curve and the ability to manipulate things at the bit level, since shape records don't align on byte boundaries. Needless to say, it isn't the kind of thing most people can write and have all debugged in one afternoon.

Silverlight uses XAML. XAML is text based and can be output using a simple XML object. No need to buy special libraries to write files. No need to write your own libraries. Just stream some text to a file and you're done - easily the type of thing that can be debugged and finished in an afternoon.

Text: Flash stores its fonts glyphs using the same exact shape definitions that are used for any other shape. The player itself does not understand TTF files, so you'll end up digging deep into the Win32 APIs and the fairly vague definitions in the Flash file format documentation to come up with something that sort of does the trick. You'll probably spend ages trying to deal with all the intricacies of fonts, because it turns out that typography is actually fairly complex... and you will have to deal with all those complexities yourself.

WPF/E lets you embed true type font information directly into your projects, and download that information with the downloader object. No need to do anything special. No need to handle anything yourself. It just works.

Video / Audio: Flash supports multiple video formats. The latest codec is really high quality and the bandwidth usage is nice. There is one problem though if you are creating a tool that outputs Flash content... the formats it supports aren't really used by anyone else. The original video codec, Sorenson's proprietary H.263 implementation is a mutant version of H.263. The compression follows the spec fairly closely, but there are a bunch of features dropped out and you can't exactly just go find a complete spec on how to build your own encoder. The later codec from On2 puts you in an even worse position. Licensing Sorenson's codec isn't that expensive, but On2 will rape you with fees. They are relying on revenue from licensing the codec used by Flash to revive their $2 a share stock price. It is also a completely proprietary format (where at least the Sorenson one was loosely based on a standard). The audio formats Flash supports are all proprietary, except for ADPCM, which no one uses because of its horrible compression, and MP3, which is decent but dated, and still requires licensing fees and 3rd party conversion libraries.

Compare that to the Silverlight story. Silverlight implements industry standard VC-1 codec for video, as well as offering support for WMV and WMA. Just about everyone already has Windows Movie Maker, but if they don't it's not a big deal. Why? Because Microsoft makes available a free Encoder SDK for producing WMA and WMV. So, not only are you using formats that people are more likely to be able to encode themselves, but Microsoft also provides your product with SDKs if you want to do the encoding yourself. The best part about it is that Microsoft doesn't rely on WMA/WMV licensing revenue to keep themselves alive, so not only is it easier to integrate, but it's also cheaper.

Scripting: You can reuse C# classes from your tool inside your exported content. There is no development environment out there for creating real desktop applications which is based on ActionScript. If you go the Flash route, this means that all your classes and objects have to be written twice. You need .NET classes to handle the author time experience and Flash classes to handle the run-time. If you have server components, once again you need to switch back to .NET and throw out all the classes that the run time is using. For example, let's say you are creating a tool that outputs rich media quizzes. With Silverlight / .NET, the same entity classes you use to deal with results in the player could be reused on the server side. With Flash, you'd have to write all that logic 2x and keep it in sync as your tool changes.

Tools: You can create Silverlight content with the same tools you use on a daily basis. Visual Studio.NET is by far the most popular IDE. You can potentially have all the code for the server components, the authoring tool components, and the runtime/player components inside the same project. No extra skills required. No needing to hire some special Flash guru to do the graphics junk. Every developer can contribute to every part of your application.

Conclusion

The bottom line: about the only thing Flash has going for it from my perspective is adoption. Adoption isn't hard to achieve, especially for the people that ship the operating system 90% of the world uses. As such, it's just a matter of time till that is no longer part of the equation. Adobe has a lot of work to do in the mean time, and the clock is ticking.



Copyright Notice: Please don't copy or translate this article without prior written permission from the HTTPDebugger.com

HTTP Debugger is a proxy-less HTTP analyzer for developers that provides the ability to capture and analyze HTTP headers, cookies, POST params, HTTP content and CORS headers from any browser or desktop application. Awesome UI and very easy to use. Not a proxy, no network issues!
Download FREE 7-Day Trial

HTTP Debugger

HTTP Debugger - Professional HTTP Analyzer Debug HTTP API calls to a back-end and between back-ends. Very easy to use. Not a proxy, no network issues! Download Free Trial