Thursday, September 15, 2011

If Silverlight is Dead...

Once again speculation and worry has developers around the world biting their fingers and lamenting the end of a new era. It almost seems developers want to stick a fork in their Silverlight development because so many are latching onto the hype wagon, calling .NET "legacy" and refusing to see the bigger picture. Microsoft announces a new run-time called "Metro" that is not based on .NET, and suddenly .NET is dead — even though anyone can download the bits for the new operating system, install it, and see for themselves that .NET is alive and well. There happen to be two modes for the application, one in a new "Metro" environment and one in a more "desktop" environment. Microsoft's own Visual Studio is NOT a Metro app so I don't buy the line that this is just a staged coup d'etat. Microsoft announces that there are going to be two version of Internet Explorer: a "Metro" version with no plug-ins, and a desktop version that supports them. I downloaded Silverlight, installed it, and even loaded our Silverlight tablet Rooms to Go Application. It installed fine, appeared on the start menu for Windows 8 and launched without an issue ... but the headlines are reading "Microsoft abandons plug-ins."

First, let me say that I believe Silverlight is alive and well. I'm not saying that because I'm writing a book. People who know me understand I don't get emotionally invested in projects and try to force something to happen when it's not meant to be. I'm not basing this on mere speculation. "What if" doesn't buy me anything. Don't get wrong: I know "what if" is real because it tumbles stocks and cancels contracts, so it does have an impact, but instead of adding to the hysteria I prefer to look at the facts. I know that Windows 8 is not going to be the de facto operating system over night. I know that even when it does, I will be able to build and deploy Silverlight applications to it. I know customers will still have applications to support. I also know I work on a lot of Silverlight applications that simply won't work with the new "Metro" interface and require a more immersive UI and model, and that the guidelines for Metro will probably force those to be written in a traditional stack anyway. I know that a new version of Silverlight is coming out at the end of the year if Microsoft makes their drop target, and I know companies have already begun developing applications that take advantage of its features. But just in case the world is really ending and .NET, Silverlight, and all of those other technologies are truly legacy as of today, what will really happen? I asked my followers on Twitter just what it is that would be missing, and here's what I found out:

Multi-platform and OSX Support

