Silverlight: The good, the bad and the ugly

DISCLAIMER: I work for Adobe on the platform evangelism team. I’ve been a Flash designer/developer for the last 12 years and have a degree in graphic design. It is important to note that that is my background and that these are the things I learned over the last 3 days. If I’ve missed anything about Silverlight, let me know and I’ll be happy to update this post.

I wasn’t sure if I would blog about this or not because it’s likely to cause some commotion, but I decided to do it anyway. This post is not meant to talk down on Silverlight. I just finished a 3-day hands-on, in-depth Silverlight course and wanted to share what I learned about Silverlight coming from a Flash/Flex background. I am sure some of you may encounter the same things when you learn about Silverlight.

The good
There are a couple of things I really like about Silverlight — things that are currently missing or not obvious with the Flash platform.

The first thing I really like is the concept of threading. Being able to spawn off “complex” tasks without choking the main thread is pretty cool. You could, for example, show a really smooth animation when you are loading a bunch of data in a separate thread. This can also complicate things though. You’ll have to manage those threads more or less yourself and may get into trouble not being able to oversee what the application is doing. Also, with something like LiveCycle Data Services you can load in large amounts of data really fast in a binary format that you don’t need to parse, which can eliminate one of the main reasons you would need threading. I’m sure some of you could think of 101 different ways to use threading though and that’s also why I said I really like the concept of threading in Silverlight.

I also like that a Silverlight application can directly communicate with the HTML document it is hosted on by simply setting a parameter. This allows you to get to the HTML DOM and JavaScript on the page, and enables very easy integration with AJAX.

Being able to code in either C# or VB.NET is also a great feature. Especially since these two languages are pretty familiar to people developing for the Windows platform. I’m not one of them but I found that C# is similar to ActionScript. Next to those languages you also have XAML which does more or less the same things as MXML. The basic concept is exactly the same but some seemingly simple tasks have been made very complex. And that brings me to “the bad”.

The bad
Code in XAML and C# is really verbose. The project we worked on during the training can be done in Flex with half the code. I intend to remake that same project in Flex just to show the difference. Like I said earlier, some seemingly simple tasks are unnecessarily verbose in Silverlight. Animating the rotation of an object is a good example. Because Silverlight objects don’t have a direct rotation property, the only way of doing this is by setting up a RenderTransform property.

So for Silverlight:
<Button>
<Button.RenderTransform>
<RotateTransform Angle="45"/>
</Button.RenderTransform>
</Button>

For Flex:
<Button rotation="45"/>

Data binding is also another good example. In Flex you can bind to a variable or object by using {}. This is exactly the same with in Silverlight but you also have to add the Binding keyword to the curly brackets even though curly brackets already mean that you are data binding. Some things are also inconsistent. Naming a control for instance can be done with the Name keyword but also with x:Name. Even the Expression apps are inconsistent with the code they deliver.

Styling controls is an absolute nightmare! I honestly think that this is going to be Silverlight’s Achilles’ heel! Let me explain… I can’t even count how many times people told me how good the designer/developer workflow is when creating Silverlight apps. That may be true when you only use the Expression tools to actually create your design… well… partially. Even though this is said to be roundtrip editing, it really isn’t (though at this time the Expression tools are still in beta). You’re supposed to be able to create a design in Expression Design, do little animations in Expression Blend, and code it all together with Visual Studio. If you keep that order, it’s all OK but as soon as you start adding code in Visual Studio and want to go back to Expression Design you are in trouble. More than once, the instructor had to comment out code in Visual Studio before actually being able to open it back up in Expression Design or Blend.

But let’s be honest. It’s a fact that designers work with tools such as Photoshop, Illustrator, and Fireworks and they’re not going to use the Expression tools any time soon. So adding standard design tools to the workflow is a must. To some extent, it is possible to import artwork from Photoshop or Illustrator in to Expression Design but that’s about it. Expression Design then “transforms” the artwork to XAML. In Expression Blend, you can then add states, transitions, and simple animations. This XAML can then be handed over to the Visual Studio developer. While with HTML and Flex it’s possible to separate design from content, in Silverlight this is not very obvious. There’s no CSS support, but you can make styles with “Resources”, which are similar to CSS but are pure XAML. Why Microsoft didn’t choose to have CSS support and decided to re-invent the wheel is unclear to me. Another thing that really annoys me about these Style Resources is that they’re not automatically applied. Say you’re making a style for a button. With CSS that means that all buttons automatically inherit that style but with the XAML Resources, you actually have to tell every single button that that style applies to it. And since these Style Resources are XAML code, you can use only one application to edit these Styles: Expression Blend.

Another thing that I really couldn’t grasp is the lack of HTML tag support in text fields. But there is a <Run> tag (which is basically a font tag) to set font colors and so on. Again… Why? There’s also no way of getting text styled with CSS files like you can with Flash/Flex.

The set of controls available in Silverlight is also limited. There’s no ProgressBar, ComboBox, or charting. The text field control also doesn’t have password support. But to be fair, Silverlight 2 is still in beta and we were told that Microsoft will be adding another six controls to the framework. We were told that MS keeps the number of controls to a strict minimum so that 3rd party developers can create and sell extra components. This brings me to another thing I need to point out. A Silverlight application is “compiled” as a XAP file, which is nothing more than a ZIP file. When you buy a component from 3rd party developer and add that to your application, then this component is completely exposed in your XAP file. It’s not obfuscated or encrypted. Anyone can open up that XAP-file and use that component that you paid for. Sure, you can also open up a SWF file but it’s a lot harder to get a component out of a SWF than it is to get it out of a XAP file.

The ugly
I know the Expression tools are still in beta but it has to be said that all the tools (including Visual Studio which is no longer in beta) felt extremely buggy and incomplete. We saw crashes and error screens more than once.

Over these three days, I got a strong feeling that Silverlight was created by people who don’t know anything about designers. My gut feeling is telling me they should just bin the Expression Studio and start all over again but this time hire some people with design experience — and they should probably hire people with Flash/Flex experience (even though it’s already so similar to Flex). These three days have really opened my eyes. It’s not as good as I imagined it (especially after all the hype and beta cycles) and I don’t see it getting much better before final release.

