I’ve been spending a bit of time recently taking a look at the RIA market as a whole and the tools that are available within. During this time, I’ve been spending most of that looking at Adobe’s Flex and Microsoft’s Silverlight.
For a little context, for those of you that don’t know, I am mainly a server-side developer, with a background in tools such as ColdFusion, Rails and Flash. I have some knowledge of Flex, but not enough to make me truely dangerous (yet).
So, what’s the deal? Well, in short, Flex is simply a library of components that are used to develop applications using Adobe’s flash runtime. This gives you a massive amount of scope for what’s possible, as well as a fairly safe bet that any users you might have have the flash runtime ready to roll. Development is done by writing MXML and Actionscript 3, preferably inside the Flex Builder tool (based on Eclipse) that you can buy from Adobe. Flex runs on Windows, Mac’s and Linux in some form, and can be developed for free due to the fact that the runtime itself is open-source. One feature definitely worth a mention is the support for AMF - a highly compressed binary format for data transport. This protocol makes it highly performant when chucking data around the place.
So, let’s quickly mention silverlight. Silverlight is Microsoft’s attempt at Flash, but with a .NET backdrop. In it’s simplest form, Silverlight is a subset of WPF, the Windows Presentation Foundation, that a whole stack of Windows UI is now built with. This means that any .NET developer worth his salt should be able to adapt and develop silverlight applications fairly easily. Now there’s a problem here - I’m a Mac user at heart, and although I have a windows laptop available at the office, OS X is where I prefer. However, as a Silverlight developer, you are bound into Windows as you’ll be needing tools such as Visual Studio 2008 and/or Expression Blend. This doesn’t sit too well with me - if you’re developing for the web (any platform), you should be able to use any platform to do so.
So, what are the key differences other than those mentioned above? Well, for me, Flex appears to be a bit more developer friendly - I can do all the things that Silverlight can do as well as use AMF, and the Flex Builder tools (when combined with Adobe’s creative suite) seem a little nicer than the Microsoft offering. I can develop Flex apps on any platform, and run them pretty much anywhere. I also like the way that Flex can seemingly sit with whatever tools you might use elsewhere, Silverlight definitely lends towards .NET due to the fact that the IDE and languages are used elsewhere in the platform.
On a side note there is something that bugs me about Silverlight apps, and that is the look of them, when using the default styles and skins, for instance, let’s take a look at a flex and silverlight app side by side (using the default skin):
First up, Flex:
and Silverlight:
Flex just seems to look smarter and less “Tonka”. Silverlight has the look of a Fisher-Price “My First RIA”.
One other big thing worth mentioning, although slightly off topic, is Adobe AIR - I don’t see anything from Microsoft, yet, that appears to offer what AIR does. AIR allows me as a web developer, to create desktop apps using Flex, Flash, HTML, JavaScript etc, and deploy them whereever I like. Microsoft does have WPF, but that’s pretty much limited to recent windows installations and doesn’t really suit itself to web developers. AIR is a huge selling oppourtunity for small agencies, and Microsoft just don’t have anything to offer as an alternative.
Lastly, it’s worth mentioning the vendors themselves. Both are great companies, with good product lineups, but there’s one thing worth noting. MIcrosoft seem to understand developers and the creative agencies out there better than Adobe by a long shot. For instance, the partner programs that the two companies offer are leagues apart, the Adobe one being hard to justify the ROI on. Micosoft are genuine about working with partners, and helping them to help themselves, providing support, software and training where needed. Adobe on the other hand seem to show no interest at all unless you are shifting LiveCycle licenses, which is a damn shame as they win in almost other respects for the budding RIA developer.
So, in summary, my views are this - Flex beats Silverlight. I prefer the development story and the fact that I can develop it how I like and where I like. If I were starting up an agency with guaranteed work I would go for the Adobe products every time…
BUT, and there’s a few buts, I don’t have guaranteed work, I need some help getting it - so Microsoft comes in to play. With their awesome partner program, I have the resources available to me that help me be more successful as a business. The question is, does grinning and bearing the slightly poorer tools make it worth it?




