Flash vs. Silverlight Episode 2: Attack of the Developer tools

Published Date
22 - Oct - 2009
| Last Updated
22 - Oct - 2009
 
Flash vs. Silverlight Episode 2: Attack of the Developer tools

In our first part, we took a brief look at Silverlight and Flash, and how well they stack up against each other. In this second part we continue the discussion from the developer's side, and take a look at the development options available with Flash and Silverlight.

For any Web 2.0 website, the creating of websites has become more like developing software. The design of the user experience and interaction, the development of the client-side side functionality have become as important as the visuals. Regardless of the what technologies are being used to create and deliver the content, the development bit is more important than ever. The applications written today need to be scalable to be able to successfully meet the challenges of tomorrow. 


Flash and Silverlight aren't just for creating simple animations and banners, they are target runtimes for highly interactive content and rich internet applications. As such they need a proper  development environment, and a good workflow with designers.


Neither Flash, nor Silverlight are technologies which require an investment of hundreds or thousands of dollars. Both support free development environments, and it is now possible to create content written in either for free. However, both Microsoft and Adobe have professional solutions for creating content as well.

Microsoft has a lot more experience with creating development products, and has created some powerful development tools with its Visual Studio suite. Their Visual Studio suite is capable of creating Silverlight application after the installation of the Silverlight SDK. With one of the most powerful IDEs backing Silverlight, Microsoft's offerings for Silverlight are much more powerful than anything Adobe has to offer.


For Silverlight, Microsoft provides the free Silverlight developer tools, which also integrate with the free Visual Web Developer Express suite, allowing you to make Silverlight content for free. The support for Silverlight on Linux platforms is rather weak, the development choices for Linux users are slim and don't support the latest version.


Adobe on the other hand, provides a free, open source SDK called Flex, which can be used to build applications for the Flash runtime. The Flex framework provides you with interface controls and libraries that can be used to build most application. The SDK includes an open source compiler for Flash written in Java, hence the SDK can be used on any platform as long as the Java runtime environment is installed. Creating content which doesn't use the SDK is easily possible, and, given the situation, can be much more efficient. The Flex compiler can directly output .swf files straight from ActionScript code.


While with Visual Web Developer Express along with the Silverlight development tools provides you with a free IDE and development environment, the only IDEs for Flash development by Adobe are Flash Professional and Flex Builder (to be renamed to Flash Builder with v4); both paid. Here again Silverlight has an advantage, with a free solution -- Visual Web Developer Express, available. Although both Flash and Silverlight have third-party free IDEs available for development too. For Flash you have the open source FlashDevelop, and Silverlight has alternatives such as eclipse4sl, which is an add-on for the popular Eclipse development environment.


Flash and Silverlight also use completely different languages for development. ActionScript, the scripting language for Flash is derived from web programming languages, it is quite similar to JavaScript, and is in fact based on ECMAScript, Third Edition, with some features of the Fourth Edition thrown in such as E4X (ECMAScript for XML), a powerful and easy way to manipulate XML.


Silverlight on the other hand is built on Microsoft .NET, and as such can scripted with any programming language that can used in .NET. Because of this, Silverlight developers have more options when it comes to programming applications, they can use any .NET language such as C#, Visual Basic, and infact, it is even possible to use Python or Ruby with the open source IronPython and IronRuby.


The .swf file specifications have been kept open by Adobe making it possible for third parties to create their own tools for outputting Flash content. Adobe's experimental Alchemy tool-kit in  fact, allows you to write Flash applications in C , thus giving you the opportunity to port the large amount of C code out there for your Flash applications. Other language options include haXe, a programming language capable of targeting Flash, JavaScript and PHP (Java development support in in development) making it possible to write all aspects of a website entirely in haXe.


The thing you notice is that while Flash uses ActionScript, which is a like a powered-up web programming language, Silverlight uses .NET languages like C# which are already familiar to desktop application developers. When creating applications this is sure to provide a distinct advantage. C# can leverage the large number of C# (and other .NET languages) developers out there, and for a new person starting out, learning C# is an investment which will allow you to write desktop applications in the future if needed. ActionScript on the other hand being similar to JavaScript will attract those who are already familiar with web development. While ActionScript too can be used to write desktop applications using the AIR runtime, native applications using .NET are sure to be much more attractive. AIR does have the huge advantage of allowing your application to be written once and work on Windows, MacOS, and Linux.


C# as a language provides many functionalities which are absent from ActionScript. ActionScript on the other hand has some very simple yet powerful methods to work with XML files, and offers a much richer API for working with sound and image data, which has become increasingly important in online applications.


While in the end the user experience matters most, when it comes to development, we see Silverlight take a leap over Flash. Flash may have been the king of the internet for quite long, but Microsoft has been king of the desktop for longer, and they have brought some of that shine to their tools for Silverlight.