My colleagues have a heated debate on what is the future of web development. One side is supporting HTML5 and the other is supporting Silverlight. There is no conclusion of the debate yet.
In my humble opinion as a programmer, HTML5 will not improve programming productivity, while Silverlight will. In my understanding, programmers still need to program in JavaScript to take advantage of HTML5. For Silverlight, we can use C# which is static-type language. A lot of coding defects can be found in compilation time.
For HTML5, different browsers might still have different behavior even though there is spec. For Silverlight, generally what works in IE will work the same way in other browsers.
Just my thoughts. Any idea on how to choose future direction of web development?
UPDATE: This answer is now over a year old, and it's currently my most highly upvoted and most highly downvoted answer on SO, so clearly it's received a lot of attention. I thought I'd go through and update the answer a bit to respond to the comments.
I've blockquoted my answer as originally posted, and interspersed updates below:
Your logic is faulty, for three major reasons:
1. Anything on the web that depends on the user installing a plugin has historically had a very hard time gaining traction. Until browser vendors (other than Microsoft) begin bundling Silverlight, there is no reason to believe Silverlight will have any notable market share outside of IE.
Update: In response to Darrel Miller, who said: "I would say SVG is an example of an open technology that has been incredibly unsuccessful so far." -- I think this makes my point. While many browsers bundle SVG support these days, the 800lb gorilla doesn't, and so IE users would have to install a plugin to view SVG images. I think the lack of native support from IE has been the single biggest factor hampering the adoption of SVG.
2. Anything on the web that depends on a single, proprietary implementation has historically had a very hard time gaining traction. (The best success story so far is Flash, but that's only because
browser vendorsOEMs have bundled it by default. And even Flash has competing implementations these days. Plus more and more "Web 2.0" style sites are going an AJAX style route instead of using Flash -- I wouldn't be surprised to see Flash start to wane before too long.)
Update: A lot of the comments are in regard to that last, parenthetical statement. But I think the point is still valid.
I won't try to deny that Flash has excellent penetration in the desktop market, but there are still plenty of issues for non-desktop web clients. For example, currently the iPhone and iPad don't support Flash at all, and many other clients, like the Wii web browser, only bundle outdated Flash versions. Flash has more than a decade head start over Silverlight, and it's likely that Flash won't ever get any more penetration than it has now, but it's still not 100%. Even for websites that can afford to only target the top 90%, right now either Flash or some JavaScript framework are the only viable options. Silverlight won't catch up for years to come, if ever.
Also, in a way Flash is the exception that proves the rule. In my original answer, I only said that plugin-based solutions have "historically had a very hard time gaining traction", not that they never do. Flash took quite a while before it caught on, as I recall.
Finally, several of the commenters, including James Cadd, point out that I was wrong: browsers don't usually bundle Flash (Chrome is now the exception to that rule). Sorry about that. I think what I meant to say was that OEMs bundle Flash on most new computers, and I've corrected the text in the paragraph above. If computer manufacturers hadn't been bundling Flash on new computers for years now, I think users would have been reluctant to install it themselves, and its adoption rate would have been much slower. Hence, my point still stands: until someone starts installing Silverlight for them, most users won't have it installed.
3. If your argument is that C# is better suited to web development because it is statically typed, then you really need to read this: What to Know Before Debating Type Systems [1].
Update: I still stand by this. As deceze commented: "The user doesn't care how easy or hard the programmer has it." Personally, I think frameworks that try to hide functionality under a single programming language cause more harm than good. I believe a good web programmer needs to know JavaScript and HTML, whether your backend is written in C#, Java, Ruby, PHP, or something else altogether. The idea of using the same programming language for server-side backend and in-browser UI is tempting, but ultimately I think it's a leaky abstraction [2]. You use abstractions to make programming easier, but when your users can see your abstraction start to poke out around the edges, you need to remember that ultimately, the user doesn't care about how you built the site, just what it takes for them to use it.
[1] http://web.archive.org/web/20080822101209/http://www.pphsg.org/cdsmith/types.htmlIn fact, JavaScript is better than it's ever been, and I see no reason to think it's going away soon, if ever. I'm a huge fan of C# too, but it's apples and oranges.
Silverlight is Java Applets from 1995 all over again, only with fewer features (since the CLR doesn't have the cross-platform consistency that the JVM has). I don't see what the fuss is all about.
It's a false question. The answer is: Yes, HTML5 and RIA frameworks are both the future of the web.
HTML5 has been called "the future of the web" for a long time. The problem is that it's always off in the future, and not the near future. The target release date for HTML5 is 2022 [1] (!!!). While features will trickle into browsers in the meantime, it'll still be years before you can reliably do something as simple as show video on a webpage without a RIA plugin.
Aha, you say... it may be a ways off, but you've admitted that HTML5 is the future!
The problem is that there will continue to be commonly requested features that browsers won't widely support, and at that point you need something that lets you extend the browser. That's where RIA's come in. Yes, things like canvas, video, and speedy Javascript will keep raising the bar, but I think RIA platforms like Flash and Silverlight will always have an opportunity to provide essential features that the (widely installed) browsers don't.
[1] http://blogs.techrepublic.com.com/programming-and-development/?p=718The natural order of things is for proprietary systems to break new ground and for standards to come behind and take what was learned from the proprietary systems and make them ubiquitious. Standards can immortalize a technology, but they take a long time to develop and can't be iterated on as quickly as solutions developed by one company.
Those developers who want to be on the cutting edge and can afford to have their customers take dependencies on proprietary systems are going to do so, and others will wait and settle on open standards. There's a place for both. I tend to think that apps that provide high value to a relatively constrained set of people will tend toward Silverlight, and apps that provide a little value to a ton of people will tend toward HTML 5.
I hear a lot of people say "why use Silverlight when HTML 5 enables a lot of the same scenarios and is open?" The fact is that when HTML 5 gains widespread adoption, Silverlight (or whatever the next hotness is) is going to be way ahead of where it is today.
A very similar debate came up once back in the late 90's: What's the future of the web, DHTML? or Flash? People went crazy building sites laden heavily with one of those two powerful technologies. Crap was flying all over people's webpages, songs were playing, flags were waving, hamsters were dancing, and all was well. Then they found the shortcomings of each. Then they reached the verdict... and the answer was... drum roll... BOTH! People ended up mixing the two elements for optimum effect. Look at the number of websites today with Flash vignettes displayed in unison with some sort of DHTML drop down menu.
Then the debate came back up three or four years ago with: What's the future of the web, AJAX? or AJAX? Okay, that wasn't quite the same thing, I'll admit, but it did have a similar result, people went absolutely nuts writing sites with more AJAX calls than you could shake a stick at. Then they found the short comings of doing so, and ended up pairing it back to a combination of asynchronous postbacks and "old-fashioned" postbacks.
This time around we're not seeing quite the same volume overdone Silverlight or HTML5 sites, but my gut feeling is, it'll be over the top for a year or two, then people will start pairing it back to something sane.
As for which technology is superior, and for what... well that debate will rage on, but rest assured the pattern of jumping on the next big thing like a maniac, then slowing down, will continue for the duration of your time as a developer.
The above was all personal observation, I'm sure a lot of the rest of you saw those things unfold differently.
I highly doubt any proprietary plugin will be the future of the web.
[citation needed]
! I don't think he dropped the <video>
tag entirely, just the codec to use with it is undecided. - deceze
I think developers who develop core business web applications will likely start to switch to technologies like SL because of how relatively easy it is to setup GUI's. SL works great for the simple fact that developers don't have to muck with AJAX, java script, and browser compatibility issues in order to get their pages and custom controls to work properly and look great at the same time.
You may be asking why aren't these developers using Flash right now? SL is much more powerful than Flash because the full .NET framework can be exploited, this opens up huge possibilities in web development.
Web development is crappy. Web apps do not get to the level of quality of win/desktop apps. HTML is NOT a programming language/library/platform no matter what version. SL and HTML can't be meaningfully compared. Flash is good for showy sites, that's it.
I noticed this question/answer thing has become another bash-Microsoft debate. The truth of the matter is that Visual Studio & the .NET platform are better and more complete development tools than most others out there. Let's face it. You install mySQL or any other database, and the admin UI sucks there's no comparison with MS SQL Studio for example. Ubunto, Fedora, etc... just installed, I open the media player, select 10 songs or so from a folder, drag & drop them into the media player, and it crashes!
The whole web development is a mess, it's built on top of things like HTML which was never meant to be for software development. On top of that the developer needs like 4 or 5 different things to kinda do a webpage JS, HTML, CSS, etc. None of those compile so bugs & errors are very frequent. On top of that, in order to get something done the developer must use different tricks likely to break when standards change or not being portable or able to run in older browsers/older JS versions, etc. Let's face it, it's crappy. The page needs to pass a string in the URL to another page, ouch the URL has limited length, and varies between browsers and even same browser's versions. Also, the string cannot contain certain characters spaces, etc URLencoding is a pain in the ass. The app needs to save data in session...oopsss the session died or something on the server wiped out the values. The developer needs to store a string on the page using a hidden input tag...auch the input tag has a maxlength limitation... I could go on forever.
SilverLight seems very nice to me, much better than all the other crap. And don't come telling me people not gonna install a plugin. Open source people, and users of FireFox downoad and install tons of garbage all the time, come on! Try to do anything in Open Source Unix, Linux, PHP you name it... you must download and use a bunch of different tools plugins, etc that don't have any consistency in behavior, user interface, they are buggy, and they don't last. You use Red Hat, it becomes old news, the latest thing is Fedora. You use Fedora, well you're behind, the newest is Ubuntu, and that's only the OS, the databases, development tools etc all change, and it's so overwhelmingly unstable that cramps productivity.
Someone was comparing Microsoft tools/browser to others, always complaining. The truth is that the OpenOffice thing do not have all the functionality that Office has. Excel, Word, SharePoint, etc. are more complete than their immitators. These tools even have a sophisticated macro-language integrated in them, they are very flexible.
Let's face it, if Microsoft .NET and the other tools were free, many of you were using them, and wouldn't complain so much. I go with SilverLight, and still can use JS, HTML, etc b/c they are free.
The future of web development is making software that people want to use, and figuring out how to make money from that.
It doesn’t matter whether you do that in HTML5, Silverlight, or Objective-COBOL.net. As programmers, it’s nice to think that the choice of technology is really important (because that’s where we spend our days and nights), but it’s totally not.
Disclaimer: all this presumes that Silverlight 5.0 doesn’t
implement a
GetEndUserLaid()
method
[1].
I think that HTML 5 will be used more widely, because Silverlight is proprietary and still not present on a significant percentage of users' computers, while "web apps" can be used by anyone. Yes, it will take time for HTML 5 to be ubiqitiously supported (not in Windows 7; so maybe in the next version of Windows in a few years. There is a nontrivial percentage of users who will never upgrade from the browser installed on their systems by default).
You can apply the same logic to debate of native apps vs. web apps: native apps are easier to write (IDE support, etc.) while browsers are inconsistent, but the reach of browser apps is so much wider that the difficulties of developing web apps are justified. Please note also that the difficulties you write of are issues for the programmer - from the user perspective, the application has to do its job, and the user couldn't care less about the platform the app is written in, as long as it works on his system.
HTML 5 is the future of the web, but RIA platforms are not going anywhere anytime soon.
Web Support - One advantage of RIA plugins is that they're the same exact plugin on every single browser on every platform (except Moonlight on Linux, which may have a different code base but nonetheless has to pass a rigorous set of compatibility tests). Contrast this with the varying support for and compliance with the variety of technologies required to support RIA apps with HTML5/SVG/JAVAScript. This is a huge moving target, and the level of common compliance in all of these technologies required to support the same across the board capabilities and performance provided today by Flash/Silverlight is in the distant future (next 2-3 years). That being said.. various classes of applications will begin to switch once their particular set of features is stable/supported in HTML5 in a wide variety of browsers.. and certain classes of applications will possibly never switch.
Javascript + SVG + HTML 5 is not easy to develop for. There are no well integrated development suites comparable to either Flex/Flash or Silverlight Blend/Visual Studio, and there are none on the horizon as far as I know. Again, this will resolve itself in the future, but right now it's a major impediment to adoption.
Unresolved Video support issues - DRM and Video CODEC support. Sites with free unprotected video can switch to H.264 when all browser companies eventually support this codec (presently only Safari and Chrome do). The lack of an accepted CODEC standard is presently hampering the tag adoption, but it will eventually resolve itself. However there is presently no solution for DRM or protected content.
Performance. Javascript performance is increasing rapidly, but it is difficult to make any dynamically typed language compete with statically typed VM based enviroments such as Flash 9/10 or Silverlight's CLI environment. Statically typed VM byte code environments have an inherent advantage in a couple of areas.. a) they are already parsed and compiled into a compact bytecode form, b) they use slot based dispatch of methods and are far easier for JIT compilers to optimize for c) they include high performance collection and array types.
IP protection. JS and HTML 5 are easy to decompile. This is a major problem if you're looking to keep your competitors from reverse engineering your applications.
Also, the choice of Flash vs Silverlight is not so obvious in 2010. Silverlight's adoption today (Mar 2010) is at around 45%-60% depending on which stat service you look at. All stat services are recording a 2% month over month increase in Silverlight adoption. Flash/Flex are good tools and the performance difference between flash and silverlight are comparable. However Silverlight does have the entire .NET ecosystem behind it, as well as a fully compliant open source implementation, and it's also a fundamental component of the Win7 phone system along with XNA. Silverlight looks like it will reach the 'ubiquitous' inflection point sometime in 2010.
Short answer.. HTML5 is about 1-2 years off, and it won't replace RIA platforms for many apps for years after that.
The short answer is that HTML with inline SVG [1] is going to win. No question about it.
In my view, it's a tragedy.
There is nothing wrong with HTML or SVG. In fact, I really like SVG. There are even some things that are easier in SVG than XAML (e.g., animating text along a path, etc.).
The problem is JavaScript and the "model" of having loose JavaScript include files that have no relationship to each other in the development environment. I spend 90% of my time fixing "runtime" errors that would have been caught by Intellisence or the complier in C# (spelling mistakes, capitalization errors, etc).
Writing JavaScript makes me feel like I've regressed 20 years to when I was writing PL/1 engineering applications. At least PL/1 was case insensitive so a minor capitalization error would't come back to bite me in the ass.
I can't believe that this is the future of computing. It makes me crazy.
I really love Silverlight and I've spent the last year delivering Silveright business applications for my customers who decided to go in this direction. Unfortunately, I don't think it's going to survive long-term.
Even mobile devices (I have a 12 year history in mobility), the future belongs to HTML5 / SVG / JavaScript. I'm not happy about it.
[1] http://en.wikipedia.org/wiki/Scalable_Vector_GraphicsHere's my personal opinion on it.
It will depend on how many browsers and websites adopt the technology. HTML5 has been out for about what a year? And it's already supported in all of the new browsers with the exception of IE. Some websites are starting to appear using html5, Google especially has been pushing this with google wave and the html5 version of youtube. HTML5 also seems to be catching on rather good with the mobile applications. Right now Silverlight has been out for what 2+ yrs? And I'm not seeing that many sites using it. Microsoft of course uses it, but the only other large user I know of it is Netflix. (for their movie viewer) MLB was looking at using it but is switching to flash.
Which brings me to another point, Flash is Silverlights real competitor and Flash has a huge advantage on it with a much larger installed base of developers and a number of sites using it. Flash and Silverlight both require a plugin to use, html5 does not. Also a number of browsers come with the Flash plugin, the Silverlight plugin doesn't even come installed with Microsoft's own IE8.
Also the number of backers for a technology matter as well. Silverlight is being pushed by Microsoft, but I'm not seeing to many other corporations supporting it in the developer community. HTML5 has been pushed a lot by Google, but it is also being pushed by Mozilla and Webkit. Plus html5 is being put through the W3C, which will give it a huge push if it's adopted as a standard.
I am a bit worried that there is no html5 support in IE at this point, I'm really hoping they don't try and snub html5 in IE9. Otherwise I think we might see a return of the standards arguments in the browser wars.
This could be a moot point.
One thing to consider is that HTML5 + JavaScript could be a valid render target for Silverlight. I mean Microsoft may follow-up on their Volta project and recompile .NET MSIL code into JavaScript and use HTML 5 Canvas as the render engine sitting underneath. This way Silverlight apps could run on HTML5 browsers, downloading as 'recompiled' JavaScript libraries. Silverlight's geometry is already closely mapped to SVG - which could explain the new found interest in this standard.
http://en.wikipedia.org/wiki/Microsoft_Live_Labs_Volta
This strategy would be ideal for Microsoft. All platform investments targeting Silverlight and WPF (including the phone platform) could be ported to HTML5 - albeit running slower. A browser that supports SL natively would identify itself and download the XAP instead.
I think HTML will be around for a long time to come and media tag support becoming ubiquitous will help sustain HTML's presence/viability. On the other hand, most if not all apps in the business/corporate sector will be built using some sort of RIA/Framework approach. HTML/CSS/JS development will probably never have RAD tools that can deliver equivalent performance/functionality/efficiency to that of the RIA IDEs, particularly when it comes to using powerful controls.
There wouldn't be any good authoring tools to support HTML5. From my point of view, Microsoft has the best web programming tools and Adobe has the best web design tools. They both have deep investment on those toos and are making huge amount of money from those tools. So i am very sure that they won't be happy if HTML5 goes popular.
Another bad news is the codec for HTML5. Major companies don't agree to use a unified codec on HTML5. That also makes it impossible to replace Flash and Silverlight.
Silverlight is a single-vendor platform (even if Moonlight tracks what Microsoft does). HTML5 (in the buzzword sense including features that are defined outside the HTML5 spec proper—i.e. The Open Web Platform) is an open multi-vendor platform.
If you want to use a statically-typed language to target the Open Web Platfrom (HTML5), you can you Google Web Toolkit to write in Java and compile to JavaScript.
You should participate in making the open multi-vendor platform the future instead of adopting the proprietary single-vendor platform as your future.
There are many good answers here already, but I'd like to add one point:
For the future of the web™, handheld devices like smartphones will play a big role. These devices most likely won't support Silverlight because it's too complex, resource hungry, and proprietary (most don't even support Flash for the same reasons).
On the contrary, open standards like HTML5 are already widely supported on those devices (because many of them are based on the open webkit implementation, which is quite portable).
Good question
In my humble opinion as a programmer, HTML5 will not improve programming productivity, while Silverlight will. In my understanding, programmers still need to program in JavaScript to take advantage of HTML5. For Silverlight, we can use C# which is static-type language. A lot of coding defects can be found in compilation time.
It depends how you mean that. Although IE has the largest market share for the desktop web browser, the future of web browsers will be driven by mobile smart phones and mobile tablet computers. The current trend suggests that WebKit [1] based browsers such as Safari and Google Chrome will dominate mobile platforms with such browsers available for iPhone, PalmPre, Android, S60, and (in the future) Blackberry.
Productivity is best measured by Number of applications times number of HTML5 features per application times number of HTML5 browsers. This formula makes it clear that the biggest growth will come from delivering WebKit HTML5 features because the number of WebKit based browsers is growing much faster than any other kind of browser.
For HTML5, different browsers might still have different behavior even though there is spec. For Silverlight, generally what works in IE will work the same way in other browsers.
People won't wait for a spec to start delivering value. Useful features from HTML5 such as CSS3, SQLite data storage and Canvas are already available, and people are designing some pretty cool web apps.
The other thing to keep in mind is that with local SQLite storage and the ability to run offline web apps, Many web apps will start looking like native smartphone apps over time, built out of Javascript, HTML, CSS, HTML5 SQLite Data, and JS frameworks such as jQTouch.
Just my thoughts. Any idea on how to choose future direction of web development?
Watch how smart phones & smart pads (e.g. iPad) drive the marketshare of browsers.
[1] http://webkit.org/HTML4 pages / javascript / css work diffrently on "IE, FireFox, Chrome, Safari, Opera....". As a Web Programmer for now 10 years, i belive and hope SL will because the new "Plaform" for developping "Web Applications". Love SL much more over standard (asp.net/jsp...) because one the plugins is installed on the browser you know that it's working whatever the browser you use. You don't have to "waste" your time testing on 5 differents browser.!!
I think in 2010, if you don't want to install a plugins like "SL" or "Flash", you should just stop using computers!!! Actualy stats say that SL has been install by over 50% of the computer in less then 2 years..... and in "Web Application" we don't care about if "oncle bob" don't wanna install the SL plugins..
Well thats my opinion!
Several folks out there fail to understand the impact and dynamics of a corporate development shop on the answer to this question. For those not in corporate development, the easy answer is HTML5. For those who create line-of-business (LOB) applications, the clear answer is Silverlight or WPF. You see the needs of a company such as how to deploy updates to its users or the need for the users to have the application running from the desktop verses the web server lean towards the technology of Silverlight 4 in disconnected state and WPF. As these companies actually pay Microsoft money for the tools, Microsoft will continue to support and offer them until they saturate the market and come up with another version of the tool to sell.
Now for those who develop applications which need to run on multiple mobile devices such as iPad, iPhone, Droid, and other PDA/phones, HTML5 is the clear cross-platform winner. Unless for some strange reason Apple magically allows a Silverlight plug-in on their devices and most PDA/phones work with Silverlight. If that happens, then Silverlight would be in a better position for this category as it might relate to the corporate development comments.
The third category of developers are the typical web developer which accounts for the majority of the web sites in the world. The needs of this developer is typically not LOB or cross-device, but cross-browser. To me, I agree with the fear of the masses to download the Silverlight plug-in. And unless the plug-in is included already on the PC, a portion of the users will not download it.
So the answer to your question is "depends". It depends on the needs of the customer. It is my belief that both Silverlight, WPF, and HTLM5 will be around and used. In my case, we design our applications for both Silverlight AND HTML5 in order to serve the needs of our target clients/users.
Regards,
Scott Peal, Global Chief Architect
I'm from India and here the statistics on my webserver show that over 30% of users are using IE 6, a 10 year old browser. Although HTML 5 is great and as a developer I would love ALL users to upgrade to the latest and greatest browser, that doesn't seem to be the case.
In such a situation using Flash or Silverlight is the only option. Further, since HTML 5 is still evolving, we'll end up seeing different implementations on different browsers. I can recollect the time when both IE and Netscape Navigator had equal market share and we had a tough time developing simple websites.
Personally I would choose Silverlight to develop any business applications where I can force users to install the plug-in. On the Internet, I would stick to HTML 4 or use Flash. HTML 5 is still a definite no for me - business reasons!
Short-term: Flex. Silverlight isn't taking off, and you know it will be ages before HTML5 is supported consistently on different browsers, even IF people have recent browsers.
Whereas the flash plugin works on all browsers, in fact it even works on mobile devices and some consoles.
I agree with many of the posts both for and against Silverlight/HTML5 in the responses above. I don't think there's any one specific reason why one would fail over the other. I work at a large bank (WF) and I can assure you that we will never migrate from the Windows world. It just won't happen. I'm fairly positive many corporations, small busineses, and home users won't either. While many MAC/Linux users will defend their hardware/software choices, the mass exodus to something so new just won't happen for a while (if ever). That being said, let me just state that when I was developing a side application I weighed how I could build both a desktop client and web app without having to do it twice. This is where I tout a little nod in Microsoft's direction and state that, if done properly, a good programmer can code an application which can have a desktop footprint as well as be web-driven while using 90% of the same code base. Silverlight posseses enough of the netframework where I could build a WPF application for users who want it to be downloaded on their desktop and still use it to have a Silverlight Web face for those who don't. With OOB in SL4, I can even do more. I haven't experimented too much with Silverlight for Mobile but perhaps I could have a subset of functions for Windows Phone 7. I guess my end decision was based on the project at hand. I find that while some people have no problems working with web-based apps, there are many others who will alwasy want some program to download. The Browser, by nature, is restricted and HTML5 and Isolated/Persistant storage isn't going to free it. Some apps need full use of the system.
After the iPhone and the iPad have become so tremedously successful, the question is now moot. Apple is decided not to support Flash (I don't know about Silverlight).
The main point of Flex, Laszlo, and other technologies using Flash was to create apps with almost universal support. Flash is not only easy to install, but you "set it and forget it". It doesn't make the user think. It's was a winner.
But Apple changed the game.
What's the point of having a cool web app, if it can't run on your iPhone or your iPad? I don't have an iPhone or an iPad, but I recognize that Apple owns the market, and everybody has one, or wants to own one.
Anybody building apps with Flash today is limiting his audience more and more.
Ultimately I think it will come down to 2 things: Host platform vs Development platform. When it comes to development no one is going to beat Microsoft in creating a great development platform. Don't get me wrong - I don't drink the Microsoft koolaide - I think the company has screwed the pooch in some key areas (see the next part of this post), but Visual Studio, Expression Blend and the Silverlight plugin make up a very powerful development environment. The things you can build in Silverlight these days and the speed at which you can do it are amazing; and given that the silverlight team is releasing a new version about once a year I dont see other platforms beating Microsoft any time soon.
-However-
Microsoft has dropped the ball on the host platform side of things. They let Apple leap frog ahead of them with the iPhone, and never fully developed the tablet. Microsoft's Value Add approach (ie. We'll pack so many features into something that people would be crazy not to buy it) has been trounced by Apples Consumer approach (lets design something that every day people actually want to use); to the point that when we demo a really cool Silverlight solution to a client they say "thats great, we love it - how soon can you build an HTML 5 version for my iPad \ iPhone?".
It's still too early to tell who the winner will be. If the Apple line up continues to grow in popularity (ie. the win7 phone doesn't catch on) they will have a big say in what development platform we are using in the future. Of course if the Silverlight team keeps packing more power into the plugin (relative to HTML 5) Apple may have no choice but to host it in their products...
I dunno: it's kind of like asking the question, "Are people going to use HTML, or JavaScript, or AJAX, or Flash?" The obvious answer is, "There's room for them all. They're complementary, not mutually exclusive technologies." A while ago, I thought that Flash was pretty much dead as a platform, but it's made a strong comeback, as its presence on 99% of all machines makes clear. I think it has to do with the fact that AJAX has made a convincing case for rich internet applications, while simultaneously being really difficult to work with. Even with the platform limitations of Silverlight, I'd much rather code to one particular target that I know is going to work well, with an incredibly rich suite of design and development and debugging tools, rather than deal with dozens of different browsers and JavaScript quirks, mediocre development and debugging tools, and an ugly, untyped, hybrid OO-functional language like JavaScript. My strong suspicion is that in 10 years, we'll see a fairly wide selection of applications and sites developed on all three platforms, plus a few more that haven't even been introduced yet.
As some other posters said, HTML5 seems as a step in right direction, but it has long way to get there. It will be (eventually) the default choice for consumer oriented web sites/applications (E-mail, basic productivity apps, etc).
However, there is immediate need for richer user experiences, particularly in line-of-business applications, which is nicely satisfied with Silverlight -- version 3 is good and 4 will be better. Majority of software in this world is internal LOBs developed by thousands in-house developers. Those people, who grew working on Microsoft stack, are embracing SL as a way to transfer those rich client dev skills to RIA intranet web sites and get ease of deployment. In corporate world adoption of plugin is not much of an issue -- if LOB app requires plugin, it will get deployed as a part of corporate default OS image and/or pushed using domain admin tools.
Saying all that, I really like Silverlight and it is already make my life easier, but I am keeping an eye on HTML5, as I see its potential, too.
Although Microsoft always terribly failed to take any successful lead in Internet innovations millions of Microsoft lemmings are following the Microsoft evangelists who won't get tired to preach the superiority of Microsoft solutions. We have to understand that the Microsoft world is NOT homogeneous. We have the enterprise computing world where Microsoft has a solid stake and a justification to exist even with technologies like Silverlight. Then we have the mass market where people are using Microsoft products because these are just there and many users got used to use them. There was and still is a lack of alternative. Mac OSX is challenging that, Android too. This second Microsoft user group (world mass market) is attacked by the activities of Apple and Google. Both companies are demonstrating that computing for the masses can be different what means mainly way much easier and stable. We see here only the first wave of a dramatic change in the IT world. Microsoft lemmings probably can't see it but the second wave is coming like a Tsunami, everything mainly X based and all with open source and open standards in the core. Mobile devices will overtake and will degrade a PC to a Geek tools (in the mass market, not in the world of enterprise computing). While the always in the world of yesterday living MS lemmings won't realize that Microsoft has no clue how to serve these markets with success the revolution is spreading fast. HTML5 will be one part of it. Javascript also. Microsoft has proven that you don't need great products for having success (remember MS/DOS and Windows 3.1?). Look to the Google universe for getting an idea what you can do with these "low level" development tools. Google just bought a codec company for getting rid of Flash. Flash is in a decline and this happens NOT because of Silverlight. It happens because there is no longer room for proprietary solutions in the Net although the MS evangelists and MS lemmings won't get tired to dream of a different course of history. Is there anybody out there who believes that if Apple is not accepting Flash on the iPhone it will accept Silverlight? YouTube will get rid of Flash earlier or later. Will it be replaced by Silverlight? And... and... and... If you as a Microsoft evangelist feel you need to reply please make a reality check first.
It will be interesting to see how "touch" interfaces come into things.
I'd love to know how Silverlight could possible replace or take over HTML5/JS? HTML already won this imaginary battle many years ago, it is a core technology of the web and I can't see any propitiatory technology like SL ever coming close to this.
This question is like asking which is better Apple or Microsoft, which browser is better, which Computer is better, PC or MAC, which plugin is better, Silverlight or Flash.
Can't it be both? Competition is what drives these technologies forward. People usually choose what they are most familiar with and what suits their needs. What is the future for you is not necessarily the future for me. While even a single person is working on a product or technology trying to improve it, then it will live on.
Heck, even the Amiga still has a following. The Amiga is the future of the web! The Amiga is dead, long live the Amiga!
We are so tribal in the way we choose sides. Some sides are arguably better if you use a set of specs to compare it with, but its irrelevant if one of the specs you're not looking at is one someone else uses it for. You're comparing apples to oranges.
Competition is a good thing.
The technology that is present on all dominant mobile platforms and allows the developer to target them simultaneously will win. HTML5 is the only such technology at the moment. Tools like www.morfik.com will drive this development.
I would love to use HTML, CSS, and JavaScript for most web development but it's so frustrating to have to try to accommodate all the little nuances of each different browser. That's the main area where I heavily appreciate RIA plug-ins: They (mostly) solve this problem for all browsers that can host them.
Do we determine this by what makes life easier for the developer - or for which is the best user experience ?
Personally I find Flex/Silverlight to be unnatural for a web user - there is a long way to go to make it a seamless experience.
Then again, on a fancy 'ESPN' or car website - or game website - rich in movies and graphics maybe - but what about 'StackOverFlow'...
Do you think StackOverflow should be html5 or Silverlight and why - and that to me will be your answer :)
I think the answer is quite simple:
use only web standard to programming the Web!
Other words are only philosophical concepts!