it seems sad that windows always seems to only develop platform specific products. i personally am a huge critic of “mickysoft” but i am forced to use their products to interact with them for certain client needs. however in my humble opinion any product regardless of who makes it that limits you to one platform is foolish. especially with the ever growing free software movement, and the huge success of Apple’s marketing. I would expect to see droves of people switching more and more to gnu/linux and mac desktops. That said why would you want to limit yourself of microsoft enviornments?
one other thing that seems to strike me is the market. adobe has it corned plan and simple. hince they have no real need to offer extensive partner programs, although they do offer lots of training and great free fully functional trials of their products. Still they have the market and microsoft is fighting for a piece of it, i honestly think that is the major difference in their offerings. as long as “mickysoft” makes an inferior product, they most likely will keep the market too!
Siliverlight is a “Fisher Price” entry?? Wow, you could have fooled me. Looking at the many showcased web applications based on Silverlight, especially the NBC Olympics site, you must really be joking. Silverlight has a HUGE advantage over Flex. First, it is based on true object-oriented programming. It takes advantage of many .NET features like built-in localization management and security. While the out-of-the-box toolbox for UI controls may not be that great, there are plenty of third-party controls to spiff things up (Telerik for example). You can also write a Silverlight app in any language that supports the CLR. Support for video streaming is unbelievable. Not even Flex comes close. While it may appear that Microsoft is “catching up” to Adobe for Web development, that is total hogwash. Microsoft has been providing the Mercedes development tools for building great web apps for the past 10 years. While it is true that they didn’t have a direct competitive product to Flash or Flex, the underlying infrastructure for the .NET Framework was under development for years. There is simply no comparison to Silverlight and Flex. That would be like comparing a Porsche with a VW Golf.
@Johanan - If you read my post again you’ll note that I refer to the look and feel as “fisher-price”, not the underlying stuff - things like the font-rendering just suck. I agree that .NET is a nice platform, and I agree that Visual Studio is a nice tool (even if it’s windows only), but I don’t agree with you that Silverlight is so far ahead. When I am developing Silverlight apps I just don’t find it as easy as Flex/Flash/AIR.
Flex is ahead of Silverlight, and Microsoft are the first people to realise this every time.
>Silverlight has a HUGE advantage over Flex
Funny as Flex has been out for years.
>Silverlight has a HUGE advantage over Flex First, it is based on >true object-oriented programming
AS 3 / Flex is OO, based on ECMA standard .. Like Javascript.. so you get no points there other then showing your havn’t looked at the product and are bios.
>Support for video streaming is unbelievable. Not even Flex >comes close.
Back your claim up and show us how a Flex app doesn’t come close? In what regard?
>There is simply no comparison to Silverlight and Flex.
Your right about that, Flex blows SilverLight away,the GAINT Flash Player install base is larger then even windows media player so your apps will run everytime…Different browser differnt OS no matter.. Flex beats SL eveytime.
I don’t claim to have much knowledge of Flash or Flex, but in my opinion Silverlight is going to have as big or bigger an impact on the web as the introduction of .NET or Java did. One of the biggest advantages is the ability to write it with .NET managed code. I’ve been working in it a few months and will have a hard time going back to the standard webform apps. Silverlight is about to unleash a few million .NET developers into the RIA development world. It goes far beyond playing video or making a flashy website. It completely expands the ability to write RIA business apps. I also think it is a technology which will cause a huge leap in mobile development. It will blur the lines between desktop apps and web apps, and apps that were once stuck on desktops will be able to go completely mobile as mobile devices such as the Iphone and mobile broadband continues to improve. I wouldn’t underestimate Silverlight just because of the Fisher price look of some demo apps written with the Beta version. Silverlight is still Beta, but I’ve already seen some pretty amazing apps.
Funny how claims are made for Flex, everybody says yay and amen. When Silverlight claims are made, you have to prove it through links and what not.
I recommend looking at http://www.silverlight.net and the showcased apps. Just to mention the fact that Linerider has switched from Flash to Silverlight while its even still is in beta goes to show you something about the technical merits of the platform
Reaction to the new Linerider owners’ move to ads, Microsoft, and McDonald’s:
http://linerider.com/en/forums/silverlight-public-beta
jd/adobe
Hi, here is my 2 cents. I spent the good part of 9 months, 2 years ago leaning Flex. At the time I did find it neat, specialy when compared to the rubbish mix-mash of ajax.
However one thing that I came to realise is that if you must do any serious processing then the flash player runtime is dog slow. This wasnt due to bad programming as I am sure that I will be accused of - LOL, but rather bad performance in the Flash (not Flex’s fault - I know).
Also I found the IDE (Eclipse) very basic (no intellisence / autocomplete etc). Really is was little more than notepad with a dubugger and compiler. Also drag & drop was unusable, the only real way was manually editing the layout markup.
I find the UI elements displayed by the flash player to look very unappealing when compared to a windows desktop program. They look sort of blured, like some kid has designed them in windows paintbrush.
I hope that Silverlight is capable of creating better looking and performing applications than ones made using Flex. Ultimately I hope that they are as fast as a real windows desktop program and look as sharp as one.
Steve Pedvin
Ok Neil when it comes to the graphics of tha app ui remember Silverlight is just now emerging from infancy. You will soon see many custom skins available for your work environment. If you have seen Expression Blend 2.5 the ui is very pleasant to use.
When it comes to the apps you develop of course the look is up to you so it is totally customizable. As Steve mentioned earlier even though Adobe IDEs have come a long way. (Dreamweaver CS3 has an almost visual studio feel to it.) There is no comparison to intellisense and the .net IDE.
Keep your eye on Silverlight if it gets the awesome support it appears it will it will soon become a formidable looking as well as performing tool.
Finally does it matter if it looks better than flash and should you care if you are developing for a non windows host environment? I believe if you are developing for windows hosting environments you will want to use it because it is yet another good tool for VS.net and using it will come natural plus you will see your developing skills evolve with the product.
you know i think both of them are good enough
i’ve been microsoft user for over 10 years and i’ve been programming over 6 years
i was jump jump and jump over and over on all programming languages and know i just belive something that is C++ and done
know i recommend that flex coz its easy to use and …
but i recommend silverlight coz its i think have smaller size
no really both of them good and useful but you must chose what you want to do what you want to learn and …
I Love Adobe and Microsoft But Now Microsoft Going To A Deap Shit
If You Want Earn Money = Microsoft
If You Want Earn Money , Be Useful = Adobe , Apple