Tuesday, February 21, 2012

The Last Silverlight Post – Coming Out of the Closet

The intended audience of the book 'Hacking Silverlight' was primarily the seasoned professional Silverlight developer who has one or more Web 2.0 projects under their belt. Designed to help that developer connect with the larger Silverlight community and get access to all the knowledge and resources available to you. If that is you, this article can help you take your ‘understanding’ of Silverlight skills to the next level and not in what you can do but in what happened to Silverlight. If you need to learn Silverlight you need to start somewhere else. My blog was never meant for the beginner and often just a way for me to vent when I ran into this problem or the other. With that in mind this article is about what I wanted in a Silverlight to be and is designed then to help me deal what happened and maybe where things are going.

As Microsoft describes it, "Microsoft® Silverlight™ is a cross-browser, cross-platform and cross-device browser plug-in that helps companies design, develop and deliver applications and experiences on the Web. A free download that installs in seconds, Silverlight enables a new class of rich, secure and scalable cross-platform experiences. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications."

At the time of writing, the combination of browsers and OS's and devices that support either Silverlight or its open source counterpart Moonlight, was at one point expanding month-by month, so any list I published here would have quickly gone stale. For current information, see the Wikipedia "Microsoft Silverlight" entry for a current and comprehensive matrix. What excited me about the Silverlight story though is not the broad reach, or all the incremental improvements over older technologies or even the awesome job the Silverlight Dev team did building it; what I want you to get is where Silverlight really shines, in the collaboration story provided by the underlying architecture that allows designers and developers to come together to get more done, more quickly, as a tightly integrated team. (Feel the designer/developer love!) Let's acknowledge it: Integrating development and design teams has in the past been hard work. So Silverlight ushers in a new day, and it is my pleasure to share with you some of the good things I've discovered about designer/developer collaboration in this new day.

In many ways this cycle is still with us, certainly Silverlight is still around, WPF is still around and further Windows 8 with its winRT is coming down the track like a steam engine but more about that later.

Now if this were a beginner Silverlight article we'd do what all beginner texts have done since Brian Kernighan did it for the C Programming Language; we'd present "Hello World" in Silverlight. But we aren't beginners here and this isn’t about learning Silverlight…so how about a slice of real life instead…about Silverlight MVVM… this is really where Silverlight shined in it’s ability that even now going head to head with HTML5 out does HTML5 in every area save Microsoft is trying to kill it.

Once upon a time I went to a meeting (true story), and the subject of that meeting was a new project, and the coolness that we were going to use Silverlight ok at the time it was still WPF/e. We were so excited! Discussions broke out between pockets of participants; over this design, or that design and the comps we were getting from a partner on how the design ought to be…
And then the bomb dropped.

PM: "We have eight days to deliver the product."

[Dead Silence.]

Someone asks: "Do we have to use Silverlight?"

PM: "Um…Yes."

[Long Cold Silence.]

Someone Else (with a hint of desperation): "Really?"

PM: "Um… that would be yes."

[Another Really Long Silence.]

Another Someone Else: "So you realize that Silverlight is not even RTM and we only have three resources that have a clue about Silverlight?"

Lead: "We don't even have a solid design, and we are not sure we can even do all this fancy work. This would take months in [heretofore un-named technology that still is better in then HTML5 in its UX goodness] and we actually have experience doing that."

PM: "Yes, we know, but they are offering $$$ [and he named a Really Big Number] if we do, and if we don't we lose lots of business."

Lead: "Really? $$$? [And he questioned the Really Big Number.]"

[Short silence as everyone looked around at each other.]

There was a sudden recognition that we might be able to pull this off if we could work together…nicely.

Fast forward eight days: The office has the feel of a tomb. The aroma of unwashed bodies and stale pizza permeates the air. The exhausted bodies of spent team members are strewn over assorted pieces of office furniture, while others that could double for the living dead stroked keyboards under pale monitors. The silence is broken only by the soft staccato of key strokes. But for half-grown beards, time seems to have stood still.

[A knock breaks the silence.]

"Hello, anyone home? TV crew here…We're ready to do interviews for the launch today. Hello!"

[More knocking…]

Dazed faces turn to look at each other, realization slowly dawning that, eight days later, we are still here.

Someone: Is anyone gonna to let 'em in?

[blank expressions…]

Someone Else: "Who's gonna do the demo?"

A few hours later…