Let's be real here. The only "real" multi-platform support Silverlight has right now is between the Mac OSX and Windows. There is a fledgling presence on Linux but that's hasn't impacted any deals that I'm aware of. The cross-browser story is better because between the two platforms, there is solid compatibility across FireFox, Chrome, Internet Explorer, and Safari. I believe this is a very valid point, as I've done many projects where the customer was most interested in the fact that Silverlight could easily target both platforms with one maintained code base. Of course, the original dream was for this reach to be extended but those hopes were largely dashed by the surge in popularity of the iPad that refused to run the plug-in. While this is a very important aspect of Silverlight, I don't buy that Windows 8 impacts this at all. Windows 8 is an operating system that will run new applications and boasts a new version of a web browser. It also runs the traditional browser and we've confirmed it fully supports Silverlight. So what is missing? The changes to Windows 8 don't remove the ability to drop Silverlight applications on to Mac or existing Windows machines, let alone the next version. It seems the only thing that could negatively impact this point would be lack of features (i.e. I'm missing something that I was expecting to come in a future version) or simply self-fulfilling prophecy, i.e. developers complain so much about it going away that people believe them and pull the plug.

Deployment and web-based Xaml Delivery

This is another sweet spot for Silverlight. The deployment strategy is insanely simple, and many large corporations embrace the easy of installation. This is a double-edged sword however, because for every shop that enjoys the fact that users can navigate to a web page and download the latest version of their application, there is another shop with complicated security policies that must make significant changes to their infrastructure in order to allow the plugin and make Silverlight applications available to employees. This really gets back to the traditional decisions used to drive technology and I don't see how Silverlight is really the primary ingredient. If you want to reach Macs and Windows machines, you will still have that option. If you need a different type of reach or want to take advantage of new innovations, the decision is the same it has always been: either build specific to the platforms you are targeting, with the trade-off that you must now have several teams and versions of the product but it provides a seamless, native experience, or compromise by using a technology like HTML5. That same trade-off existed with the previous version of HTML, it's just that Silverlight development was superior in many cases. I still see cases where HTML5 development is too painful compared to Silverlight, but what it were actually easier to build and deploy HTML5 apps with the same featureset as the Silverlight version? Why on earth would you even want to stick with Silverlight in that scenario?

Community

When I was younger and programmed the Commodore 64, there was a great Commodore community in the St. Petersburg, Florida area. We'd meet up, show each other how to crack open the bread box and solder the little red RadioShack reset button, then swap assembly snippets and chat about the latest VIC chip register hack. When the Commodore began to wane in popularity, people moved onto other platforms and built community around those. Ironically, there is still a strong, growing Commodore 64 community. I'm pretty sure community is more about the individuals in the community than the technology that drives it. Silverlight has a great community. If Silverlight goes away, that community will evolve. (OK, so there are always one or two who can't move on and are still stuck on Information Society breaking up and refuse to program on anything other than an Amiga).

Income

This is like community. First, let me say I know the financial impact of decisions is very real. Speculation about technology causes contracts to get canceled and people to lose jobs. However, if you believe your income is based on the success of Silverlight you are making a very, very big mistake. I remember when I received my fitness and sports nutrition certifications so I could coach people to lose weight. Many of the other "graduates" felt they should research what the pay ranges for trainers were, start at the lowest rate and work their way up. I felt like I should get paid what I was worth, not what the average income was, and had some success working with people so I started at the high end of the range and built a practice around that. My income wasn't based on the latest diet fad or exercise scam, it was based on results. When people lost weight and kept it off, they told others, and my practice grew. It was the value of my service that determined my rates, not industry averages or trends. Software development is the same way. Skilled developers provide value, the customer perceives that value, and they continue to deliver the best possible solutions based on the right technology for the job. If that technology changes, they change with it. Of course, if you want to focus all of your energy on complaining about how horrible it is that Microsoft shifts their strategies and let everyone know how much time and money you invested in learning dead technologies, you're welcome to. Complain away. The people I know who are successful in this industry move on. I'm not saying it's a good thing when you find a contract canceled because of a shift in technology, I'm saying you can either focus on the one that got away or figure out how to make sure it doesn't happen with the next one. Your choice.

P/Invoke

Really? "I don't want Silverlight to go away because it makes sense to run an abstraction layer dependent on a browser so I can go through another abstraction layer to talk back to native code." I just don't get it — is p/Invoke a vaid reason to worry about Silverlight's future? There's no equivalent on Mac OSX so you aren't doing it for cross platform. I'm not sure why you're doing it, really. I like programming in Silverlight: it's fast and it's easy, and p/Invoke opens up options. With the new development platform I can skip the p/Invoke, call the WinRT layer directly and save myself the overhead of importing DLLs and creating obscure structures or learning about how to marshal. To me this one just says, "If you're going heavy p/Invoke maybe it makes sense to look at Visual Studio 2011 and native applications instead."

C# Web App

I don't agree with this one at all. If you are bulding a web site, I think going with the web technologies is key - if I want an application, I'll build it. If I want a rich web site, I'll build it — but different approaches and different tools. Rich web applications still have nuances like page navigation, browser back buttons, and compability that make them different than applications. When I write Silverlight, I'm not writing a web application. I'm writing an application that is easily delivered over the web. That's why I don't use the navigation framework, because I don't think customers are used to navigating desktop applications using URLs. So if it's a web site I want to build and I want to use C#, why not MVC instead? If it's an application, let me use C# by all means ... and as I mentioned above, I may just lose the ease of deploying it over the web. Oh, by the way, did you notice that MVC 4 preview was released? Weird: it's not written in Metro, doesn't create Metro applications, yet Microsoft is still developing it and I don't hear people crying that MVC is dead.

Line of Business Applications

One key thing I see most people missing is that Windows 8 is two separate, distinct systems. Just launch the Visual Studio 2011 to see what I mean. That is not a Metro application. I like Metro, it works great on my phone and think it is the right way to build tablet-based applications, but there are just some things like development environments that don't and won't make sense. If you build for Metro you MUST follow the rules of the sand box, and you are limited. If you jump outside of that, it's back to the traditional stack. So I don't see this shifting gears. Personally the reason why I like Silverlight for line of business applications is because of Xaml and C#. I don't see that changing. I've converted a few applications to Windows 8 as well as walked through the examples and the gap is not huge. It's there, but not huge.

Bottom Line

I see myself having a choice. If I want to develop line of business applications that run on Mac OSX and are delivered over the web, I can develop Silverlight 5 applications. Regardless of whether someone labels that "legacy" it will be supported through 2020 (when the HTML5 spec will finally get ratified) and it will run on my target environments. If I'm building a rich, interactive line of business application, I'm going to want it in that environment. If I'm looking for a user-friendly, touch-first tablet interface, Metro doesn't change things for me. Today without Windows 8 my options are HTML5 or writing native iOS, Java, and Silverlight for Windows. With Windows 8, those options simply shift to HTML or native iOs, Java, and XAML/C#/WinRT. For many years to come, most of my customers will still be on Windows 7 and even Windows XP so guess what: Silverlight and WPF will still be our best options.

Silverlight development will be alive and strong, with official support for at least a decade even if no new version is in the pipeline, and longer if there is one. Even if it is the last version, though, as I'm writing my book I see that 90% of the topics covered are going to be the relevant to developing in the new Windows 8 runtime. Here's something that won't come as a surprise to seasoned developers: even if it does go away, there is no way it will ever happen overnight. As long as there is speculation, it's still around. When there is no more speculation, i.e. we know for a fact there is no vNext, there will be plenty of time to transition.

What's my point? My point is this: there are always people who are going to shout that the sky is falling and the world is coming to an end and air all of their woes to the world. The reality is we all have the same hours in the day and we can do with them as we choose. While I've been accused of being a blind, passionate follower of Silverlight for my optimism and enthusaism, I think they've got it wrong. I'm just optimistic and enthusiastic in spite of Silverlight. If it goes away I will adapt and continue to provide value where I can because at the end of the day I'm a developer and Silverlight is a tool in my arsenal. To me, moaning, whining, and complaining is a waste of time. If something's broke, it isn't going to fix itself. I'd like to see more posts on solutions and options moving forward rather than "Hey, I've got a flat, so let's sit on the side of the road, point at it and talk about all of the things that went wrong with my day."

That's my opinion, and not necessarily the opinion of my employer, and I'm sticking to it. What are your thoughts? Please sound off with comments below.

Jeremy Likness

66 comments:

  1. When I started reading all the hubub about Silverlight being dead just because there was an HTML5/js option - I was thinking WTF? They really have nothing to do with eachother. Some Dilbertesque PHB read that Microsoft is promoting something new and misread "oh no, I just invested in Silverlight" and the whole world goes nuts.

    Jeremy - Thank you for echoing all of our thoughts in a very constructive manner and bringing some sanity back to the table.

    ReplyDelete
  2. Thank god, another voice of reason. I'm not a Silverlight dev. or fanboy, I'm a web developer. I'm tired of the bitching and moaning from this crowd, ".Net is dead", "Silverlight is legacy", etc... and it's all a bunch of unfounded crap.

    At the end of the day, if any one tech disappeared, there are still a slew of techs to take it's place. Learn, retool and move on. While I like asp.net/.net mvc, I'm not afraid to dig in to php, rails or another technology. At the end of the day, I'm a developer, and I'm going to write code, that displays stuff on your screen. The tools getting it there are somewhat secondary. (right tool for the job)

    It's not like these are the pre-internet days anymore. Learning about different technologies is just a click away.

    ReplyDelete
  3. I love this opinion post and think it sums things up nicely.

    ReplyDelete
  4. I definitely see a big shift in added support for HTML/Javascript, but with all the platforms and devices its nothing that shouldnt happen anyway. Silverlight was clearly not going to be a true cross platform without the support of other large companies in the relative markets.

    Its obvious that from the last few days that .NET and Silverlight are not anywhere near dead. There is no newer technology so it not old. You can still make silverlight apps for web/phone/tablet/windows/mac, so aside from some features its really not less capable. I think more than anything people are resistant to the new html support because they feel it makes their skill set less relevant.

    I like the added support for Jacascript/HTML in visual studio and blend because it makes it less painful to use those tools and languages. It also makes my life as a 'microsoft' developer easier because with the added support it is now easier to make cross platform apps/sites for osx/android if I have a need for that. If anything thats a plus in my book. I think people might have more reason to be scared if Microsoft was abandoning C++, C# and VB in favor of objective C, then you might have something to complain about :)

    "I still see cases where HTML5 development is too painful compared to Silverlight, but what it were actually easier to build and deploy HTML5 apps with the same featureset as the Silverlight version? Why on earth would you even want to stick with Silverlight in that scenario? "

    I think this is something people are scared of because the technology they invested so much time in they feel wasted because so many scenarios can now be done much easier with html/script instead of silverlight and their competition just went up. This however while true is also not the right outlook to have. People that limit themselves to one language or set of tools will always complain and have to live ith themselves for choosing not to grow or find the positives in change. I have noticed that many developers like to be active in only 1 language at a time and resist when they have to either learn another and move on or deal with another language or tool while currently using another. Its obvious that nothing is dead, like Silverlight, so there is no reason for any of these people to 'freak out' other than being self concious about their own skill set.

    "I'm just optimistic and enthusiastic in spite of Silverlight."

    This is the right attitude to have no matter what happens in life. People say its not all roses, or not all fun and games. It may not be, but if your not trying to make it such, how are you going to achieve it?

    Good post, outlook it key.

    *Personal trainer reference; So when I google Jeremy Likeness and see this images of some buff dude.. that 'is' you?

    ReplyDelete
  5. Well I was with you, right until I hit the line that said "Silverlight will be alive and strong" and a hint at a decade. Silverlight has never been "strong" because Microsoft got the marketing and the messaging wrong and never understood what they had.

    The can of worms Microsoft have opened is that disillusioned devs like myself see bright folk like Rob Eisenberg saying Blend has a better experience with Javascript than XAML and blowing the dust off our old books and moving towards that way of programming, rather than taking the lazy 'use what you know' XAML approach. That has the added benefit of opening up the non-Microsoft world, even if it involves some pain initially.

    What's sad is that although I take an opposing view to you and do see the announcements as 'the death of .NET on the client' the opposite is true on the server, where .NET is getting stronger and stronger. Unfortunately with all the emotion and heat that last part is getting lost in the fog and all people are hearing is ".NET is dead".

    In the meantime, back in the real world the rest of us have to get on and fix those fecking data templating memory leaks, hoping that after 3 releases Microsoft finally get it right in Silverlight 5 ;-)

    ReplyDelete
  6. Information Society is breaking up?!?! What, when, how... eeek, the world really is falling apart. I hate you Windows 8!

    ReplyDelete
  7. Great post. Especially I like what you said at the end "Hey, I've got a flat, so let's sit on the side of the road, point at it and talk about all of the things that went wrong with my day." That summed it all.

    ReplyDelete
  8. @colin, thanks.

    @mj1856, you're welcome!

    @ed, my point exactly - thanks for weighing in!

    @don, thanks for the feedback and elaborations. I think it's interesting a common complaint is about Microsoft breaking ranks and leaving developers in the dust, yet when they apparently when extra miles to ensure things like our existing tools (Blend) are compatible with the new technologies, and the new run-time (Metro) is compatible with the same APIs we are familiar with, people STILL complain.

    Yes, those are my pictures, when I was focused more on training algorithms and nutrition than coding algorithms and Silverlight. :)

    @ian - see you in 2021. :) Seriously, I meant that more as a technology that is supported, not as in "everyone will be supporting it as the way to go" but I see your point. I don't buy the Rob comment because it simply is the side they've been focused on. I'll re-evaluate when the final product is there supporting both XAML and HTML5/Javascript. Thanks for also calling out the server-side as that is important and might not get as much press but is certainly where many jobs and contracts are.

    @frinkfree - I haven't heard anything new from those guys, have you? Remember when they released "Think" and had a bitmap image of the band embedded on CDs before people even know how to read them?

    @Unni - Thanks.

    ReplyDelete
  9. This kind of support? http://connect.microsoft.com/VisualStudio/feedback/details/523394/silverlight-forum-combobox-selecteditem-binding

    Even I can give 10yrs of such support.

    ReplyDelete
  10. Although I agree with basic idea that the hysteria has been hysterical, MS do find it very hard to admit when they've abandoned stuff.

    Native C++, for example, has been on endless minimal life-support - MFC was supposedly being worked on, but that turned out to consist of perhaps one full time guy who added a handful of poorly integrated 3rd party controls with no tooling support. Then there was the '10 is the new 6' nonsense (quietly forgotten), even though VS10 actually had even less C++ support than VS2008SP1, which itself had stuff removed from VS2008.

    There are endless other semi-abandoned technologies (Linq-to-SQL is perhaps the most famous - even there they've wriggled about its death)

    So it's not unreasonable for people to distrust MS when it comes to the EOL status of their products.

    ReplyDelete
  11. So what's your reaction to the interview that Anders Heljsberg's has just given on Channel 9?

    To this "whiner by the roadside" ;-) it really didn't sound good for "Enterprise"-related Silverlight-related technologies like MEF and Rx which were specifically called out, causing Anders to go into "fudge and fluster" mode where normally he's very clear and precise.

    This is the crux of my complaint about the overly-simplistic "Silverlight runs under Windows 8. They demoed it. It's easy with just a few changes." keynote demo that's triggered "Silverlight is not dead" zealotry.

    What we got in the keynote was "Let's take a simple Silverlight 2 tutorial app and make it run on Windows 8 with a couple of changes" demo.

    Disappointingly, Anders tried to use that weak demo as proof that it should be 'easy' to move Silverlight apps to Windows 8 before admitting that he didn't know if MEF would carry across "I don't think it does. I don't know" and when asked the same question about the Reactive eXtensions framework stating "Possibly. I don't know if we've decided one way or the other".

    I think they have decided, which is why he wasn't prepared to give a definitive "Yes", but that's just cynical old me after 30 years experience with Microsoft and the approach they take.

    Shame nobody thought to ask about PRISM while he was there.

    ReplyDelete
  12. @mesh, aren't there 8 workarounds? I mean I know it's work but that's a far cry from "it just won't work."

    @will, good case in point. But now you're making it sound like that's a "Microsoft thing" when all technology companies have their snafus and technologies that end up collecting cobwebs.

    @Ian - I don't agree at all. He created the language, not the frameworks that run on it. For what it's worth, I've booted Windows 8. I've installed OOB applications and run them - so it's 100% valid, without even recompiling. For metro I've also begun converting them. It's not push-button, but it's not tough. There are some name space changes and some networking stack changes but well decoupled code should have those changes also well isolated. I'll be working on a larger project to convert and post my results.

    MEF is exposed through WinRT. It is also enhanced in the release of .NET 4.5, which hardly shows a signal that it's being forgotten - explain that to me. ".NET is dead" yet there is a new version of VS 2011 that supports the next version, it can install and run on Windows 8 and it has enhancements? Explain to me how that is Microsoft abandoning it again?

    ReplyDelete
  13. I am not saying that community isnt active, im asking how can i trust to ANY technology that MSFT is giving when even most simple bugs cant be fixed as soon as "shifting focus" happens.

    ReplyDelete
  14. Thanks Jeremy,
    with this post and finally understanding what WinRT actually is (thanks to Miguel http://tirania.org/blog/archive/2011/Sep-15.html), I'm convinced that there is nothing to worry about anymore.

    bitdisaster

    ReplyDelete
  15. Wow, mass denial.

    I know you loyal SL fans mean good, and I used to be one. I however have to say what happens in Build is not a Win8 event. No. It will go down the history infamously as the public execution of SL. SL is dead. It's dead at least until these Win/IE team Prima Donna backstabbers get pushed aside.

    SL is dead when MSFT announces they have "shifted" their cross-platform strategy to embrace H5/JS, a platform Google is abandoning. Comical but sad & real.

    SL is dead when three VPs came out with a lip stick statement on why it's important to skip SL and embrace standard aka H5/JS, a platform Google is abandoning. Comical but sad & real.

    SL is dead when the RC stage SL5 cannot even find a session in the annual biggest dev event at Build b/c Prima Donna Sinofsky decides to go with H5/JS, a platform Google is abandoning. Comical but sad & real.

    SL is dead when ScottGu is forced out of the SL RIA department and his team gets shredded and scattered around b/c WinDiv prefers H5/JS, a platform Google is abandoning. Comical but sad & real.

    SL is dead when you see even Google - the once biggest JS-apologist - is now calling a spade a spade and JS a piece of crap and working on their own SL solution to replace JS, and yet MSFT is killing SL to jump on the Javascript Titanic and declaring it a joy ride. Comical but sad & real.

    RIP SilverLight. A good fight for us Web developers nonetheless.

    ReplyDelete
  16. From what I'm seeing looking in at build from the outside (not attending) is a stage being set for some confused clients, but huge opportunity for developers. I'm a C# .Net developer and have specialized in Silverlight. For me, I see tons of opportunity with Windows 8. But opportunity for independent software development not the work I do for my day job. Windows 8 work for my day job is likely a year away. As far as my employer is concerned, they are going to decide what types of projects I get to work on. It may seem to them that HTML5/JavaScript is the most cross platform technology. They may not dig deeper and realize Silverlight is not dead and will be supported for a long time. Therefore my employer will see clients asking for HTML5/JavaScript work and they will sell their capabilities focusing on that work. Even though I would rather do everything in Silverlight or Xaml on WinRT. As I look into the details for apps targeted at the Windows 8 Metro IE, it seems that the matrix of supported HTML5 features over at caniuse.com will have to have a new row called "IE 10-Windows 8 Metro". So, the challenge with HTML5/JavaScript projects will be to level set the code for the most platforms. As a friend said, the hill isn't going away so climb it. Maybe though, I can make some money for myself on Windows Phone and Windows 8 on the side!

    ReplyDelete
  17. @Rui ... mass denial? Are you trying to insult everyone's intelligence? What does anyone gain by holding onto a technology that is no longer viable and, more importantly, you cannot get paid to work with? I have no incentive to stay with a dead technology. The reality is that I have a heavy Silverlight pipeline and don't see it shifting. That's reality. And what I find amusing is everyone clamoring about Silverlight at a platform event. Silverlight is NOT part of the OS, and it is NOT part of the Framework. It has ALWAYS been released out of band - that's like saying Angry Birds is dead because Apple doesn't mention it when discussing the next version of iOS.

    @Allen, I agree. Seeing all of the doom and gloom and run for the hills posts is actually good news to us, because that spells more opportunity. Let them complain about what was or what could have been, and we can ramp up on new skills and play a part in what will be while working on what still is (and trust me, Silverlight still very much IS ... saying it's dead over and over won't make that happen).

    ReplyDelete
  18. @Jeremy:

    First a modest proposal:
    How about if you make a video on this same theme of .NET/SL/WPF "not being dead". And maybe throw in a set of 10 pull-ups just to show you mean business. (I really have to start working out again. I'm kind of inspired by you in that regard.)

    I really liked Scott Barnes video "Silverlight is dead, dead and dead" post and video: http://www.riagenic.com/archives/705 It would be great to see a counterpoint video.

    Second point:
    Some of the responsibility for the nail biting has to rest with MS. Why is it necessary for Jeremy Likness to do a damage control blog on this topic? What would have been wrong with MS giving us the outlines of what was happening and why we shouldn't worry at the start of the keynote and/or 10 months ago?

    Vic Klien

    ReplyDelete
  19. Silverlight is Dead my friend. I am not happy about it, but I am also no longer in denial. Thoughts over the last few days:
    http://realworldsa.blogspot.com/2011/09/today-microsoft-killed-net-good-bye-wcf.html

    http://realworldsa.blogspot.com/2011/09/metro-microsofts-embarrassing-try.html

    ReplyDelete
  20. @Jeremy

    Like I said I feel for fellow SL developers but I have to call you guys' dismissal of SL's death story as what Scott Barnes defined - blind faith.

    People like Scott Barnes are warning SL developers what is coming down the road so that SL folks can prepare an exit strategy. If you never intend to be a RIA developer then fine. Win8 offers you sth good. But if you are, watch out. SL5 is almost certainly the last web plugin version. With so much negativity and uncertainty surrounding SL, IT companies would dodge it when planning for future projects. Your SL skills might not be so useful in future job market.

    Worse still, developers jumped onto the SL train looking for better alternative to JS have just been thrown under the bus cold. That's a bigger disaster and will destroy the trust developers have had with MSFT for a long time. It's corporate politics gone nuts. It tastes very bad.

    ReplyDelete
  21. Lets be real here; Windows is a commodity and MSFT is trying like hell to make it a luxury vis-a-vis Apple. This will fall flat on its face.

    In 10 years we've seen win32, .Net, SL, WPF, linq-to-sql :) and on, and on, and on... Where is the consistency? Languages are the easy part. Frameworks and API's are the bugger. More confusion? Just what MSFT needs!!!

    Of course you are a blind enthusiastic follower. That isn't a problem, because MSFT is a blind follower. The crux of the problem is MSFT; They need to stop being all things to all people. That doesn't work in the real world and they know.

    Its painfully obvious what is happening here. MSFT has gotten so big they are chasing ghosts. While the big-boys in the consumer space DROP one tech to INVENT the next big thing, MSFT PICKS IT UP and yells WINNER!

    ReplyDelete
  22. @Rui - exit strategy? What? I guess if Silverlight was the only thing I knew or ever worked on, but I'm a developer, not someone who just learned Silverlight and wrote a few apps with it. I've heard the same tired song and when companies stop demanding it I'll move onto what they are - why does it get pushed as a life changing event? It's just shifting to a different platform, quality software is still quality software.

    @Mike - Interesting take on that. I agree, being a blind follower is never a good thing. But complaining never really was productive either, doing seems to be the best plan.

    ReplyDelete
  23. @Rui; Tad

    To me 'Dead' would mean I can no longer profit from Silverlight, and thats not the case for myself or many other developers. Based on projections and contract there are years of Silverlight support and development remaining, so the idea that its dead is just false. Does it have a future 10+ years from now? I don't know. All I know is that at a minimum for the next 2-3 years Silverlight is still a highly profitable tool in my arsenal. It may slowly fade with time. The good part? I still keep relevant skills like C# and XAML and have plenty of time to transition or shift focus if the field changes.

    *Google isnt abandoning Javascript, they are making an alternative that they hope catches on and hope is adopted by other browsers. Good luck with that. Time will tell.

    *Apple is heavily supporting HTML/Javascript

    Between Apple and Microsoft, I dont see HTML/Javascript going away anytime soon.

    ReplyDelete
  24. The denial here is saddening. Rui is spot on, but if you need more explanation:

    1) ARM processors will not support Desktop UI, nor a version of IE with plug-in support.

    Jeremy, you are a productivity worker. The other category of user, consumers, outnumber you 10 to 1. These consumers (who outnumber you 10 to 1) are satisfied with a computing experience centered around surfing the web, checking email and playing a casual game.

    These consumers will spend increasingly less time in Desktop mode and more time in Metro mode. With promotion of power-saving ARM processors -- which are well suited for surfing the web, checking email, and playing a casual game -- consumers will not need to enter into desktop mode.

    2) The Silverlight team has been disbanded. There is no future version of Silverlight planned after version 5. If you consult/contract your services you are doing a disservice to your customers to build on top of a technology slated for deprecation.

    3) There is an internal shift within Microsoft to emphasize HTML/JS and standards over proprietary technology. (Think Richard Stallman). While .NET and its associated technologies clearly live on (WCF, WPF, XNA, Silverlight) there is a bifurcation here between consumer technology and line of business technology. WindowsRT is the only solution which spans x64 and ARM platforms. If you want reach you must use WindowsRT or HTML/JS.

    4) There is subtlety here to understand. Corporations do not 'kill' technologies they create -- such actions would lead to legal and contractual culpability. Microsoft lets its technologies fade into the sunset. Programmers then have nothing tangible to complain about and legal culpability is mitigated. Have you ever heard of a Microsoft technology being cancelled? There are plenty but no official statements to corroborate (take MFC, ATL, FORMS, DirectPlay, MDX, etc).

    Programmers have a hard time understanding corporate politics -- they expect logic to be aprevailing force behind all decisions. But sometimes this just isn't so.

    Jeremy, the product is dead, if for no reason other than active development of it at Microsoft has ceased.

    ReplyDelete
  25. I think MS is addressing two completely different markets with one product and if they can manage the price and performance adequately, I think they and devs will do pretty well.

    Metro supports the "glance and go" user really well--i.e, tablet and phone users. I suspect, however, that in most of the companies I do work for, the Metro side of Win 8 on the desktop will probably be made pretty minimal by policy--that work doesn't follow the "glance and go" model.

    I'm thinking my workstation desktop is probably going to look much the same and require the same multiple application toolset it does now for quite some time to come. As a result, I think WPF and Silverlight remain relevant.

    My phone and tablet solve different problems from that workstation and I think MS is right to get into the game with a pretty rich entry that also leverages the tools you already know how to use.

    We'll see. I think MS could have done a much better job of communicating all this and the secrecy of BUILD has been irritating. Still, I think we are all in a better competitive position with these changes to Windows.

    ReplyDelete
  26. @Shaun, as others have said, having active projects is not denial. What would be a disservice is if I told customers not to use technology because of unsubstantiated rumors. When it is officially declared end of life, I'll be the first to say, "It was a nice run" and move on. You can make some blanket, out of the blue statement like "Oh this is just because programmers want logic and don't understand corporate politics" but that has nothing to do with the conversation. Dead? End of life? We've had two releases this year and a new one slated for the end of the year. Are those builds magically creating themselves? I think not.

    Your argument about HTML/JS also doesn't convince me, at all. Show me where there is evidence of Microsoft saying "You should use HTML/JS for Metro." I hear, "There are many options and we're excited that HTML/JS is one of them." There is full support for C# and XAML on top of WinRT - where do you get that "HTML" is what you have to use? What about C++, that is what you use to write WinRT. Sorry, completely disagree with that point. Why on earth did they take the time to evolve the C# language and provide so many examples if they want everything to end up in JS? Makes ZERO sense.

    @Darrix, I agree, they are trying to kill two birds with one stone but the question is - will the strategy work?

    Companies don't formally kill technologies, but it's pretty clear when a group is disbanded or no new releases are forthcoming. Silverlight has a new release coming. When they had 4 in beta, I didn't hear anyone fearing it would die just because no one was talking about 5. All of that nonsense came later.

    ReplyDelete
  27. Jeremy, With all due respect, "that non-sense" is not here by accident either. You can't sit here and say things haven't changed for Silverlight, WPF or even .NET for that matter.

    The release cycle you keep mentioning doesn't matter. Silverlight 5 is probably done for the most part. The feature set for Silverlight 5 just solidifies its position in the "classic" or desktop mode GOING FORWARD. Which, incidentally, is the whole point of this crazy talk.

    Android and the iPad have wiped the floor with MSFT products in the consumer space. MSFT should recognize this, AND recognize their role in the $400 dollar Costco special isle for consumers. The definition of COMMODITY is Costco.

    What MSFT is missing is a strong Enterprise story for WIN8. They have some impressive happening in the server world. All being completely over shadowed by this abortion of an OS which is neither here nor there in respect to the consumer and enterprise space. The company is lost right now and //build did a lot of developers in. You have to be a masochist to want to get jerked around like this every 2 to 5 years.


    As a side note: What is with the "touting" of a brand new win8 "reset to factory" button like that is a good thing? You can't make this stuff up.

    ReplyDelete
  28. @ Those in Denial... Let us say MS supports Silverlight for the next 10 years. That is great. But that means nothing to the Enterprises I work with. Microsoft's poor communication over the past months built the coffin and BUILD put the nails in it when it was not even listed as a product. I lost a contract about 9 months ago because of Bob M.'s comments, and just got a project reboot because of BUILD.

    I just restarted planning a major EA initiative that included a WPF interface, a Silverlight interface, an MVC interface, and an ASP.NET interface. It was luckily only a few weeks underway. Guess what NO ONE, including me, is willing to continue with Silverlight and WPF. They may not be dead @ MS as far as support goes, but MS killed them for us this week. Silverlight and WPF is not on my available technologies list for use until I see explicit Microsoft support, and not just the SL evangelists request we except implicit Microsoft support . I respect Jeremy, John Papa, Pete Brown, Laurent Bugnion, but I can’t make recommendations based on their passion for a technology Microsoft is not supporting.

    A Silverlight de-marketing process is in place and within a year it will be known as the “S” word, and we won’t be using it.

    Let me also say, we will NOT be using HTML5 either. Not until I see MS actually supporting it beyond the point of this knee jerk reaction phase. I will recommend a Java solution before I recommend an MS HTML5 solution. I don’t even know Java, but I’ll recommend we bring in the consultants we need to pull it off.

    Don’t think this comes lightly. I have invested heavily in SL and WPF. I pushed and pushed it. But I can see the war has ended with Microsoft’s BUILD message. It is absolutely sickening.

    ReplyDelete
  29. just when the latest SL 5 build included default save file dialog. All that work that went into including this amazing feature, for nothing. LOL. The hysterics are amusing.

    ReplyDelete
  30. @Tad

    Why is no one willing to continue with those projects? They are all still going to run on the current desktop/browser right? Or is your target audience all upgrading to Windows 8 when its released? And even then whats the problem? Just curious what the big dilemma is. Can you disclose? Thanks.

    ReplyDelete
  31. @Shaun T
    "...3) There is an internal shift within Microsoft to emphasize HTML/JS and standards over proprietary technology..."

    Microsoft's use of HTML/JS in Windows 8 has little to do with standards. None of it works without non-standard extensions to JS by calling WinRT. It might make it easier for HTML/JS developers to come onboard but the solutions will definately not be cross-platform. ASP.NET MVC would most likely be the best bet for that.

    So if you are working on something that does not need to be cross-platform and you have C#/XAML skills you would certanly not switch over to an inferior technologi like HTML/JS.

    ReplyDelete
  32. Jeremy,

    You mentioned that SL will continue to run on the Mac. Can you confirm this to be true?

    Joe Stagner wrote an article a while back saying that SL's future on the Mac is uncertain.

    I asked him for the reference, and he said I'd have to wait to hear more from the BUILD conference. He said he has to stay close-mouthed on the subject.

    It's not too late for my team to convert to WPF. The software we are replacing is a Win Forms app that requires our Mac users to run within a Win VM, so SL was a no-brainer solution for us.

    But if SL won't be supported on the Mac for much longer, we may as well convert our code to WPF and have them continue to run it within their VM's.

    Anyhow, it would be much appreciated if you could give me an update on what you hear.

    Thanks!!

    ReplyDelete
  33. @Aaron,

    From what I know, Silverlight 5 will support the Mac. The real question is with future versions of Explorer, Safari, etc. As long as they are backwards compatible to the current plug-in model then it will continue to be supported. It's when there is a new version of a key browser released that does NOT support the plug-in that it will become an issue in my opinion. As far as I know, I've not had to download new versions of the Silverlight plug-in to work with IE9, IE10, later versions of FireFox, etc so I don't see why that would go away any time soon.

    ReplyDelete
  34. Jeremy, good point, thanks!

    ReplyDelete
  35. @Finnur
    Thank you for your explanation. I still believe MS is increasingly backing away from proprietary solutions based on the following observation:

    1) SQL Server Denali jettisons OLE DB (MS Proprietary) over ODBC.
    2) IE is engaged in meeting standards compliance. MS is signaling that plug-ins detract from the consumer end-user experience.
    3) MS is investing significant resources in browser Javascript performance and tooling.
    4) "Our strategy has shifted". Silverlight is no longer the preferred strategy for cross-platform reach.
    5) Azure now supports PHP, Ruby, etc. Code samples also included.
    6) Open source toolkits (Modernizr, jQuery) are now standard solutions in MVC projects.

    Collectively, these changes signal a paradigm shift at Microsoft. All that I am saying here is that Microsoft is increasingly emphasizing open source and 'standards based' solutions.

    I appreciate your suggestion to use ASP.NET MVC instead of HTML/JS for compatibility across platforms.

    @Jeremy
    I am content to wait and see how this plays out instead of continuing our debate. I am not going to be swayed that Silverlight isn't on a path to deprecation. In our case we decided that continued use of Silverlight is just not in our best interest.

    ReplyDelete
  36. @Don…
    The project was intended to create a baseline for enterprise standards. It was to be over developed and over designed in order to document how each technology should be used be the development teams. It is a yearlong project, and is laying down the baseline development standard. We are not going to spend the next year defining how to implement Legacy technology. No XAML is currently being used in the environment and it was a sell to get it into the environment. I am not willing to sell it again.

    Like I said in the post above, this is not easy for me. I have pushed Silverlight very hard. I have been selling it over the past year without any support from Microsoft. The end result of Microsoft’s lack of communication and now with the clear message BUILD sent, by MS having no good communication for SL has killed the battle for me. I lost, and I can’t say that I care. I am tired of the unclear communication creating so much havoc and making my life so difficult. I wasted a heck of a lot of time fighting a battle that MS clearly didn’t want me fighting in the first place.

    I am sure I will personally be using XAML for windows. Actually I already am. I download the preview as soon as it was available. I am not happy with it. I think it is the result of lack of leadership and a clearly lost battle in the mobile market. I will not be fighting for XAML anymore in the environments I go into, unless they already use it. One of my friends who has not had time to keep up with XAML, said that he is now glad he didn’t. I have had to fight for it everywhere I went. I got it started in a lot of places, but I can’t say that that was wise of me.

    ReplyDelete
  37. What a none sense...

    1: MS is a company that needs to improve products, needs new products, needs to get in to the latest and greatest trends.... and yes it still a little behind of the IPad/Iphone.... but is doing that great with Windows phone 7 and Windows 8.

    2: you are looking at few videos from the Build conference, or download windows 8 and playing with Virtual machines....well it still pre-beta, so thing could change and will change, base on the response they get from the users playing with it.

    3: if you live base on development it will be great if you can get a customer that for the same result product they will pay you more than double on development time to do your application on HTML5 and javascript, even using jquery or any other library for javacript is a lot of work. Silverlight deliver the same thing in less time.

    4: OK, no plug-in in Metro IE, OK, Silverlight is Dead...wait a minute... Flash is dead, Java Applets are Dead.... so run fast and jump out of the bridge because everybody is dead..... NONE SENSE....

    5: if you work in line of business application you know that costumers do not buy the entire Tablet/Phone picture that easy, due to cost, due to security, due to many other reasons. so standard PC or desktop work will be the majority of your work....unless you do games or any application that is for mobiles and for the public in general. so tablets applications so far you have Objective-C for Ipad/Iphone and Java for Android, Java for Blackberry, so you have multiple options with Windows 8, and Silverlight and .Net still one of them....even C++ if you want too.

    6: about the reorganizations in MS, well tell me a company that everyone stay in the same position forever? also tell me a company that never re-organize to improve or to work in new products...any MS does more that just Windows and Silverlight. some of the problems with re-organizations is that maybe the new guy is better than the previous or worst...it is a new position new roles new challenges.

    7: other thing is if you work real world applications you know that user will prefer the mouse and keyboard to work with, touching the screens is good for mobile things or for collaboration using tables like surface, but if you need to enter 1000's of things in Excel you won't use the touch screen....

    8: coming back to point 1. things evolve, I start coding in Turbo Pascal, Borland, then C, then C++, MFC, VBA, VB.NET, C#, .NET, Silverlight, WPF, also some Java....so if SL is not longer supported you need to adapt, instead of complain.

    9: other thing if MS gets a lot of revenue from SL services, it will be insane to drop SL, now if all of you decide to quick SL just because rumors and switch to Java or flash.... eventually you push or force MS to drop SL. plus personally I found that in order to get the same result with Java and flash it requires more work. so if you quick or don't adapt is your fault, your own decision.

    10: some of this rumors are spread by people that doesn't work with Silverlight and they think that talking bad about the competition will bring more work/money to them. there are big companies using Silverlight right now for they products why they will use SL if they will have to re-work again....and deal with they customers complains?

    bottom line: There is a lot of work to do in Silverlight even in Windows 8, use you common sense instead of pay attention to rumors. if something happen well just adapt and move forward even adapting you will get something to do and work will be required.

    ReplyDelete
  38. Yep, and now the XNA folks are freaking out because you can't use XNA in Metro apps, when it works perfectly well on the desktop and is basically the equivalent of how WP7 works. Silverlight where it makes sense, XNA where it makes sense. Good read, Jeremy.

    ReplyDelete
  39. .NET won't be legacy. There is still ASP.NET and still a web browser in Metro UI. :-)

    ReplyDelete
  40. Since certain apps need the extra .net/sl functionality plus they have a big market so they won't go extint from day to night, no need to jump the gun and drop all development but I'd seriouly start investing more in DHTML5 development.

    .net/SL development will increasingly become niches.

    ReplyDelete
  41. BUILD has some good news for Silverlight even though it is not mentioned much.

    If you want a web application to reach the most common desktops (Windows XP/Vista/7/8 and Mac) Silverlight is still the most viable technology and will be that for the next few years.

    If Microsoft for some reason backs out of Silverlight in the future, Windows 8 provides Silverlight with an exit strategy in the form of WinRT/XAML/C# support that is definitely part of Microsoft's future plans. Porting from Silverlight to WinRT/XAML/C# seems to be quite feasible.

    Microsoft has not been communicating much on their future plans for Silverlight thus giving a change for competitors to spread fear, uncertainty and doubt. HTML/JS developers looking at some of the great looking and functioning Silverlight apps must realize that even with HTML5 it is difficult or even impossible to duplicate that in HTML5/JS. Rich internet business applications are bound to be much more expensive to develop in HTML5/JS than in Silverlight. Microsoft with its normally superb tooling support can help but will never take away the expensive develop once ->debug/test everywhere story that comes with HTML5/JS. Javascript also has nothing close to the functionality that C# has for example.

    Platform portability between desktops, tablets and smart phones is only going to be possible in the form of HTML5/JS. That can be OK for the content oriented web sites but not for web applications. All the successful applications on iPhone, Android and Windows Phone 7 are native.

    Generic HTML5/JS applications can never be competitive with native applications designed to fully integrate into each of these platforms.

    With Windows 8 Metro style on tablets, we will only have one more native platform to support. Luckily Windows 8 Metro/Windows Phone, Silverlight and WPF can be supported by more or less the same codebase. All using XAML and C#. Realistically, the codebase can never be 100% the same, because users expect the UI to be touch optimized on a tablet be not on desktop hardware.

    ReplyDelete
  42. Jeremy,

    Great post. Just three small points.

    1. Are you using "immersive" ironically above when you apply it to the LOB type apps you work on? It had me really confused since till now you've always talked about SL as a LOB tool rather than an immersive tool -- though I love the multitouch work you've been able to do with it.

    2. Blend currently doesn't provide a consistent experience when going from old XAML Blend to the new Javascript Blend. For instance no storyboards, no binding, no dummy data, etc. though some of these may come later. It's a very nice tool, I think, but it is shaping up to be quite a different tool.

    I'm not sure the deployment story is the best thing to hang SL's merits on. If we can overcome the learning curve to become proficient in SL, we can surely do the same thing to get ClickOnce for WPF under our belts.

    Oh, four ... "alive and well and strong" is really not the same thing as legacy, IMO. If a technology is legacy, it's merely alive. But maybe we'll just agree to disagree on that one.

    Again, thanks for the great perspective. Mere negativity doesn't help anyone.

    ReplyDelete
  43. @James,

    I appreciate your feedback!

    1. I'm wondering now if immersive is even a real word. My intent was something with a lot more depth - take for example the idea of a dashboard or a heavy grid that's not touch-friendly. I'm guessing it will make the most since to build Metro when targeting touch-first but some customers will still want an experience on large 21" monitors and I don't think Metro will serve that well.

    2. Yes, but Blend for SL/WPF XAML (Silverlight 5) does have that experience. We'll have to see what Blend for Metro XAML brings and then decide.

    3. I agree - but it's a smaller footprint so if it can hit all of the targets, why not use it, otherwise yes, go for WPF.

    4. Legacy? What's legacy. I still don't understand how Windows 8 makes SL legacy when SL is released out-of-band from the main OS and there is a new version on the way. That hardly sounds "legacy" to me.

    ReplyDelete
  44. After the last few days of observing, reading, watching, and developing on windows 8, here are my thoughts.


    - HTML/Javascript is the new future of Microsoft

    - HTML/Javascript is 'now' the absolute future of web development.

    - HTML/Javascript has even more power and support from Microsoft, in a big way, even allowing you to make desktop like apps, in their metro style. MS has now given developers the capability to develop apps for table,t mobile, and desktop using HTML

    - The majority of samples and demos are javascript based

    - Blend preview is entirely for the html/javascript preview

    - Plugins for browsers are dying

    - The browser in conjunction with mobile/tablet markets have changed the future landscape of development and the focus now shifts back to HTML/Javascript

    - Silverlight is no longer Microsofts primary web based cross platform tool.

    - Silverlights future is primarily to function like a desktop application, having web capabilities

    - Silverlights future as cross platform is uncertain, but has been fading for a few years and its existence on mobile and tablet devices aside from Microsoft will not exist

    - Silverlight for now will still be capable of delivering its current futures to its current platforms and browser

    - Silverlights long term future is unknown.

    - I can still develop Silverlight applications in the same way I have been, and they will still run on the same browsers and platforms they do now

    - Since the focus has shifted finally to HTML/Javascript, It would seem only a matter of time before the capabilities, libraries, support, tools, and features finally stomp out Silverlight

    - MS is emphasizing design and interface around clean and simple (what they now call metro). This is stepping away from 'RICH' interfaces and stepping toward simplicity. In my mind its also helping the push towards HTML/Javascript - because this approach has always been supported here.


    - I would say the idea that Silverlight could be the ultimate cross platform and browser answer to all devices and machines and it would be the last tool I really needed to develop with for a long time, died a long time ago. Perhaps in the minds of most it is now finally dead, because of the shift in focus and support that Microsoft is showing to HTML and Javascript, and the unknown long term future of the once hailed champion.

    - Hey at least all those people who have focused on html and javascript will now have a leg up eh!

    ReplyDelete
  45. Jeremy - Its legacy because its not progressing. New release notwithstanding, its stale and stagnant GOING FORWARD. If you had to lay down $40 - $100K of your OWN money on a Silverlight app right now, would you do it? No, the answer is a resounding NO. Business across the world are thinking along these lines, especially in this economy.

    ReplyDelete
  46. @Don, Just want to make sure it's here, for the record, so in a few years we can look back and I can say, "I said it all along" but I very, very seriously doubt that HTML/JavaScript is going to become the de facto way to write applications. People are reading way too much in the fact that Microsoft had limited time and focused the standalone Blend on HTML. Don't forget Blend for C# XAML is alive and well - it is fully integrated into the Visual Studio 2011 designer, so the tool IS there just not as a stand alone icon.

    Microsoft put a lot of time into making a C#/XAML version and managed coders will continue to use that. If anything is capable of threatening C# it's more likely to be from the likes of F# and C++ (especially since you can only write WinRT extensions in C++).

    I agree with your statements about Silverlight.

    ReplyDelete
  47. @Mike, it's still speculation. There is no proof. Just because they haven't announced a new version doesn't mean there won't be one. I'm not saying it's definite there will be and once we know for sure I'll stand by whatever that is, but saying it's dead when a new release is in the pipeline and there is no official word against a new version is just guessing blindly.

    ReplyDelete
  48. JavaScript is NOT the future of Web Development. Did you see the leaked Google memo? It is completely untenable for mildly complex applications.

    There are serious problems with JavaScript and ANYONE who has programmed in a statically typed language KNOWS this. Google would DROP JS support in a NewYork minute if they could.

    Riddle me this;

    Why on earth would I write a HTML5/JS app with MSFT technology? There isn't a good reason to do this. They are cutting their nose off to spite their face here. It makes NO sense to ruin a portable HTML5 app with a bunch of proprietary code specific to ONE platform. If anything this will simply remind people of the HORRENDOUS IE6 DAYS!!!!

    These decisions make NO, ZERO, ZILCH, NADA sense on any level to me at this point. MSFT has a massive trust deficit with the group they are attempting to woo (Web Dev's.). In the process of "wooing" they are "running off" their most loyal base... I'm stunned.

    ReplyDelete
  49. @Jeremy, I think your are wrong about that WinRT extensions can only be written in C++.
    Here Pierson and Kaplan show how to make WinRT extensions with managed code in C#. Then they show how to call these extensions from Javascript.
    http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-531T?format=progressive
    This will work on all Windows 8 machines because a fairly large subset of .NET 4.5 will be an integral part of Windows 8 and accessible from Metro style applications.

    ReplyDelete
  50. @Jeremy

    Def not de facto for applications period, but for cross platform, multi-device, web friendly ones I think yes - for now. What do you think?

    @Mike

    Anyone who is worth salt knew that about Javascript(issues) long before Googles leaked memo, like you said. Its probably safe to say thats why a fair number of developers moved into Silverlight to begin with, only to be 'somewhat' disappointed it didnt quiet work out the way we hoped. What would have been worse, MS saying they are heavily supporting something well known that is widely used, or saying they have come up with another new language and replacement for HTML javascript? :) For some reason I think people would give Microsoft a different reaction than Google for trying to do the exact same thing, interesting.


    *
    Really the last thing I want to do is write html/javascript. Its just not at the top of my list, but I do whatever I need to do. This mixing with proprietary stuff is just another way to make their platform more flexible and appeal to an even wider audience, and it will.

    The issue with any new technology is going to be acceptance. And for some time, there may not be an alternative outside of HTML/Javascript. Google might be able to pull something off, but thats only a possibility, and that adoption will be hard, and is years away in the making. Its safe to say that for at least the next 5 years, there is no superior alternative for .NET based developers other than Silverlight.

    Its funny all the posts I see about people saying that MS just keeps trying to be everything for everyone. Well, if you think about it its not just for users, but for developers too :)

    Silverlight is still a great option for all kinds of applications and I will continue using it until a better replacement comes along.

    ReplyDelete
  51. Back when Win8 demo first came out in June that caused outrage among the SL developers I wrote this on the official SilverLight.net forum speculating why MSFT wanted to push SilverLight aside. Looking back my speculation mostly stood.

    ==================================================

    SL RIAs give WinDiv more troubles than HTML/JS
    I don't for one second believe WinDiv is as committed to a robust cross-platform HTML solution as Google and Mozilla. Why would they be? If a standard web platform gets rich and powerful enough then who still pays to use Windows. Grab a free Linux and throw a free ChromeOS on top of it. You are all set. Who needs a client-side native Windows anymore?

    They then take a close look at the viability of HTML. They see a bunch of disjoint tags, scripts and style sheets. They see a spaghetti coding architecture. They see a time table of 2014 or so for next draft and 2020 or so the final spec. They see how underwhelming GoogleDocs and ChromeOS are. They realize, correctly, that HTML as a platform is an emperor w/o cloth or a paper tiger if you will. HTML in this shaky state is no threat to Windows.

    SilverLight on the other hand is all business. It's rich, robust and improving. For the first time SL makes desktop UX available to Web Apps. If SL truly gets broadly accepted (e.g. w/ the help of MoonLight) then people may not need Windows to run rich apps anymore. Grab yourself a free browser and a free SL plug-in and you are ready to run RIAs. SL actually poses bigger headaches to Windows (a screw-Windows product) than HTML. Imagine how much better ChromeOS and GoogleDocs could be if they were done in, say, SL5. To make matters worse SL is controlled by DevDiv needing not to answer to WinDiv, which gives WinDiv extra motives to dislike SL.


    If we put these elements together we could see why things are in the current shape when WinDiv is calling the shots. They may not mind .Net being an enterprise framework but they dislike it at the client-side so they are happy to shut it down. They then notice there are lots of HTML koolaid addicts out there so they say, "Oh well let's throw them a bone of 'immerse' apps or sth. Put on a smiley face and tell them we love HTML5 to death (except that WebGL stuff getting in the way of our DirectX). What do we worry about? HTML is no threat. Being friendly to those web guys may help sell more Windows."

    It ends up like this: If you wanna go for reach over rich then Win8 offers you some HTML hacks to play with. If you wanna go for the other way then Win8 offers a new native approach (in a form of next-gen C++ based framework perhaps). If you want both reach and rich, AKA SilverLight RIAs, FUGETABOTIT. SL5 is the last plug-in version. In future SL will be confined to Windows Phone platform where there's no conflict with WinDiv (not yet).

    As for you RIA SL developers, well, you guys are in the way. Our apologies to whack you.

    "It's not personal, Sonny. It's strictly business." Michael Corleone / 'God Father'.

    ReplyDelete
  52. We SL developers are simply expendable losers to the WinDiv. Deep in their heart they'd never tolerate a handy corss-platform solution that could hurt Windows sales. What Apple has achieved with a proprietary system simply emboldens WinDiv to come out slaughtering SL before this cross-platform approach further gets outta the hand.

    So the calculation is simple: If for every one passionate SL developer they backstab they could lure two Javascript fools on board of IE10/METRO then it's a good trade for them. If it works for Apple's iOS then it should be fine in Win8/METRO.

    If you think of MSFT as a big "family" then the family business is Windows and Office. SL is a 'Fredo' kinda product in that it's against the family business. Therefore of course they don't communicate with SL community. If you go against the "family" you know what is coming, and communication is not part of it.

    ReplyDelete
  53. @Don: You're running behind - time to catch up. Despite the hype, HTML5 and JavaScript will never become a web standard. As Mike indicated, Google is itself abandoning JavaScript, but what he failed to mention that they're doing so in favor what appears be a 'Silverlight' all their own, an investment that's apparently been ongoing for 3 years. Apple doesn't care about HTML5 and JavaScript, except as justification for excluding Flash, because their empire is built almost exclusively upon Objective-C and they've no worries.

    @Mike: As mentioned, Google 'is' abandoning JavaScript - other than that, I fully agree with all you indicated.

    ReplyDelete
  54. My plan is to continue with SL and WPF and the XAML for Windows. I do however plan to spread my wings a bit. Summarized my thoughts last night in this blog...
    Microsoft Windows 8 METRO and BUILD- The Good, Bad, Ugly, and WWTD
    http://realworldsa.blogspot.com/2011/09/microsoft-windows-8-metro-and-build.html

    I do think Microsoft shot themselves in the foot and killed Silverlight Politically:
    http://realworldsa.blogspot.com/2011/09/political-side-of-silverlights-death.html

    I am a XAML lover, but Microsoft has killed any chance of it being used in most enterprises.

    I do not like METRO for the enterprise:
    http://realworldsa.blogspot.com/2011/09/metro-microsofts-embarrassing-try.html

    ReplyDelete
  55. @Way

    My point is that HTML and Javascript is going to be the only real way to develop an application that works on most devices, at least for now. If you disagree Id like to see why.

    Even if Google comes up with something else it doesnt mean that its going to be any more accepted than Silverlight. The difference between everything else and HTML/Javascript right now is that most devices in some way support the later.

    ReplyDelete
  56. Do yourself a favor: use portable, vendor-neutral thing slike C++, Java, HTML and OpenGL and stay away from M$'s propetary technologies.
    And yep, .NET is dead with Metro but I don't really care.

    ReplyDelete
  57. @Finnur

    You say "Javascript also has nothing close to the functionality that C# has for example."

    Can you give ab example? I'd say you can do anything with JS that you can do with C#, and more.

    To those that think you need statically typed languages to build complex systems: We are building a complex LOB application based on a Ruby on Rails backend and Coffeescript on the client side.

    We are actually rewriting a .NET Winforms app from the ground up (40 man years of development). So far, it's going very well:

    - 3x faster development speed
    - ONLY 10% lines of code for equal functionality
    - High quality (testers hardly find bugs)

    If you practice serious TDD / BDD, there's no need for a compiler since your tests verify much more that a compiler could ever do.

    ReplyDelete
  58. Does a Silverlight out of browser app work in the immersive app mode? Adobe says they will support flash using AIR so I was wondering if you think the same could be possible with Silverlight out of browser mode?

    ReplyDelete
  59. OOB apps work perfectly fine for the desktop mode. Installing them will automatically place a tile in the start menu to launch them from the Metro interface.

    ReplyDelete
  60. The issue is that many developers equate "no new updates, or minimal new updates" to "dead". Windows Forms has had minimal updates now for some years, and it's still a useful technology for many problems. WPF hasn't really had many huge changes since 3.5 SP1 and it's still very usable for many apps. Silverlight 5 will essentially have the vast majority of features that are needed for both web and fairly rich desktop apps. Each of these platforms is essentially more than most people can handle already, what else do they need? So even if Microsoft said they would be continuing to release updates for every one of these, what would you expect from them? There is a time when a platform matures and doesn't need continuous updates and features. I find WPF and Silverlight basically there today. Sure there are a few smaller things that would be nice, but overall with the latest versions of each (WPF 4.5, and Silverlight 5) I'm pretty happy where they are. So maybe they are "dead" in the respect that we won't be seeing big changes to either in the future, but in my book I'm not sure that's a huge problem either. The problem I see is developers always want to play with the latest and greatest, even if it's not what they really need to support their problem at hand.

    The feeling I get isn’t that these technologies are "dead" as in; no longer useful to solve problems, the real issue here is if you stick with WPF or Silverlight you won't be "on the cutting edge" any more. And developers don't like to admit they aren't playing with the latest toys. Look at how many people use "dead" technologies and are doing quite well in this industry. There are many who have discovered the value and reaped the rewards in delivering solutions, not playing with the latest toys. Be known as someone who can deliver solutions, the end users really don’t care what technology you use as long as you solve a problem they have, and you will always been in demand, even if you do work on less than leading edge technologies. Have a big toolbox, and know when to use each tool. Don’t get caught up in the hype that every new generation of technology brings, select the right tool for the job, not just because it’s the latest shiny tool someone created.

    ReplyDelete
  61. "The issue is that many developers equate "no new updates, or minimal new updates" to 'dead'"

    While I agree with this, the situation is a little bit different for Silverlight. If I understand the SL community, they are not really asking for new fancy wizbang features... they just want it to work on more platforms. Once SL stops being actively developed, it could stop working pretty quickly as the browsers or platforms it supports change.

    ReplyDelete
  62. @Gernot, just look at what Google thinks about Javascript programmning: http://pastebin.com/NUMTTrKj
    I think it would be hard to find any company with more knowledge of Javascript than Google.
    There is no discussion of this kind in the C# community.

    ReplyDelete
  63. What about Scala and JavaFx 3.0

    multiplatform, multiparadigm language...

    Still it sucks that we have to learn yet another language and another UI framework ... anyway

    ReplyDelete
  64. Guys,
    I am a student started build applications for WP7... Concern of my future is it good to move on with Silverlight.... Pls suggest me....

    ReplyDelete
  65. hi.. I Read This Post and It is Very Useful for each Silverlight Developer.

    ReplyDelete