Silverlight vs. Flash – Where’s the Fire?

Is fuel efficiency really what we need most desperately? I say that what we really need is a car that can be shot when it breaks down. –-Russell Baker

I had a chance to reflect a little bit today on Silverlight and Flash and I’d like to offer these observations.

I have some not insignificant experience with Flash. Many developers are too new to remember FutureSplash – but I remember it very well, and I used it when it first came out, circa 1995. That was the predecessor of today’s Flash, which was ultimately purchased by Macromedia, and now of course subsumed into Adobe.

A lot of the stuff you read today revolves around “Flash vs. SIlverlight”. The media loves controversy, and they’ll hammer on this subject ad-infinitum – often to the extreme detriment of any real content.  If you are on Twitter, the latest volley was about MLB (Major League Baseball) dropping Silverlight and going back to Flash for their video coverage. Its seems like every Tom, Dick and Harry Blogger / Twitterer needed to “break the news”.

It was a joke – it got to the point where the signal-to-noise ratio made it uncomfortable to even find relevant content about “Silverlight”. Fortunately, they’ve started to give up and things are getting back to normal.

I have no idea what the facts are behind this arrangement, nor do I particularly care, because Silverlight is already “on a roll”, and it’s just the beginning. Flash is not going to go away, and I don’t want it to - that’s good because competition is good for everyone.

When I and Robbe Morris (my MVP partner on the eggheadcafe.com venture) worked for Sprint Telecenters back in 2000, Sprint spent over $500,000 to have some very sophisticated Flash developers put together a really hot-shot Flash animation web page for their current home – business offering called “ION”. Needless to say, it no longer exists as a product. The animation was fantastic – but at the time, that’s all it did – be a Flash-y animation.

Flash was and still is used primarily as a delivery system for graphic animations, banner ads, and to a lesser extent, a UI front – end for interaction with data on some back-end such as a database. Flex has brought some notable changes, but I haven’t seen any compelling business scenarios built with it. Microsoft properties use Flash – and they’ll probably still be using it for quite a while. Sure, they want to promote Silverlight – but they aren’t stupid! Bloggers seem to want to expose some sort of hypocricy on the part of Microsoft here – but Microsoft is simply being pragmatic in my view. The Flash IDE has not changed much in all these years – it it still “Timeline” concept – based. Silverlight is much different.

When I was able to use the Silverlight .NET Framework to perform fast custom binary serialization of strongly typed .NET objects combined with in-memory Zip compression and send the resultant  compact byte arrays back -- and forth -- over the wire from the client – side Silverlight application to a WCF service on the server side, that’s when I realized that my Flash friends cannot perform this kind of sophistication. Their infrastructure simply does not permit this kind of enterprise – level, “create your own transport channel” architecture at present. (Note in the comments to this post that I stand corrected in some areas, but you can draw your own conclusions). Bear in mind, we are talking about custom binary serialization in Silverlight, and doing it in your language of choice – C#, VB.NET, Ruby, etc.

The main difference with Silverlight is that it really leverages the developer base – both designers and coders – to use their .NET Framework skills to build line-of-business applications that can deliver enterprise-level interaction coupled with high quality video and vector graphics -- with animation -- in a subset of the .NET Framework that installs and runs on the user’s PC, in their Internet browser. You could clearly make the case that the single compelling reason to look at Silverlight is that you are already a .NET (or Mono) developer and don’t want to learn ActionScript (or that you like VB.NET or Ruby or Python!)

And unless you’ve been living in a cave, I don’t need to sell you on the fact that  .NET has matured to the point where most all of the major corporations around the globe are using it as a mainstream technology.

Moonlight, the Microsoft / Novell supported *nix version of Silverlight, is about to make it’s debut.  And the Eclipse Silverlight IDE is already available to try in BETA.

SIlverlight code is compiled. It runs (in several different programming languages now)  up to 300 times faster than comparable Flash code, which relies (currently) on ActionScript.

The next generation of Silverlight will support Hi-Def video, adaptive streaming, and much more.

I still like Flash. But I just love Silverlight, because the productivity curve with Expression Blend and being able to create applications in the familiar environment of Visual Studio 2008 (and even in Visual Studio Express versions) Is quite compelling.