THE CROWD GOES WILD! *insert cheering and roaring of the crowd*

Granted the team was composed of very senior developers and designers, but as I recall it the team accomplished in eight days what previously would have had taken that team up to six months, and for the most part, the team learned the new toolset from scratch during the project. Granted this story has grown some in the telling, but the central point remains, the Silverlight toolset created conditions that made delivering to an otherwise impossible schedule, possible.

For me, this was the dawn of a 'new' way for designers and developers to work together. Generally, the user centric cross discipline approach worked and we have implemented it across the business at the time. Moreover, the team of designers and developers lived happily ever after in perfect harmony, broken only by the occasional keyboard hurled over the cubicle wall and a whisper of a mild profanity muttered under the breath.

That was part of the Silverlight 1 launch.

… It has been a long road since then, blogging, article writing, pod casts, writing books, public speaking and even some TV, I’ve loved it and really Silverlight helped me come into my own as a UX professional. So what changed and why is Silverlight going away? Really it’s a lot about Market perception stuff. Silverlight is still around and it’s still the best cross platform method for building desktop apps and high end experiences but when it comes down to it Microsoft pulled the rug out from under this technology before it even hit its peak. This isn’t even a new story either, many times companies have killed tech before it could come into its own and in this case I think a bit un necessary but as sad in what Microsoft did to Silverlight by its PR and support changes the best parts of Silverlight are still with us.

I can’t say that what happened was planned but it played out all very well. Microsoft used to have this cool developer conference called PDC; it was the “bomb” if you were a professional dev. They screwed it up one year due to a location issue and had it in Seattle on the Microsoft campus and generally killed the conference (now it’s called BUILD and it’s all better because it has a new name?!).

So what happened on or around the last PDC before it was called BUILD that killed Silverlight? It is not that this one thing did it but it started here, basically there was a top Microsoft executive that said that the company was going to focus on HTML5 and native app development for the future of windows meaning Windows 8 and it snow balled. Now already there was a huge group of Silverlight haters out there and this started a firestorm of Silverlight negativity. Customers were scared, social media was all a buzz and Microsoft tried to turn it around with the Silverlight 5 fire starter but it was too little too late. Over a year later Silverlight 5 finally has been released and I know there was talk of Silverlight 6 but nothing has come of it to my knowledge. Even though Microsoft tried to turn it around the course of the past year again and again they just kept also re-affirmed the abandonment of this technology except in Windows Phone. We in the industry even stopped calling it Silverlight in hopes of giving it more life. Microsoft fueled the flam in the fact that Microsoft broke most of the team up and announced no plugin support for Windows 8 Metro IE10 and went to far as to even move execs’ around like the gu which instead of being over tools, visual studio and Silverlight is not off in cloud land...
Revenge of the C++ programmer? Maybe,

In any case with those announcements at PDC and then BUILD 2011 being so poorly dealt with it virtually killed all new Silverlight work and even most of the user groups. Only one Silverlight group I know of still meats and we will see how that goes. Most of the professionals have distanced themselves from it. Even me where instead of saying I’m a Silverlight MVP, I’m not a ‘Microsoft MVP’

So where has all the Silverlight goodness gone? And what was so good about it? Well then XAML team was broken up and mostly part of blend and visual studio and windows and windows phone. There is still a small Silverlight team working on shipping Silverlight 5 which is in public beta. Now the whole cool story about designer developer relationship is still there with Windows 8 metro which in many ways promises to be cool and the next darling those tools are being pushed towards HTML5 tooling with in truth is sorely needed.

So truth be told, yes, Silverlight was not able to achieve its dream due to Apple blocking plug-ins on iPad and iPhone but it did compete and in any ways was better the flash in terms of tooling and time to market ROI stuff with the same UI. And Yes Silverlight is not dead as it is the basis for Windows Phone 7 and further the whole XAML story is part of the winRT or Metro for Windows 8 so in a way you might say ‘Silverlight is Dead’ but long live XAML. We will see I’m excited for Windows 8 but much less trusting of Microsoft then I was before. With that I will continue to support Silverlight everywhere for coolness sake (and you never know maybe I’m wrong and it will be the next big thing…) and it is still a great solution for things like lob apps but you’ll see my blogging going on http://www.vnext.org/ moving forward save short posts pointing back to vnext.org or {Interact} Seattle.

~Love, the last Silverlight mvp…