views:

166

answers:

5

There seems to be increasing demand for Silverlight skills, but out of the many new technologies that Microsoft has punted, I've never felt as if it was the next big thing! Am I wrong? Should I be gaining those skills?

There's obviously a well-established competitor in Flash, and there's a host of other Rich Internet toolkits out there, as well as HTML5 on the horizon.

If I invest time now in skilling up, I'm not sure I'll ever see my return on investment...

A: 

if you learn .NET, a prerequisite to Silverlight, you'll get a return on your investment, believe me

Scott Evernden
So what you're saying then, is assuming that I already have .Net nailed down... that's where I'll get my ROI and there's no point spending the extra time learning Silverlight?
Stewart Ritchie
do you already have .NET skill nailed down? I didn't realize that. If so, then yes I think Silverlight is a viable alternative to Flash
Scott Evernden
Microsoft have launched a lot of new technologies over the years, and some have been more successful than others. Silverlight seems to be pretty well embedded now, but in two or three years? There are plenty of other new technologies I could be learning... maybe I'm just not feeling the Silverlight vibe!
Stewart Ritchie
+1  A: 

Silverlight uses native C# and VB languages, and a scaled-down version of the .NET framework, so it is immediately familiar to .NET developers.

I think the reason it has not caught on is because Flash is so entrenched (something like 95 to 99% penetration in user browsers), and for some reason people have real difficulty installing software on their machine, even simple client applications like Silverlight.

As a development platform, Silverlight has some genuine benefits, especially for creating Line-of-Business applications.

See also: http://blog.webjak.net/2009/02/11/evangelising-silverlight/

Robert Harvey
And the fact there are no development tools for non windows platforms.
Byron Whitlock
@Byron: You mean for Silverlight? You can do Moonlight development under Mono. http://www.mono-project.com/Moonlight
Robert Harvey
Thanks for the link Robert, that's exactly the sort of thing I need to reading.
Stewart Ritchie
Moonlight doesn't cut it. I've had even trivial Silverlight apps fail to render correctly in the Moonlight plugin.
Matt Greer
@Matt: Good to know, although I already figured that Silverlight apps were incompatible with Moonlight. It would have to be a native Moonlight application (compiled under Mono).
Robert Harvey
Moonlight's goal is to be Silverlight compatible. Much like how you can run a .NET compiled app under the Mono runtime.
Matt Greer
+3  A: 

I've been working in Silverlight full time now for about 6 months. It's a great technology. It's really a refreshingly wonderful take on creating applications. Microsoft is wisely leveraging it for other outlets too, like Windows Phone 7 and I wouldn't be surprised at all if Silverlight was the platform of choice if/when MS comes out with the tablet they've been talking about.

Microsoft really went back to square one and got a lot of things right with Silverlight. it really promotes high quality code if you take the time to really learn the best patterns and practices. The separation of logic and UI is second to none in Silverlight/WPF. Blend is also shaping up to be an incredibly powerful tool for designing very compelling UIs.

Will Silverlight really take off? I have my doubts. When MS first came out with Silverlight a few years ago, I don't think they were expecting the wrench to be thrown at them that is HTML5. Google and Apple are majorly behind HTML5, not to mention it being more open makes it a very worthy threat to Silverlight.

Silverlight also has some serious problems that need to be addressed ASAP before it can really take off as a fantastic platform. RIA Services (the new, primary means of working with a data layer in Silverlight apps) is very young, raw, buggy and in many ways just plain not good. Other things like the Navigation framework have also left me a bit underwhelmed. Not to mention Silverlight having its own CLR means you lose a lot of the nice .NET tools out there. In a lot of ways, Silverlight is starting over from scratch.

But all in all, Silverlight really is fantastically well thought out and very, very powerful. If it takes off, in a lot of ways it will be nice. But I'm also not counting on it. Stay open to other ideas, keep your skillset sharp.