72 Comments

  1. I’ve been working with Silverlight on a few different projects for over 8 months now and I have to agree with Serge’s observations. The honest truth is that, while you can do many different things in Silverlight, it takes longer to do them, and often takes more KB. The workflow in particular is just plain slower.

    I built a few Silverlight 1 web apps and the complete LACK of controls was frustrating enough, but hearing that in 2.0, styling the ones finally included is difficult, well that is extremely worrisome to me.

    I like XAML. I think it’s straight forward and flexible, but again, it can get so large. The biggest problem that I’ve run into working with SL is that my designers are using Photoshop/Illustrator etc. Our company is not about to spend the money to train designers to use new design software when they’ve already invested time and money into software that is working. When we do a SL project I get to re-create designers art in XAML. Bitmap effects…OMG don’t get me started. We have some extremely talented designers, but when you give them instructions like keep it vector…it just doesn’t happen and SL’s lack of bitmap effects makes it extremely difficult to re-create complex designs without some XAML hacking (which I’m very good at now).

    The bottom line is Silverlight is flexible and powerful, but using it requires you invest more time, and when you relay that fact to the bean counters they’ll be telling you to find a way to make it cheaper and since there are technologies (not naming any one in particular) currently available that can do that, I just can’t see SL gaining the kind of momentum that people are talking about.

    (Of note: Microsoft is one of our biggest clients so I’m not anti-ms, just a realist.)

  2. you mention that they should hire some Flash/Flex devs. If you remember, they did cherry pic some Flash people back in the day. Manuel Clement and Samuel Wan.

  3. That’s right… I do remember Manuel en Sam but I’m not sure they are involved with Silverlight…

  4. I’ve not worked with SL, but this article confirms a lot of what I’ve both heard and thought by looking at code examples. I do find the comparison between SL and Flex a little odd (or confusing)? SL is a runtime and so is the Flash Player. Flex is a framework and so is .NET, right? and SL supports just a subset of that?

    Makes me wonder how this was presented?

    J

  5. I’m to tired to reply to this now, but you can expect a reply from me.
    I have to warn you… I hate ActionScript!

    Just a quicky

    The problem with Flash is that it targets designers
    and more than often designers think they are developers
    (of course the same can be said about developers thinking they
    are designers)

    What Silverlight gives you that Flash does not:

    – A consistent way for letting designers and developers work together
    – The ability to use your favorite programming language
    – The ability to use your knowledge and experience for things other than
    the web.

    I can use my Windows / Linux / MacOS skills to develop interactive
    rich internet applications using Silverlight… can’t do that with Flash…
    either you go action script / web / air or you don’t….

    But as I said, I’m to tired to really comment on this now…

  6. Oh oh oh and for me Silverlight… is no effor at all,
    in fact it takes away all the effort I had to put into UI development
    earlier … and I use the same set of skills to develop rich desktop
    applications using WPF and deploying them with ClickOnce.

    And… just so you don’t think I’m forgetting about MacOS and Linux,
    I can apply the same .NET skills to Mac OS and Linux applications using Mono.

    So I’m not stuck with some scripting language like ActionScript

    I promise to post a follow up at some point :-)

  7. @Jensa – Good point… I should have been more clear on that. I’m now thinking about how I can make that clearer.

    @TimothyP – Again… I wanted to share what I learned about Silverlight coming from a Flash/Flex background.

  8. Hi Serge ….

    Can we expect in the future the good (in silverlight) in Adobe Flash?

  9. @Saeed – I assume you mean threading? I have no idea but I will send your feature request to the Flash Player team.

  10. Mike Chambers

    @TimothyP I can apply the same .NET skills to Mac OS and Linux applications using Mono.

    I hear this all of the time from .net developers.

    Does this actually work, and does anyone actually do it?

    My experience with .net on mono is that it can be significantly different than .net on windows, and some things just flat out dont work. Plus, the install experience seemed to be very developer focused (i.e. I dont think I would want to deploy to end users with it).

    At least, this was my experience a couple of months ago.

    mike chambers

    [email protected]

  11. thanks for the post,
    this is just first step for Silverlight and Flash till now took many
    Silverlights next step is Adobes next two steps because they are mature platform
    I can not agree more that they need to hire real quality people with Flash background to help them achieve that (Microsoft)

    again, thanks for sharing the experience, I will try WPF but not Silverlight cause it’s too small box for web still

  12. Hi Serge,

    Just a few data points where SL truly shines just so we get a fully balanced review and not a corporate-policy influenced propaganda :)

    1. Integrated Development Environment (IDE) – This is HUGE. The fact that .NET developers do not have to switch back and forth between Visual Studio and Flex Builder cannot be underestimated. You cannot imagine how many .NET developers I have talked to that are absolutely disgusted by Flex Builder. And that is true, after coming from VS, is there anything to like about Flex Builder?? But to your defense Adobe doesn’t get .NET, so this is not something you will ever worry about.

    2. DataPush with Silverlight Beta 2. I’m surprised you have not mentioned that. In case you didn’t know that feature is available out of the box, for FREE. Yes, LCDS does that, but oops, guess we’ll have to mention the price point here.. is it still 20k/CPU??

    3. Web Services integration – can we see a show of hands of how many Flex developers actually got an enterprise-ready webservices-based application up and running AND in production? Hmm, probably Ebay comes to mind, is there anyone else? I do not think so. If you’re curious how well Flash SOAP stack works, just try a super simple C#/VB.NET web method that returns a System.Data.DataSet and see if you can consume that from Flex/Flash app. Have fun debugging, it will not work. As for web services stack implemented in SL, it is guaranteed to be well done.

    4. ADO.NET, LINQ integration. Does Adobe even know what LINQ is??? I highly recommend you look into it. There’s nothing like that in the Flex world, so that’s another one for SL.

    5. Community size. I think it is hard to argue that the army of developers in the .NET camp is about 100x of the headcount you get in the Flex world. As a result, the support and following you’re guaranteed to get with SL is by definition much better you’d get with Flex. Just look at flexcoders – a single-threaded discussion with 10,000 members. Can anyone follow what’s going on out there? Let’s compare it with SL forums now: http://silverlight.net/forums/ – you get nicely broken down discussion topics, thriving community, a dozen of component vendors, etc, etc.

    Finally, let’s not forget MS is just getting started with SL, I’d still give it some time before it becomes a super serious contender for Flex, but with the pace Adobe is moving, it is a good idea you took the class, perhaps the army of SL devs will grow by one soon. :)

  13. Jeff Muller

    Just a quick comment from an old database guy that is looking to learn the best new net technology.

    MS has based its’ business on copying other people’s ideas and designs, and then using marketing savvy and power to destroy the originators of the ideas and designs. Reading your posts it seems that SL is no different – it is a copy (and it seems a relatively weak one) of Flash.

    The big picture may be that MS can’t keep up with the leading edge of its’ technology because it based its’ business on copy/destroy from its’ inception, and that this will the seed of its’ slide into mediocrity.

  14. Serge, I sent this link to a local (Arizona) .NET user group to get their response to this. I’d like to know if your views were shaped by inept trainers or if everything you saw in the training was legit. Can you name the trainers?

    Also, Visual Studio, IMO, is the best code editor ever. It is too bad your experience wasn’t as good as mine has been. I say code editor because there are other areas it could grow but code editor vs code editor it is #1 in my book…bar none.

  15. Interesting notes, especially on the designer-developer relationship; I’m a bit of both, so I tend not to think about it.

    Anyway, I think Flash could learn a few things from Silverlight. My personal wish list:
    - multithreading: as I’m working on my chess game (www.flashchess3.com), when the computer thinks, everything in the interface is fronzen;
    - typed arrays: I understand that Flash10 will have a Vector class so it should be allright.
    - a 64bit int: I realize not many people will need it, but I want so much to implement bitboards in my chess :)
    - a decent IDE. Flash code view sucks; Flex is better but it can be so much more (the profiler is cool). I love Visual Studio; you really have to use the debugger to appreciate it… For Flash I’m using FDT, but I’d love to see its features in Flex.
    - better integration between Flex and Flash.

    Adobe is making some inroads with AIR (where MM failed with Central) and this will keep flash on top for years to come. BTW, what’s the market penetration for Silverlight? 1%? More?

  16. Ronny Karam

    Hi Serge,
    When you attend a training session for a competitive company about a competitive product, you’ll be carrying load of expectations/pre-thoughts/etc. even before the session starts.
    I’m a Flash developer that worked with .net before and now hates Microsoft’s business oriented & buggy technology. Still, I can’t give my opinion about a product that I’ve only tested for 3 days, which most of his tools are still in beta and which I have pre-judgments about it since I’ve been using a competitor’s product for quite a while.

    That’s my professional opinion.
    As for my opinion as an Adobe lover: “Flash forever”! :)

  17. Thanks for that Serge. Really, I’m actually meant to do a 3 day course sometime in the near future, but I think I’ve read enough to cancel it :D

  18. @Mark – This is far from “corporate-policy influenced propaganda”. These thoughts are my own. Yes, I do come from a Flash background but these are the things I learned and not what has been dictated by my employer. Thank you for your points though. LINQ is indeed pretty powerful and is indeed another big plus for SL.

    @John – The trainer was Shawn Wildermuth, who I understand is a well known member of the Silverlight community.

    @Gaspy – I agree… The code editor in Flash is not as good as it should be. For pure ActionScript projects, I agree that FDT is a really good solution. I am a big fan of FDT myself. The integration between Flash and Flex is already pretty good, I think. The Flex component kit for Flash is seriously underestimated.

    @Ronny – The course was pretty in-depth so I do feel I have a good base of the tools and the runtime. Also, it’s obvious that I did “play” with SL and it’s toolset before I did this course so it’s not only based on these 3 days.

  19. My thoughts on SL can be found in an email I’ve send to Steve Balmer. Yes I got a response.

    http://www.minorissues.be/2008/05/12/my-email-to-steve-balmer/

    In short
    - You can’t ignore existing tools
    - There’s a huge potential coming up making it possible to convert form/application developers into multimedia developers .. this is a huge base people!

    On the other hand, AIR is doing the same in the opposite direction .. equally interesting if you ask me!

  20. I have seen Flex performance issues over the last 3 days that threading is becoming a real issue. At least separating the thread from the UI is the begining. Processing asnyc events from threads would be the No. 1 reason I would look too SL.

  21. Michael Bohn

    “This is exactly the same with in Silverlight but you also have to add the Binding keyword to the curly brackets even though curly brackets already mean that you are data binding”

    That’s not quite correct. The curly brackets mean a “Markup Extension”, and not only Data Binding like in Flex. They are used to express things that are not expressible in XAML alone. For example, there is also the {StaticResource …}
    extension, to retrieve an object from the resource section. And you can of course define your own extensions.

    The advantage of this approach is, that you can pass additional parameters to the Binding (or any extension). For example you can specify a Two-Way Binding (which is not available in Flex 3), or add a Validator and Formatter.

  22. @Mark
    #1 agree with you here. There are definitely improvements that could be made to FlexBuilder here. Perhaps in the next release they will include a few more of the pluses from VS.
    #2 I think LCDS is cheaper now, and is still really just an enterprise service, but BlazeDS has certainly helped with just about everything else (except datapush as you mentioned)
    #3 So you are saying that Microsoft created something that makes it extremely difficult to use when you are *not* using a Microsoft product to access it…who would’ve thought :) Try consuming data from ColdFusion, Java, or PHP via AMF in Flex (and I would imagine in Silverlight, although I have not tried that) and you will see a company that tries to make it easily accessible for others, not more difficult. All of those server side languages make it very simple to create a webservice for external use also (and easy to consume).
    #4 never used it, but I’ll definitely have to check it out.
    #5 I think this goes back to the ColdFusion method here. I know that Adobe has forums, but I rarely use them. The bloggers have always been an amazing resource and I’m starting to find the same thing happening with Flex. There may be fewer resources, but I don’t think I’ve ever had an issue that hasn’t been resolved in a few hours (either on flexcoders or via a quick google search or blog post). (and now for my quick jab at SL) And because the Flex product is that much better than SilverLight, we don’t have as many problems :D

  23. @Mark
    (http://www.themidnightcoders.com/)

    1. Yes, VS is far superior to FB (for now). One of the things I think is interesting here however is that with the Flash platform, there are a wealth of alternatives (FDT, FlashDevelop, etc.) to support your personal preferences. Generally speaking, with MS, you’re developing the MS way on MS software and connecting to MS infrastructure. Clearly things will be more integrated when you control the entire stack, but you don’t have a lot of choices either.

    2. Having supported/defended your company many times, I’m kind of surprised to hear you take this pot-shot. BlazeDS provides data push (via HTTP channels) not only for free, but as open source. Because of the openness of the Flash platform, there are even other alternatives (Granite, Red5, Wowza, etc.) to many parts of the stack. You for one, making a business on the openness of the Flash platform, should appreciate that.

    3. I don’t think I’ve found too many successful enterprise applications using pure web services at all; especially outside of the MS stack. MS has clearly taken many liberties with the SOAP specification, and that in turn makes it very difficult to leverage from anything but MS technologies (IE anybody?). So, blame Adobe? To that end, we do try and accommodate anomalies – please feel free to contribute specific problems to the open Flex bug base, and feel free to contribute to the open source project with fixes. Good luck doing that with Microsoft.

    4. Yet another closed project from MS, on MS technologies, only for MS developers, yeah! To be fair, LINQ certainly look interesting – sounds like you have another potential product to add to your stable of offerings (smile). Or even better, contribute to the open source Flex project (or OSFlash) and help everybody.

    As for ADO.NET, let’s be clear that SL support (via Astoria) is still in beta. That’s a far cry from LCDS, which is actively used in enterprise deployments across the world by some of the largest companies in the world. And, yes, LCDS for data management is a commercial feature. I’m sure MS will give you Astoria for free to be used on all the MS investments (OS, RDBMS, tooling, etc.) that you’ll have to make first.

    And of course, once you get all that data back (from a beta technology), you’re going to put it in a beta SL2 DataGrid? Now what about cross client synchronization? Automated online/offline? Across operating system?

    5. Hands down, the MS community is substantially larger than the Flex community. Of course they’ve been at it (application developers) for about twenty years. Even one of Adobe’s oldest developer technologies, ColdFusion, has just turned thirteen (13).

    Personally, I think you’re mincing statistics. Are we talking SL developers? Then you’d be able to compare to Flash and Flex developers. Are you talking about .NET developers? That’s clearly not an equal comparison. If you’re going to stretch statistics that way, then we could claim every Ajax developer can build an Adobe AIR application – including ASP.NET Ajax developers. Are we talking about just RIA developers? Let’s not forget who created the term, and promoted the technologies for years before MS decided it mattered because the alternative technologies were eating away as OS dependency/revenue.

    In the end, I agree, SL is new, and MS will no doubt continue to make the required investment to rapidly evolve the features (at least on Windows). That’s the great thing about having them in the market quite frankly, because Adobe isn’t going to sit still either. Competition is a good thing for all the developers – especially ISV shops like yours.

    Kevin Hoyt
    Adobe Systems, Inc.

  24. I like Flex a lot, so I must say "hear, hear" to this:

    "Just look at flexcoders – a single-threaded discussion with 10,000 members. Can anyone follow what?s going on out there?"

    Even the forums on Adobe’s site suck. Take the 10 minutes required to divide it into logical categories instead of a single "General" category. Microsoft definitely has done things right on this count.

  25. Serge:

    [Disclaimer: I also work for Adobe. I state this for sake of transparency]

    Thanks for doing this. This is by far one of the most balanced and pragmatic comparisons I have read on the subject. It looks like the immaturity is really the main issue as there are not enough developers interacting with real clients, usrs to understand what features they need to support. Flash, OTOH, has a decode plus of feedback and optimization.

    What I see as the Archilles heal is lack of authoring tools for Mac. Most designer/developer types are on Mac and MS has to recognize this soon.

    Duane

  26. parley

    SilverLight not only fits right in the existing .Net solution stacks (Sql Server, ADO.net, WCF and so on), but also extends CLR out into the client side. There’s no need to hack on the lame javascript any more. C# (or any .Net language) on both sides makes it easy to develop and maintain future web apps. If that’s not enough, XAML unites both desktop and web developers together. Gone are the days that desktop skillset is different from that of web which forces a company to hire two different groups when trying to build both products. A .Net developer is able to switch back and forth with little effort. These things putting together makes SilverLight an offer hard to refuse, except to of course those MSFT haters who’re already firing "lock-in" or "agenda behind it" FUD on all cylinders.

  27. I hear a lot of big MS VS .NET community who give a lot to each others. Since I am digging into .NET for some bluetooth stuff and so on, I can say that community might be big, and there might be a lot of good things in OS, but usually if you search the web for precise questions, answers are missing or you can buy licenced product… I don’t have problem with that, it’s cool but it’s not like Flash community, in Flash community if you come first with something you share and get very big appriciation back from community.

    I really digg .NET stuff but communities and ideas behind Flash and .NET cannot be compared…

    also I am browsing from time to time Silverlight demos, and everytime I go there I get the feeling thats some of the weakest points of Silverlight still, animations, design, transitions and so on are not addictable at all. That is not a thing I judge a technology but clients are… I can say Linerider is good as in flash thou very cool ;

  28. Andrew

    The way I see things breaking down is

    .NET and JavaEE compete on the server for enterprise apps. Java won round one but .NET is gaining ground.

    Silverlight and Flex compete in the UI layer. Flex won round one but SL is gaining ground.

    MS will be a player for sure, since they will make the MS tech stack (.NET, C#, WPF, etc) work well together.

    Coming from JavaEE and JavaScript I found Flex / ActionScript to be well thought out framework and language. I like it. I certainly would like to see threads and a better IDE, but Flex builder is pretty solid, and I know eclipse so it’s seamless working on the client and server which is Java. I am sure SL is going to be sweet to. But I don’t know and MS techonologies so why learn now?

    Now JavaFX is throwing it’s hat in the ring. This is going to get interesting.

  29. Here’s a thought that occurs to me, what’s the point of this entire exercise? To prove one technology against another? If so we all lose. Establish the actual point of this conversation, and get back to the rest of us with a bit more detail analysis other than a ‘trial by 5mins of use’ approach (which I feel Serge has done, as it took me a year to fully grasp Flex’s true value proposition back in the day).

    We are into our first year of growth, I’m excited by Silverlight and ethos we are building around it. I love what we are doing in 2.0 and can see what we are up to beyond 2.0 and I’m confident we can deliver beyond folks expectations. I will say that 20,000+ folks are now subscribed to Silverlight.NET forums (in the first year that’s really exciting numbers). That’s 11,000 more people than Flex that have subscribed to dialogue more about Silverlight and trouble shoot their way to successful delivery. Last count Adobe provided is 9,000+ folks on Flex Coders after 2+ years?. Point is simple, we can all haggle over which features are better than the other, but the only way to win that kind of argument is if the other side agrees it’s opposite is right and I’d rather spend time working on the 20,000+ folks whom are keen to adopt but need more help (through feature enhancements, research etc).

    All I can see at the moment is 3 Adobe Staffers arguing with customers on their own forums about their technology having what appears to be a stronger feature set, I see no value other than the fact that Adobe are appearing to be concerned about Silverlight’s existence (by the mere fact that their Evangelism staff are taking time out of their busy touring schedules to learn about our beloved Silverlight).

    That’s great? I encourage our competitors to learn about our products and all the power to you. Me? Well my thoughts are simple, these arguments go nowhere, nothing gets achieved, egos get bruised and in the end 20,000+ folks keep the train running and it continues to grow. This isn’t about just technology adoption, it’s also about growing an entire ecosystem around the technology. This thread does no favors for Adobe, it just illustrates they have more to learn about evangelism.

    Be a student of software, not brands.


    Scott Barnes
    (Rich Platform Product Manager)
    Microsoft.

  30. @MikeChambers

    Hey,
    You can pack your .NET Apps for MacOS like native Apps.
    The users would have to install Mono (visual installer) and after
    that simply copy/paste the App bundle for your application to their hard drive.

    Easy enough if you ask me :-)

  31. @Scott Barnes – I actually also learned Flex in 3 days back in the day and I do feel that this was more than ‘trial by 5mins of use’ and again I already pointed out that I did already spend some time with SL before this course. However, I do intend to spend even more time with Silverlight during the summer. I tend to build a project that I will also build in Flex and publish both sources.

    I also want to emphasize that I did not start this as a “our community is bigger” discussion and it’s also not what this post is about (acutally only 3 comments talk about community sizes). I also want to point out that I did also talk about the good things about SL! And also want to point out (again) that this is what I learned coming from a Flash/Flex background. I see the fact that I was able to take time to do this course as a positive thing. I also take courses in other technologies as I want to make sure that my horizon is a broad as it can be.

    Thank you for comments… but you have missed the entire point of this post which has nothing to do with how big either communities are. It’s too bad you also missed the suggestions in the post. It sounds to me as if you only read the comments and not the article itself. I also found your comment on us having to learn more about evangelism a bit cheap and unprofessional. I had a reply on the tip of my tongue but decided to swallow it.

  32. @Serge

    The fact that XAML is so “verbose”:

    So for Silverlight:

    For Flex:

    Is because XAML isn’t limited to Silverlight, it’s not even limited to
    UI development. The same goes for databinding, yes it’s complex
    but that’s because of its power.

    I have tought about posting a follow up, but I’m in no position
    to show you the true power of XAML/WPF/SL, as I said before
    you will not and cannot fully appreciate XAML/WPF/SL until you
    have read Adam Nathan’s: Windows Presentation Foundation unleashed.

    As for code complexity…. the only time I deal with Flash/Flex/… is when
    designers have made their design prototype and don’t know how to actually implement the code. Designers design, developers develop.
    The problem with this is that as a developer we are then stuck with
    ActionScript… designers create problems and we have to fix them.

    At least with Silverlight, the developers can re-use their knowledge
    and do so in whatever language they want.

    But who am I… just go and read the book, do it on the toilet if you have to
    but read it, then post a follow up. Your view on the subject after reading the book should be really interesting, which doesn’t mean that you’ll start loving SL all of a sudden, but it might give you some more insight.

  33. @Timothy – I’m sure that if you come from a Windows development background, Silverlight is a great thing and you don’t have to learn anything new. But I don’t have that background.

  34. davidF

    for my 2 cents worth, flex really needs a massive boost with its ide, AS3 has to up its abilities and flashplayer needs to move into the 21st century of multithreading and 64bit for adobe to show it is mature enough to combat the real world of software development. For the first 6 months I used flex it was fun then once I started real world development things started falling apart flash/flex/as3 is a shocker when trying to manage a lot of resources, take a simple app embed a 5mbyte xml file into it and watch everything fall apart, 20 minutes to compile 10000 lines of code against say delphi’s 2 minutes for 500000 lines of code ?, I lose 10% of my day watching flex fail to complete a compile due to some inane reason then re-compile successfully after a project ‘clean’ which takes longer than a build .
    There is a lot said about MS not understanding designers, trouble is Adobe doesn’t yet understand developers coining the phrase RIA is not enough , the key word in RIA is Application and that is purely the developers domain. A pretty interface is nothing more without that functionality behind it. Am I a MS person ? NO!!! , am I bashing Adobe ? yes, becuase they promised a full designer/developer environment and I am still waiting.

    I think silverlight will be extremely successful considering who is behind it and the army of legacy developers that can rapidly move into it.

    I will stick with flex as that is the path I have chosen as on the surface it doesoffer better integration for designer/developers but I am wondering when the delivery of a 21st development environment might happen. I just hope Flex 4 is 100 times better than flex 3

  35. Hi Serge,

    I don’t think I did miss the point, as the question really still isn’t answered what is your point to this post?

    Are you looking to provide the Adobe Community a gap analysis of where Flex vs Silverlight stands today? Are you looking to Evangelise Silverlight via Adobe payroll? Are you looking to create the illusion that Silverlight isn’t ready for real adoption?

    If you’re providing a story around how to go from Silverlight to Flex, then that I can understand and all the best. If you’re looking to create more debates around Silverlight vs Flex hoping that Flex will win out in the end, then you’re kind of assuming Microsoft customers are living in a mass delusion that their current investments in both software and career aren’t actually worth it and they should not only learn a new language but ditch Visual Studio / Expression Studio for Flex Builder and possibly thermo when it arrives?

    Furthermore the fact you’re now stating outloud that you’re learning Silverlight and will continue to do so whilst at the same time provide examples along the way between them both, could very well indicate that you for see Silverlight as being a strong competiting technology against Flex in the near future? Which to my thinking is doing us more help than harm as you’re essentially validating our growth?

    If that’s Evangelism at Adobe then I’m sorry I feel for the customers who are probably struggling to this day around where to take Flex (like some of the comments inline). Right now you have 9,000+ folks on FlexCoders all screaming out for help and guidance around mostly best practices, these are your early adopters and before you start casting stones towards Silverlight, I suggest you maybe stabalize your own backyard?

    As that’s what we’re keen to do here at Microsoft, ensure those whom do adopt Silverlight don’t develop what we call “buyers remorse”. We aren’t perfect but we’ll keep chasing perfection.

    All the best, it was an interesting read though Serge and I did take onboard some of your feedback and thank you for helping shape Silverlight’s composition.

    I didn’t mind this post to be openly honest! :) so do take this as not having any ill will or anything like that, just slightly confused is all?


    Scott Barnes
    (Rich Platform Product Manager)
    Microsoft.

  36. Neat Tisca

    “Hi, I’m a Flex.”
    “And I’m a SilverLight.”

    Keep the good work, guys.

  37. .

    I’m amazed by how much concerned attention, as well as impassioned refutation, Serge’s personal observations have managed to attract here…. ;-)

    Guys, just go build something great! This means more than telling other people how wrong they are.

    jd/adobe

  38. davidF

    @ jd, I would love to create something great, trouble is the way flex is at the moment I can create great ‘Applets’ it would be really nice to be able to create great applications. I just hope my trust in Adobe coming up with the goods isn’t misplaced.

  39. @TimothyP:

    The concept of already-.NET developers reusing their skills in Silverlight relies on the presumption that server-side developers also do client-side work. In some cases, that’s how it’s done, but in many cases we have server-side developers working on that massive server-side architecture and providing an interface, which UI developers then use. The UI expertise is an entirely different on.

    So, while I do think that it’s a valid point that the .NET languages in SL provide a familiar environment for current developers, I also think that we should look at it with some perspective.

  40. Joe Nismet

    I see this time and time again. Serge went to a training seminar and offered a basic “What I saw, What I learned, How I feel” post on his blog. All of this information given with HIS background experience, etc. He has pointed out MORE THAN ONCE that his background is the Adobe Family of tools.

    Immediately – the MS folks come out of the woodwork assuming that Serge is “poking” the new MS Holy Grail – Silverlight. Well HERE’S THE WAKE UP CALL:

    I am a MS Developer and have been for MANY years. I happen to code in a MULTITUDE of languages (My Resume currently lists 10 that I remain strong in).

    @Serge – Great job with your post. In an effort to not bruise the feelings of MS Folks – mebbe next time you should entitle it — Silverlight: A Flash Developer’s Experience. Kind of like in the old days when I had the “Wordstar Survivors Guide for Word Perfect”.

    @ScottB – While you say there’s no ill will – I’ll leave it at that. Suffice it to say that anyone reading these posts sees the typical “bruised ego” verbage that comes out of MS everytime they see something they don’t like about one of their products. My advice? Suck it up. Get over yourself and your MS high horse. Bottom line: These are the folks that you are going to have to convince to use your product.

    I have been writing code for almost 30 years (yes I go back to writing both machine code and assembler) and have watched MS evolve as a company, product line, etc. My first thought when I start a new project? What is/are the best tool(s) for the job given my background. What will make me the most productive? What will provide the least overhead?

    Silverlight is a BABY yet. It has a long, LONG way to go to catch up to it’s “older cousins”. So it’s not perfect. No suprise. Flash/Flex/Air – none of these are perfect either. Every language/application/etc has it’s set of flaws. If it didn’t – then why would I upgrade???

    Sorry for the soapbox folks – I just get tired of seeing MS representatives spouting their “MS IS PERFECT” mantras anytime someone has something bad to say about one of their products.

    To be clear – I do NOT work for Adobe. I do NOT work for Microsoft. I do not work for Borland. I do not work for Oracle. I do not work for any competing manufacturer of any kind. I am “Joe Developer”. In the end, it’s folks like ME that will decide which technology survives and which dies – simply by our choices.

  41. Ethan Estes

    I have to say I notice MS cheerleaders like Barnes love to yap about the install developer base out there and how it will win out. What I don’t get is, that kind of talk sounds like just trying to hold onto their already existing customers who have sunk $$$$ into the MS stack. How does that translate into crushing flash? They never discuss how this new solution can work or is even worth thinking about if your not in the MS stack shop already. What’s the value to new dev shops that will grow their user base-”Please throw out everything you have and send us a big check ?” Not something I want to bring to purchasing. Adobe stack is more flexible with a variety of stacks.

    The expression tool has along way to go. That thing is so freakin cludgy. I kinda think they should hire Apple to improve the whole UI. Also, how they think giving a purchaser of blend a minimal set of components, so they can then spend MORE money on 3rd party stuff, is a benefit to the purchaser is beyond me! But in the end it seems that they are on a “Good enough to not lose our current customers” plan.

    In the end MS seems focused on coming via developers while Adobe is coming from the artists(and some devs ie CF). So far in my view Adobe has made more ground with their open source efforts, very open beta efforts, and eclipse based work, etc.

  42. Weyert de Boer

    I have to agree that the Flex Builder IDE is not very usable when you compare it to Visual Studio. The editor features that are offered in Flex Builder and Flash are just a bit said. The code formatting in Flash haven’t been changed in ages, and the CodeInsight is a bit poor. I think it would be nice concentrate more on the such functions in the next version of Flex Builder. My opinion is that this is still the main expect of Flex Builder.

    I am currently working on a project which gets written in Flex/AIR, it’s a desktop application and it has some limitations in the menu support and such. A bit said, you only had to look at XCode, Visual Studio or Kylix/Delphi to come up with some functionality.

    One of the reasons why I am using AIR for it, is that I wanted to have it running under MacOSX. This is currently still a bit painful under Mono. The main problem is that WPF is not yet available, but also that some of the drawing functions in .NET aren’t available on other platforms. But that’s because those aren’t implemented in the library used by Mono for the drawing (I think its using Cairo). Maybe Microsoft should help the Cairo open-source project :)

  43. Scott:

    Uhhhh – I think Serge was very clear in his introductory paragraph. What is good about Silverlight, what is bad etc… from a Flex Developer point of view. THat is pretty simple.

    duane

  44. Ryan Bell

    I’m not sure exactly what was meant by the poster who mentioned not being able to make SOAP services work in Flex, but I’m currently developing a Flex app that interfaces with a .NET-based web service for virtually all its data. There are things to be aware of and work around, but it’s certainly functional.

    I will admit to being ignorant about Silverlight at this point — my biggest question as a Flex dev is whether it offers the kind of open code base that Flex does. I ask this less as a philosophical matter than a practical one. I’ve learned a ton just by highlighting a reference to a framework component and hitting F3 in Flex Builder. Boom – you can tear the component apart and find out how it works because all the code is there. Add to that the many open-source frameworks available like Degrafa, Cairngorm, FlexLib, OpenFlux, Away3D, Prana, etc and there are so many opportunities to learn by looking at what really smart people have created. Obviously Silverlight is newer so there’s been less chance to develop this kind of stuff; the big question is whether Microsoft is taking steps to create this kind of community or whether they have their sights set more on an ecosystem like Windows where most tools are closed source and cost $$.

    Eclipse is a pig but the plugin architecture is nice. Is there a free plugin for VisualStudio that will integrate it with an SVN repository, like Subclipse does for Flex Builder?

  45. For what it’s worth… my experience with MS-centric forums is that the well-meaning inhabitants fall into one of two distinct categories — those who drank the Koolaid and believe they can develop software because they can copy and paste some VBA to make an Excel field perform some simple business logic, and those who write non-blocking multi-threaded code whether they have to or not simply as a matter of course. And again, in my experience, the former outnumber the latter ten-to-one (at least), and sometimes spotting the difference between the two can be challenging (until I try to do something with the code and either find it doesn’t work (the former group) or is doing something really tricksy (the latter)).

    Microsoft has convinced the average corporate lemming that it’s way is the only good way, and everyone else is wrong because Microsoft says so. Just as nine-out-of-ten .NET forum participants what companies make relational databases that may be accessed using SQL. I’d bet a twelve-ounce cola that nine-out-of-ten responses will be, simply, Microsoft, without any indication that any other company might possibly offer such a product (ahem, um, say, Oracle?).

    Ask those same folks whether SharePoint Server enables wide-scope enterprise workflows, and I’ll bet you nine out of ten will, when they blink the glaze off their eyes, reply, “Sure, SharePoint is a wiki.” Not the answer I would look for from someone offering advice on, in this case, business process management. And realistically? I gotta believe it kinda might call into question just about anything else they might say.

    The “we know how to do everything better” has to stop, Microsoft. The world is moving in the direction of subtle, yet substantive differentiation and personalization within a greater context of homogenization — NOT the other way around.

    I’d have to bet that Silverlight would kick Flex’s ass if it was created with the same core strategic objectives and ideals in mind. Why? Because Microsoft has at least a couple more devs to throw at the problem, at least a couple more bucks to market the solution, and at least a couple more media opportunities at which they can claim victory (deserved or not). And, because Microsoft intentionally and explicitly seeks to derive profit from mythical claims lacking little if any practical basis for most people.

    At work, I have had to become intimately acquainted with SQL Server, and I gotta say, I don’t see a lot to complain about. Then again, I don’t write my shopping lists in TSQL either, so I may be missing something. SQL Server provides an awful lot of power — power I would love to use. Unfortunately, the barrier-to-entry is sufficiently high that I would simply rather forego the power than brave the hassles.

    You see, Microsoft, I’m a software developer, I’m NOT a Microsoft developer. As a result, I prefer to work with companies that recognize the value, the branding opportunity, is not in nitpicky little things like whether CSS or some other no-substantive-advantage style description language is used — the value to the bottom line is in sales of corporate server suites (and, arguably productivity desktop apps). God help us all — every market Microsoft enters has to receive the Microsoft Makeover. Sometimes it works (Visual Studio, the IDE to beat), and sometimes it fails (SharePoint, the tool to make everything into a list or an Office document) — and seemingly without reason.

    And some people are ok with that. At the ESRI Developer Summit back in May, I found myself at a luncheon table with a number of commercial developers and a couple ESRI developers. The subject of the new ArcGIS Server API for Flex came up, and the ESRI developer with all the .NET buttons on his shirt started sniggering under his breath. So I asked the tough question. What strategy would he offer for delivering easy-to-develop interactive GIS solutions to unsophisticated end users? His response was that he was content to wait for the Silverlight API, despite the fact that at that time (and perhaps even now), ESRI has not even moved it from the wish-list to the to-do list. In the meantime, he plans to continue deploying Windows-only apps that rely on .NET, JScript, and Ajax in IE.

    Note to GIS developers: GIS market-standing domination opportunity with Flex :).

    Thankfully Adobe recognizes that I may, in fact, have a preference for this or that. And that I may, in fact, not want to be forced to adopt entirely new frameworks and APIs every couple years simply to continue developing applications for the server products my employer has paid tens of thousands (hundreds?) of dollars for. [Note: The Gumbo stuff looks pretty cool, and although Adobe's track-record with backwards compatibility in Flash Player speaks for itself, I do get just a teeny bit nervous at the thought.]

    All that said, I’m actually quite pleased Serge chose to write this post — for the simple fact that it has provided an opportunity for a wide variety of users to complain loudly about the inability for Flex-centric IDEs to compete against .NET (and accordingly, Silverlight) IDEs. Expression isn’t the one to strive for dominance over… Visual Studio is.

    In the corporate context, “nitpicky little things” like ease of use in development IDEs really becomes a critical business case issue. Similarly, bad documentation masquerading as Very Complete and Useful™ documentation will beat terse, but accurate or hard-to-navigate documentation more often than not… especially when those with purchasing-decision power wouldn’t understand either. THAT is the corporate world within which Adobe must compete. A world where rivers of pabulum run wild through fields of ignorance, and rainbows of false confidence appear daily and on-demand.

    In fact, I’d have to say that whether Silverlight ends up ruling the world or not, I’m seriously not interesting in hassling my way through another Microsoft technology framework and API. But that doesn’t mean that Adobe shouldn’t be scared shitless that I might, and do everything it can to make and keep me happy.

    Competition: good. With that in mind, go Silverlight, go! ;)

  46. Thanks Serge for showing us the gap between Flex & Silverlight! Microsoft could have built something like Silverlight +10 years ago but they decided that the Windows platform had to be the only platform… Just a wrong decision back then and now they have to catch up. The thing that worries me (as a Flex AND .NET back-end developer) is the lack of third party component development for Flex. I have the impression that there are already more Silverlight 3rd party component developers than Flex 3rd party component developers…

  47. Wow When I read Scott Barnes comments I feel even worse about Microsoft than I did before. Seems that they are really shitting their pants because they realize that it`s not so easy to take some bucks and copy a good technology.
    I mean “9,000+ folks on FlexCoders all screaming out for help…”. Aha that`s how Microsoft talks about a constructive community that helps each other.
    Ok I`m sure that it looks strange to them because they are more used to a community that first writes consulting bills before giving answers but…

    If he critisizes Evangelism at Adobe he must be crazy – or just green with envy. I suggest this article: http://bits.samiq.net/2008/07/tech-evangelists-and-how-adobe-has-got.html
    At the otherhand evangelism at Microsoft is done the same way they do their software. Look at a good concept (AIR tour) and COPY it (the code trip). Just lame!

    I just feel bad now that I have supported Windows for so long – glad I switched to Apple 2 months ago ;-)

    Sorry Serge that this informative post turned into such a stupid flame war but some companies seem to have no other way to do evangelism ;-)

  48. Jerino

    @Benz. So you think MS copies Adobe’s Flash, huh? I didn’t know they copy multithreading support from Flash. I can’t find it in the current Flash or the feature list of next version. Maybe you are smart enough to show me where it is. LOL!! ***Edited. Everyone is entitled to his opinion Jerino but please try to keep it civilized next time.***

  49. jerkforce9

    ” were told that MS keeps the number of controls to a strict minimum so that 3rd party developers can create and sell extra components”

    Thats just selling you a shit sandwich and pretending its a good thing

Trackbacks/Pingbacks

  1. Dreams & Creations - Random Thoughts » Blog Archive » Silverlight: The good, the bad and the ugly by Serge Jespers - [...] Silverlight: The good, the bad and the ugly by Serge Jespers. [...]
  2. An Adobe Evangelist’s Day out at a Silverlight Training « FLEXing My Muscle - [...] He’s written a blog post that he calls Silverlight: The good, the bad and the ugly [...]
  3. Steven Verbruggen - Excellent Silverlight review by @sjespers - http://tinyurl.com/5oyt5z
  4. phenotypical &raquo; Blog Archive &raquo; Flex Kontra Silverlight - [...] Adobe evangélista, Serge Jespers, három napos Microsoft Silverlight képzésben vett részt, és elfogulatlanul és figyelmesen hasonlítja össze a két ...
  5. Silverlight: The good, the bad and the ugly | Rich Internet Applications - [...] Read His article. [...]
  6. Silverlight: The good, the bad and the ugly | Good Times & Happy Days - [...] A quick review of Microsoft’s silverlight platform from a flex evangelist - http://www.webkitchen.be/2008/07/17/silverlight-the-good-the-bad-and-the-ugly/ [...]
  7. Silverlight - Why bother? - DesignersTalk - [...] - Why bother? Silverlight: The good, the bad and the ugly | Serge Jespers ...
  8. Ajaxian » An Adobe evangelist gives his opinion on Silverlight - [...] was said by Joe Nismet on the Serge Jespers thread that discussed the good, the bad, and the ugly ...
  9. martins privates blog : » Silverlight vs. Flash - [...] Der Artikel zu seinen Erfahrungen fällt nicht sehr positiv für Silverlight aus:  “Silverlight: The good, the bad and the ...
  10. Eran Kampf - shared: Silverlight: The good, the bad and the ugly | Serge Jespers http://tinyurl.com/5oyt5z
  11. Le Touilleur Express » Adobe Flex : des liens pour toi, public - [...] blog de Serge Jesper http://www.webkitchen.be/ Ce blog contient d’excellents articles, dont une comparaison entre Flex et Microsoft Silverlight. Serge ...
  12. Silverlight: The good, the bad and the ugly « Rich Internet Applications - [...] Source [...]
  13. Silverlight; O bom, o mau e o horrivel! | TSW - That Should Work - [...] Fala sobre alguns aspectos interessantes sobre a plataforma depois de passar 3 dias com as mãos no Silverlight, (junto ...
  14. The Good, Bad and Ugly of Silveright Ignites RIA Discussion | ProgrammerFish - [...] example, a recent blog post by Adobe’s platform evangelist Serge Jespers, comparing Flex and Silverlight, became the flash point ...
  15. Andrew Shorten » Quiet week at Microsoft? Let’s talk about Adobe… - [...] least when we compare and contrast competing technologies we try do so with integrity, by comparing current versions and ...
  16. Flash vs Silverlight : Despre Adobe Romania - [...] ca lucreaza la Adobe, si ca este un expert Flash (ca sa nu riste un flame inutil). Postul se ...
  17. Martin Kwok - Webkitchen.be on Silverlight - http://bit.ly/1Ubd2