Having spent the early part of this week at Microsoft's MIX07 Conference and being there for the launch of Silverlight, I've been mulling over what's really going on. There's been a lot of discussion on-line so far, but I think most of it is missing the point.
However, before I get into it, I'll respond to a few comments I've seen so far.
John Battelle, trying to grok this, is asking Does This Change The Web? No, John. At least not right away and not in the ways you might think. Microsoft still hasn't figured out that the web is too large for even it to move. It certainly may change thousands of corporate intranets around the world, though.
Simon Willison, reacting to Mark Pilgrim's Silly Season, says "The fawning over Silverlight and Apollo is incredibly short sighted." and he's right but I'm not sure if it is for the right reasons.
Speaking of Mark Pilgrim, Silly Season is an instant Pilgrim classic (assuming you're a fan of his style--I am). His arguments are mainly focused on freedom (or lack there of) and the proprietary nature of Adobe and Microsoft's offerings. He makes good points in a way that only Mark can.
Nik Cubrilovic, over on TechCruch, recently wrote Silverlight: The Web Just Got Richer which is an excellent and more complete overview that most of what I've seen. In fact, he notes a few things that others almost completely glossed over or failed to see the significance of.
The Big Deal
With that out of the way, you're probably wondering what the big deal about Silverlight really is. Nik hit the nail on the head when he wrote:
The biggest part of the announcement today is that Silverlight will now include a mini-CLR (Common Language Runtime) from .NET. What this means is that a subset of the full .NET platform that runs on desktops can be accessed from within the browser. As with the usual .NET runtime, with Silverlight you can code in a number of supported programming languages. At this time the languages supported are C#, Javascript (ECMA 3.0), VB, Python and Ruby.
And...
Silverlight isn’t just animations in applets, far from it - it is a very serious development environment that takes desktop performance and flexibility and puts it on the web.
Bingo. Many folks who watched the demos, most of which were about streaming video and multimedia, probably walked away thinking that Silverlight is little more than Flash 2.0. After all, that streaming, music, and animation is pretty sexy stuff.
But the reality is that Microsoft has their sights set much, much higher. They've been calling themselves a "platform company" for many years now--and with good reason. Until the web came along, they controlled "the platform" (Windows) that virtually all new applications were deployed on. When the Web came along they didn't take it too seriously at first. But then they did. Very seriously.
What happened? They created Internet Explorer and gave it away for free. That essentially put Netscape out of business and kept Microsoft as the dominant platform provider (for end users... Linux on the server is a whole different story).
Here we are several years later and things are different. Microsoft is forced to adapt in a world where the browser the platform and Macintosh computers are becoming increasingly popular among those who build web-based applications outside the corporate firewalls.
Microsoft, being a platform company and a very smart strategist, had to think long and hard about how to use its strengths in this new environment. How could they capitalize on the popularity of apps delivered in the browser, dynamic scripting languages, and streaming media?
They've decided to change the game--or at least bet that the game is changing. When they deliver a browser-based version of Microsoft Office, you can bet your ass that it'll be built to run in the .NET CLR that Silverlight offers. It'll work in Firefox, Internet Explorer, Safari, and maybe even Opera. On both Macs and Windows boxes.
And probably on mobile devices using Silverlight Mobile (on all those smart phones running Windows Mobile).
The browser is the new desktop and Microsoft is hoping that the CLR and Silverlight in general will be the new Win32 API and/or virtual machine. And they're doing it in a way that only Microsoft can: by delivering full documentation, debugging tools, very large partners, and a world-wide network of trained evangelists and support staff. Say what you will about the company, but they know how to roll out software to developers. They've been doing it for a very long time.
That's really what this is about. It's not about competing with Flash. Microsoft is thinking much bigger than people seem to be giving them credit for.
Now don't be fooled into thinking I believe that Silverlight will take over the web. I think it's success as even a Flash killer is highly uncertain at this point. But it's certain to be a big hit inside companies that have major investments in .NET technologies. That's an awful lot of companies and an awful lot of code. But how much we'll see Silverlight being used in "consumer" services is a whole different question.
Either way, this will have some pretty interesting ripple effects.
What do you think?
Posted by jzawodn at May 03, 2007 04:26 PM
You are right that the mini-CLR is a big deal. But what subset of .NET is it going to support? It seems likely that it will only support the same kind of things that ActionScript (i.e. JavaScript with a lot of extra goodies from Macrome... err Adobe) supports.
If that is the case, that's still nice. Take your C# knowledge and apply it to your Silverlight app. But it's hardly a game/web/whatever changing event. It's not going to convince Flex developers to switch to Silverlight. Will it convince web developers doing things with AJAX to switch to Silverlight? I don't see why. If they had picked DHTML+JS+CSS+#{whatever server-side lang} over Flex, why would they pick Silverlight now?
Your statement that it will be a big hit with companies already invested in .NET is most accurate. Just like how .NET was only a hit for companies with prior investment in MS technologies, so will be true for Silverlight. Those people will consider it as an alternative to ASP.NET or even Windows Forms applications.
It will be interesting to learn if Silverlight can overcome some of the drawbacks of AJAX, for example refreshing and counting impressions of ad units.
I too agree with you on the corporate network point. But is that really all they're after? It would seem incredibly short-sighted of Microsoft to build something that can't become the next iteration of web technology.
Being able to write in the same language and indeed within the same codebase for the client and the server could provide some interesting development efficiencies that could actually be game-changing. Ruby on Rails has some server-side methods that result in Javascript to do AJAXy things. I would hope Microsoft has noticed and started to blur the lines even more. I will be looking for the pageview model of the web to die just a little bit more.
I would hope their aim is not to be just a flash killer, that would be like striving to be an animated GIF killer, which when it comes down to building websites that can be deep bookmarked, allow for useful analytics and actually rank relevant multiple pages, that's about all the place Flash has in site development. There are some basic fundamentals of how sites play with engines, users and various distribution methods that have consistently not been fully met by any of the holy grail web dev technologies that pop up and claim to stand to become the defacto standard. Silverlight is going to have to prove a whole heck of a lot to show that it is something more than just a way to discourage the use of flash to prevent the absurd "Click to activate and use this Control" fiasco that is Flash in Explorer.
Microsoft is thinking bigger than killing Flash, true.
Adobe is thinking bigger than Flash. Also true.
Apollo is about one thing. Killing Microsoft. Once Adobe releases an Apollo-based office suite with a single executable file that will run on any machine and is always 100% compatible across platforms, the real fight will begin.
I suspect we'll see the same Q&A, FAQ, disbelief, and shock & awe stages that accompanied Flash.
Stage 1. It's great vs. it'll never work vs. What, another download?
Stage 2. Oooh, look what I can do with this!
Stage 3. Gratuitous, streaming HD videos of my cat that I created in Ruby and uploaded to S3
Stage 4. Silverlight intro pages on web sites vs. Praystation artistry
Stage 5. Silverlight vs. web standards vs. I can already do this with JavaScript and mod_rewrite
Stage 6. Where's the accessiblity/usability/UX?
Stage 7. Acceptance
Stage 8. ???
Stage 9. Profit
Thank you for this great post. I like your style.
Well obviously there is more and more content on the web, that need to be searched and indexed. I believe Silverlight is great when it comes to videos as I do not know how it plays with Ruby. But I hope to find out soon.
But again with more and more content on the web there also should be some investment into better search technologies.
The thing I do not like about Google, Yahoo or MSN is, that they do not recognize documents with similar content. It happens often on the Web that a post or document is spread out over more then 50 websites - with Silverlight this will increase. Now that is great for the author but not for the searcher because it blows up your search result unnecessarily. With InfoCodex this will not happen because the linguistical database recognizes similar documents and puts them into groups. This does not blow up your search result unnecessarily. InfoCodex Procedure
Three things Google should do:
1. Automatically classify a document according to its content.
2. Automatically generate an abstract of a document.
3. Generate a Heat-Map of the Contents of a Search Result.
How it works
I don't get what all the fuss is about. MS just put out their version of the applet. Who cares?
". . . had to think long and hard about how to use it's strengths in this new environment. "
You meant to write "its" didn't you? Unless of course you intended to say "it is strengths in this new environment". But that's meaningless. What is so difficult about this point of grammar?
The media stuff seems nice, but (maybe) only a bit nicer than what's out there already. I won't be beating a path to its door any time soon, I'll use it when I want to watch something that needs Silverlight and I expect it will work just fine.
The CLR/DLR stuff, on the other hand, is very exciting. I'm frankly (a little, stiff upper British lip and all that) excited by the prospect of being able to deliver Ruby code to the browser and have it execute at near-CLR speed. Mostly, working in a (global and hence slow-moving) bank, I seem to distribute Excel spreadsheets, if only because that's the most straightforward means of deployment without jumping through insanely complex and unjustifiable hoops. But if they'll roll these baby runtimes into the build - and this is just the sort of thing that they *will* do - then I can not only start to deliver better apps, but I'll be able to do it in a language that's a whole heap more fun.
I can wait - I have to! - but I'm certainly looking forward to it. And that's before I've even considered the public side...
"The browser is the new desktop and Microsoft is hoping that the CLR and Silverlight in general will be the new Win32 API and/or virtual machine."
This sentence gave me a real cold shudder on my back. I knew I heared that argument before - really long before. And with the help of some googling, here it is:
"Browser-as-desktop" written in May 1998
http://findarticles.com/p/articles/mi_qa3649/is_199805/ai_n8798115/pg_3
New century, new acronyms - some bu****it ;)
I agree... but why MS did it? She controlled the desktop plataform and earned a lot of money.
What money is there for delivering the best infrastructure for web apps? I do have a couple ideas, but I can't pick the best. I can't decide something on the level that MS's shareholders, or MS's ambitions, want.
Macs and Apple are not a threat for MS on the computer space, as usual. Making Silverlight run on Mac will attract web devs, but MS won't lose control of where SL can run.
Miguel de Icaza saying that he will port SL to Linux, on the other hand... a little more trouble. But anyway, "Linux on the Desktop" is still a promise and if it ever concretizes as something that will crumble the MS empire, it'll take many, many years.
Maybe MS will lock web devs into this ecosystem then start delivering tight integrated products, like IIS Silverlight edition and SQL Server Silverlight (SSS?).
Anyway, I just don't understand this from a business perspective. Why rush what will kill your current cash cow? I am not saying SL will kill Windows and Office next year, no sir. But it doesn't help either, so... Perhaps it's an implosion, MS saw what others could do to her, and decided to do it herself. And figure out how to make money later (at least she'll be in control).
I'll remember to block Silverlight to stop ad companies using it to takte over my web experience, just as I've generally blocked Flash for the same reason.
I'll remember to block Silverlight to stop ad companies using it to take over my web experience, just as I've generally blocked Flash for the same reason. Would be really nice if I could expect them to leave it alone or Microsoft to give enough control so I could do it at a finer-grained level than "all".
Silverlight looks like what Java was promised to be years ago.
Microsoft has been talking about software as a service for a long time now, because it delivers several key things to them:
- Consistent revenues
- Less piracy
- Stickyness
In the long run with broadband widely available, Microsoft would rather have you work on an XBox-like terminal rented from the phone company, running your rented applications from Microsoft and storing your work on rented space on Microsoft or Microsoft-partner servers.
So, how is this different from Java?
Sounds like, instead of a flash killer, this is supposed to be a Java killer. indeed, that's precisely what MS was promising way back in 2001 or so when it first created C#. This was supposed to be their answer to losing the lawsuit where Sun forced them to include industry-standard Java in their browser instead of MS-Java. MS replied: OK, we'll just create our own language and runtime to run in our browser.
I'm just surprised it took them 7 years to deliver on their promise. Oh, and it's still just FUD-ware, so who knows how much longer it will really be?
It should be a big red flag that the CLR supported browers/platforms is a whitelist. The statement "Maybe even Opera" is a red flag. Anything of the form "maybe even {{ x }}" should be a code smell to anyone who cares about a non-walled garden web.
I'd prefer to see incremental improvement to HTML ala WHATWG and faster JavaScript runtimes.
I agree that this is a lot more than just going for yet another spiffy browser plug-in. Having put the CLR into it, it's finally a development platform that doesn't require a separate language for client and server. I also think that the browser plug-in is just a bootstrap for adoption of what is basically WPF lite. Now IT departments candeliver rich applications hosted on MS servers to Windows and Mac and that's gotta be appealing for a lot of shops.
The real question "How is this different from Java?" is certainly valid. Conceptually everything that makes Silverlight appealing for RIA (ignore the flashy look&feel for a second) could have been done for years with Java. But Java never took off in that way. More to the point, most people I know recoil in horror when they hit a web page that fires off an applet, for right or wrong, feeling that their browser is about to crash or just become horribly slow. However the main reason, imho, that Silverlight is likely going to be more popular than applets is that MS is just second to none in delivering usable tools to developers, while java development generally seems to be more along the lines of "you can do it, but you gotta do the legwork to get past the learning curve".
Unfortunately, I agree with the people who ask "isn't this what Java is supposed to do"? The CLR sounds fine, but so did/does Java.
Interesting post. I agree that Microsoft is aiming high and hoping that they will be able to take control again of the developer API mindshare. But I think that they will fail and the adoption of SilverLight will remain very niche. They will fail for the same reason Java failed.
One of the biggest weakness of SilverLight is that it does not really understand the document driven and RESTful aspect of the web. SilverLight does not natively understand urls. We are back to opaque monolithic applications. No sharing, no bookmarking, nor searching.
I think that it will be easier to enhance JS and Firefox to have better support for packaging, threading, canvas and video than fixing SilverLight and Appolo so that they integrate nicely with the web.
Time will tell.
-Edwin
There's one more thing to remember that makes Silverlight better than Flash: Silverlight is XAML-based. Not only does that make desktop-based UI portable to the browser (as was the case with Java applets), but closes the gap between developers and designers for Web-based apps since designers will now use Expression for the Web to design a full-fledged, rich UI that is backed by XAML which can then in theory be directly used by the Silverlight developer for the actual Web content, rather than approximating the designers' vision. I'm not sure Flash enables a workflow like this.
No doubt this new "technology" from MS will become the next "target of choice" for virus writers.
I know that Silverlight can do animation. I have seen a few examples of the programmatic animation. But I haven't found any example of the more "traditional animation" such as those done in the ecards of www.jacquielawson.com or www.ojolie.com. So my question is, can Silverlight do that kind of animation? If so, is there any example out there?
Another very important product that embeds a whole .NET CLR is SQL Server. Actually *this* is why SQL Server is important.
Do you still need the Internet (with all this stupid interoperability and open crap) when you can communicate between the inside of the client application and the inside of the database ?
Thanks for the insightful article.
Looking at MS's Silverlight FAQ:
> Simple integration with existing Web technologies and assets means Silverlight works with any back-end Web platform or technology.
Sounds like it'll be much easier to deploy web apps without the need for ASP.NET, any web server will do. Sweeet. This alone is a big big plus to me.
It also appears to be a better platform where one can mix interactive apps with backend/database operations than Flash (language-wise). Let's hope they'll keep it simple for the developers.
No one talks about it being more spyware crap from Redmond! I refuse to install anything more from MS since the latest "security update" in August voided my ability to use proxy servers in Firefox! After uninstalling the spyware, my computer would not work and I had to re-install everything! SCREW you MS and all of you "phone home" spyware.
so...............how do I BLOCK any and ALL ads created by Silverlight so, as James Day says, it cannot take over my "web experience".............I am desperate......this stuff has been hitting me constantly for the last two days and I THINK i have traced it to Silverlight content......