Matt Greer
"if/when MS comes out with the table they've been talking about." Are you referring to the [Microsoft Surface](http://en.wikipedia.org/wiki/Microsoft_surface), which was released in 2008? Heck, there's a ride at Disney World where you design your own roller coaster/bobsled course/flight path using a Microsoft Surface, and then experience your design using a really big robotic arm. :)
Brian S
I think mobile application development is the frontier that all developers will go to. If Microsoft gets back into the mobile market (as they are supposed to with the Windows 7 phone) than learning Silver Light is the way to go... However, as you mentioned... There are doubts as whether Microsoft will be a real competitor in the mobile market again.
Jeff V
That was a typo, I meant "tablet". Steve Ballmer lately has been saying taking down the iPad is MS's new #1 priority. If MS manages to pull off a quality iPad competitor, I'd be willing to bet it's Silverlight based.
Matt Greer
Thanks Matt, your comments make a lot of sense
Stewart Ritchie
+2  A: 

Both SL and Flash are compelling for the same reasons: platform independence. Running in a virtual machine and getting away from the browser wars saves you a lot of work and money, both during dev and O&M. Most engineers don't care about this (they just want "wins" so they can move on to the next project), but businesses do if they know what to look out for.

Also I wouldn't even pit SL vs Flash, or JavaFX so much. Right now it's a tug-of-war between those VM-based technologies and the HTML5 'dev pop culture' quagmire that has been brewing for some time now. The question is, do we want to continue fighting an endless battle of browser compatibility wars, or are we going to go in the direction the hardware world has gone in and start using virtualization to overcome that obvious problem?

If you like coding something once, and having it "just work", without needing to test on every browser being used, and without worry of it breaking some years down the road - you're on the right track.

Crusader
I'm really liking the Virtualization argument, that makes a lot of sense.
Stewart Ritchie
This is very true (and nicely put). It is a PITA to develop for multiple browsers - and arguably more expensive. I would much rather develop for one platform, with superior languages and tools.
Allan
I have found differences in the Mac and Windows plugins (subtle, but they are there), and Moonlight isn't even close to on par. You completely lose all phone support too once you go the Silverlight route (and as far as I know, even WinPhone7 won't just run a standard Silverlight app). Another side to all of this is how incredibly rapidly Silverlight changes. Techniques that were appropriate in SL2 or SL3 aren't in SL4, surely SL5 will be the same thing. Heck, SL4's introduction of command support made Prism and other frameworks one step closer to obsolete. I don't even use them anymore.
Matt Greer
Good points Matt but there are mitigating points. I'm sure the mobile support problem will be resolved eventually. It's not a problem for Flash anymore really (unless you have one of those intentionally crippled Apple products). I'm no SL expert but it's still relatively new, and while it may be early to develop a huge app with it now, fast development (initially) is preferable to turtle-speed development (HTML5). As for minor differences in Win/Mac, that's difficult to resolve, although at least they're minor. The big win is on "browser platform" independence, not so much OS independence.
Crusader
+1  A: 

First of all, I think you shouldn't fall for the HTML5 hype and the misbelief, that it can replace all plugins out there. It won't, because it's not intended or able to: http://stackoverflow.com/questions/2643407/should-web-developers-learn-flash/2644910#2644910

Second of all, Flash and Silverlight are not competitors either. Silverlight is a young, powerful, omnipotent platform, whereas Flash is matured, streamlined and highly productive. One of the biggest mistakes was to market Silverlight as Flash's opponent. When it comes to developement time, Flash will excel over Silverlight in the areas it has been designed for, while Silverlight leverages the power of the .NET platform and allows reuse of numerous .NET-libraries, making it fit to tackle enourmous projects.

Third of all, you shouldn't be too keen on the cross-platform thing. The best cross-platform experience you can get is using Java/JavaFX. Flash is horrible on Linux and still quite awful on Mac. As it seems, the same thing applies to Silverlight/Moonlight. Their strength lies in cross-browser compatibility. Except for a few quirks, on a given OS, each will provide an identical experience accross all browser (identically good on Windows, identically quirky on Linux).

I think, the recent increase in interest in Silverlight skills comes from the fact, that decision makers (the majority being the kind of people, who can't tell a server from an aquarium) are starting to believe, it's a cool thing. Market penetration has risen high enough, and the tool is sufficiently old, to be trusted.

I'd never say "Flash is the future", or "Silverlight is the future" or "HTML5 is the future". They all are. You have to decide for yourself, what kind of applications you intend to develop and find the right tools to do that. Better be good at something you like and believe in, than mediocre at something, that's hip right now.

greetz
back2dos

back2dos