Recently I subscribed to NetFlix just so I could opt –in to the SIlverlight – delivered “Watch Instantly” feature, which is a pleasure to use. Full – screen, searchable hi-def video of your favorite movies, streamed live right to your computer monitor. I like Indie, comedy and foreign films – and they have plenty.  It’s comedic to see these MAC users (who are often hardcore Microsoft – haters) having their jaws drop when they see it working so well on their MACS!

Don’t sell Silverlight short. You’d be making a big mistake. It’s not about Flash vs. Silverlight; it’s about RIA and good competition.

Comments

  1. Anonymous3:40 AM

    Hey Peter,

    I found your blog very interesting. With the news of Silverlight 3 coming next year, I've been viewing various articles and websites related to it. I came across the website http://ultralearn.com/ultralearn/MashupStudio.aspx and found that people are developing awesome softwares using the silverlight platform.

    Regards,

    Zulfqiar

    ReplyDelete
  2. As for things not possible in flash, this may be a reasonable solution for *some* things....

    http://labs.adobe.com/technologies/alchemy/

    ReplyDelete
  3. Anonymous1:18 PM

    just some thoughts

    >>>>>>> fast binary serialization of strongly typed .NET objects combined with in-memory Zip compression and send the resultant compact byte arrays back -- and forth -- over the wire from the client – side Silverlight application to a WCF service on the server side

    In flash

    var raw:ByteArray = new ByteArray();
    raw.writeObject( yourStronglyTypedObjectHere );

    you can then pack it off an send it to server, later on

    var myObject:YourType = YourType( bytes.readObject() ); // provided u give it the correct remoteclass meta tag

    it does the fast serialization ( AMF transformations runs on C based code ). you can also use ByteArray to write out your object Zlib-ed if you like. I believe its the compress() function.

    as for server side, you have great open source stuff like AMFPHP, RubyAMF, BlazeDS for push..etc.etc

    At this point, I really don't see a lot being done with Silverlight that can't be done in flash.


    >>>>>> SIlverlight code is compiled. It runs (in several different programming languages now) up to 300 times faster than comparable Flash code, which relies (currently) on ActionScript.

    May be true for the old AVM1 intepreted flash code, but not true for AS3, both AVM2 and CLR as stack based VM running JIT-compiled code. However as far as language syntax /semantics go, I'd give C# the edge due to its implementation of generics and other usefuls. Adobe is simply too slow in updating AS....

    As it comes to development tools though, I think Visual Studio > all , really puts flex builder to shame with its code hinting and organization tools

    cheerz
    karthik

    ReplyDelete
  4. Anonymous7:07 AM

    the details of silverlight are in fact irrelevant in the face of the installed base of flash.

    Fortunately, some people have better things to do than try to invent client/server apps

    ReplyDelete
  5. Anonymous8:11 AM

    Hi Peter,

    Thanks for commenting on this issue. However, I'm slightly concerned that you didn't realize that ActionScript is compiled. I don't see how you could have possibly used ActionScript/Flex without realizing this - what did you think that mxmlc did? I therefore have to conclude that you haven't ever used ActionScript in practice, which makes me wonder why you chose to write about it?

    Ed

    ReplyDelete
  6. Anonymous9:10 AM

    Ha! You're completely unbiased! ;D

    ReplyDelete
  7. I think your thoughs are very misleading... I write business applications with Flex front-end and Java/Spring/(the rest of the usual stack) on the back-end *exactly* in the way you describe, using BlazeDS.

    On the other way, it is good to know that Microsoft will be pushing competition in RIAs, this could only improve the technology..

    Regards
    Cosma Colanicchia

    ReplyDelete
  8. Some interesting comments, all. Yes, ActionScript3 is compiled.

    For me, it really boils down to being a .NET developer and being able to leverage my existing skills.

    ReplyDelete
  9. Now we only need to know how many official Silverlight versions are going to be released. Oh, wait, Microsoft relies on Mono to release Moonlight while they're releasing newer versions of Silverlight for Windows. Yay for the "cross-platform" web development that only runs officially on... Windows.

    ReplyDelete
  10. Anonymous5:53 PM

    "The next generation of Silverlight will support Hi-Def video, adaptive streaming, and much more."

    Flash Player 10 does dynamic (adaptive) streaming in hi-def h.264.

    Everything else you have said in this post has been refuted in other comments so I won't go into them here.

    "For me, it really boils down to being a .NET developer and being able to leverage my existing skills."

    Of course, this is the primary reason why people will use Silverlight. Why didn't you just say this at the start and nout make uninformed comments about something which you know nothing about (Flex & AS3)?

    ReplyDelete
  11. @Darren,
    I'm aware that Flash Player 10 supports H.264. Flash (since Futuresplash, at least) has been around for 13years now; the "upstart" Silverlight is just getting going.

    You're right! I could have just said I like Silverlight because I want to be able to leverage my existing .NET skills (and that is true). But then there would be no controversy to spark interesting comments like yours and some of the others.

    As i said in my post, "It's not about Flash vs. Silverlight". To make it clearer, it's about RIA and good competition.

    ReplyDelete
  12. Anonymous9:46 PM

    In defense of Peter, I'd like to add that after a decade of trying to make my peace with the flash IDE, it will never happen. It works for some people, but the expression tools coupled with visual studio's power makes it pretty hard to think flash is anywhere as efficient.

    M$ at least understands that the developers butter their bread, Adobe bought out Macromedia never really caring about the IDE's. Should I mention Coldfusion Studio? Heck Macromedia had horrible IDE interfaces from square one.

    Adobe makes good money from their designer tools, coders are a passing thought. I mean, they lost myspace to .net. Not a good way to sell photoshop.

    And as a footnote, you know why I bought an IPhone? No flash on the platform. I personally don't need the annoying ads.

    ReplyDelete
  13. Anonymous11:48 PM

    You really should put off writing a topic of this nature until you know more about the subject matter, because it's obvious that you don't know jack about Flash.

    ReplyDelete
  14. @Eric,
    Well Thanks, Mr. Flash Expert! You've really added value!

    ReplyDelete
  15. Anonymous9:33 AM

    What’s wrong with you action script kiddies. Why are fiiiighting, dooon’t fight. Flash is dead. You will see it in heaven if you be a goood girl.
    Ok well seriously guys. Did you know that Microsoft, Sun and Adobe are the three major head of the ECMA, ahah. Flash guys you need to stop living in the past. This is your assignment.
    Find if adobe can developed action script to be as power full as c# or java, and if they can. Is it feasible? Since its open source.
    Find out which two powerful company stop the progress of ECMA 4.
    Find out on what stands does action script based on.
    Find out why does these two powerful companies stop ECMA script 4 specification from including too much object oriented design concept in the specification.
    Find out what technology are these two companies developing that is similar to flash/flex.
    Find out since when are there so much money in RIA, and why all of a sudden these other two companies are on a race to be better than Flash.
    Find out why these two other companies moving on from an object oriented design concept to a more functional design concept. But on the other hand adobe is killing them self to be part of the OOP paradigm.
    Find out what is called LINQ, F#, AND WCF and how do they tie in with C# to produce a product.
    And wait you may want to know about silverlight and asynchronous programming. If you get the time look up on it.
    In the land of bitmap production software and rendering breathtaking graphics on the screen Adobe rules, and I think they will rule forever, it shows in flash, I can say It’s better than Silverlight and JavaFX rendering, but when it comes to logics adobe is uncivilized.
    I could go on and on and on. But tomorrow I will continue. I warn you in advance, your findings will be astonishing.

    ReplyDelete
  16. Anonymous9:35 AM

    pingback http://www.silverlight13.com

    ReplyDelete

Post a Comment

Popular posts from this blog

Some observations on Script Callbacks, "AJAX", "ATLAS" "AHAB" and where it's all going.

IE7 - Vista: "Internet Explorer has stopped Working"

FIREFOX / IE Word-Wrap, Word-Break, TABLES FIX

System.Web.Caching.Cache, HttpRuntime.Cache, and IIS Recycles

FIX: Requested Registry Access is not allowed (Visual Studio 2008)