views:

2093

answers:

20

Silverlight is enticing from my C# background. But I'm concerned about it's penetration. Is it likely to catch on ? OR perhaps I should just bite the bullet and learn Flash.

Does anyone have any advice on which to choose ?

+2  A: 

Youtube made the choice for the rest of us :)

You really do not want to be constrained by the platforms that you can run on. And more importantly , you should not make this decision on your users behalf.

Learning
Now I have to catch up ;)
ypnos
+3  A: 

As a user who is not able to view any Silverlight content I have to strongly advice against it.

ypnos
our ideas and rep count match!
Learning
Why aren't you able to view Silverlight content?
17 of 26
Moonlight is out on linux now
qui
Check out: http://weblogs.asp.net/scottgu/archive/2009/02/11/moonlight-1-0-release.aspx
qui
Moonlight is the key to Microsoft gaining equivalent market penetration with Adobe.
17 of 26
I hear moonlight is out blablabla...root@~ $ pacman -Ss moonlightroot@~ $ pacman -Ss flashextra/flashplugin 10.0.15.3-1 Adobe Flash Playerextra/gnash-common 0.8.4-1 A GNU Flash movie playerextra/gnash-gtk 0.8.4-1[...]I guess you get the idea.
ypnos
I cant view any silverlight content because I dont want to install yet another vendor specific browser plugin.
Neil Aitken
@Neil Aitken That's 'won't', not 'can't'. ;)
Nidonocu
@Nidonocu - very true, but Flash currently rules the roost, if someone can make a killer app in silverlight that I just have to use, then i'll install it. until then I have no desire for another RIA plugin
Neil Aitken
+2  A: 

Silverlight

AnthonyWJones
he he .. you listed both the choices under community wiki.
Learning
The objective, clearly lost on most peeps is for each visitor to vote in one direction or another. It wouldn't be fair to allow oneself to aquire rep in that way.
AnthonyWJones
A: 

Flash

AnthonyWJones
+7  A: 

You should consider that the Flash player is ubiquitous, while Silverlight is not. Also you can develop for Flash using free tools like the Flex SDK and FlashDevelop.

http://www.adobe.com/products/player_census/flashplayer/version_penetration.html

Silverlight gives you additional pains when it comes to cross-platform compatibility, since the open-source implementation is not 100% compatible and lags behind the official version, so you will have to test like mad to make sure your app works on both Silverlight and Moonlight if you don't want to risk losing an army of Linux users. Nevertheless Moonlight already claims to be compatible with Silverlight 1.0.

edit: fixed post according to comments

Richard J. Terrell
Mac/Linux users = army? Whose? The Shetland Isles? ;)
Jeff Yates
I'd point out that Mac Silverlight is 100% compatible with Windows Silverlight. And Mono has now reached full compatibility with Silverlight 1.0.
Nidonocu
Besides FlashDevelop and SDK as mentioned by Richard, there is also things like this out there for VS2008 users http://www.sapphiresteel.com/A-Brief-Guide-To-Amethyst
AlexanderN
A: 

At the moment, I would choose Flash. It doesn't seem like Silverlight has the support necessary to really make it a competitor (and it's just not mature, I tried to do things in it and it seems to be lacking some needed functionality). I'm a little skeptical that MS is going to be able to take on Adobe in this market in the end, since really this plays to Adobe's strengths of UI and graphics. Maybe in the longrun, MS will be able to be a competitor, but I don't see it happening anytime soon.

I think the MS's real trouble is going to be with its target audience. I get the impression they are trying to appeal to developers, which, on the whole, aren't really intrested in doing strong UI stuff. Right now I think most (if not all) Silverlight development is on Windows which means that a lot of flash/designer people won't touch it as a matter of principle. I think MS having a Flash like item is a neat idea, but it is playing against a very seasoned opponent which has been successful in forcing MS out of the graphics market for a very long time (that was the real reason they bought macromedia).

Kevin
Microsoft simply has too much weight (money and development talent) to not be competitive in any market that they choose to go after. Also, Microsoft's development tools are second to none so many developers would prefer to develop in that environment.
17 of 26
Maybe you should check out their list of failed attempts. There are a ton of developers who never want to touch an MS ide.
Kevin
oh btw on that note. Tell me how the whole ms search vs google is doing? Yeah their weight and intellegence in the industry really scored a home run against google on that one.
Kevin
I resent the implication that being developer means you don't care about UI. That's, to be honest, nonsense.
Jeff Yates
Let's be honest. How many art classes did you take in college? How much time do you spend reading about things like color theory and post modern art? How much time have you spent reading about Cognition and how it applies to usablility? Caring means you spend time learning it and practicing it.
Kevin
+17  A: 

I've learned both to some degree. My overall impression:

Flash

  • High browser installation rate
  • Tools are expensive and less available
  • Relatively easy to learn
  • LOTS of tutorials available, mature technology

Silverlight

  • Lower installation rate, but rapidly increasing
  • Greater focus on separation between development tools- Visual Studio, Blend
  • C#/VB.NET experience can be leveraged
  • Somewhat more arcane/complex
  • Still very much in development

Summary:

There is lots to like about both platforms. I think Silverlight will be competetive over time, and may offer a better development experience in the long run. There is a huge existing community of Flash/Flex developers, and Adobe's commitment to that platform isn't going anywhere. Overall, I think having both available will be good for developers.

Bottom line: if you have the time and tools, try both. My advice for Flash- get the trial of Flex Builder if you don't already have it. As a developer you'll find it a more familiar environment.

UPDATE: If you're looking for apples-to-apples comparisons of Flash and Silverlight: http://www.shinedraw.com/

Dave Swersky
Good list, although I didn't find writing code in Silverlight/WPF to be any more complex than Flex. I also think that Microsoft has Adobe beat when it comes to quality of development tools and documentation.
17 of 26
Agreed on the quality of tools. As for Silverlight, I find XAML to be a little strange, maybe even more complex than it needs to be. Other concepts like attached properties take some getting used to, nothing too horrible.
Dave Swersky
Just posted 'both' before seeing this, but +1 for "learn both". Developers need to learn everything they can, then intelligently pick the right tool for the particular job.
Daniel
While I personally vote for Silverlight (VS Web Express 2010 apparently will have SL support, so cost to develop is 0), I would also say learn both and also think about what you might like to make. See which you enjoy using the most.
Nidonocu
I wasn't aware that VS Web Express will have SL support- hopefully that will force Adobe to back off on the price of their tools!
Dave Swersky
You left out "Your Javascript experience can be leveraged" on top.
le dorfier
+1  A: 

With the amount of weight that Microsoft has to put behind Silverlight, I expect we'll see market penetration with it down the road. Microsoft simply cannot afford to not be a part of this market and it's clear that they realize this. It's just a matter of time before Silverlight gains equivalent market share to Adobe.

Whether or not you go with Silverlight now depends a lot on your target audience. If your target is any random person surfing the web stumbling upon your site then it's probably best to stick with Flash for now. If you have a relatively captive audience who is going to be using your site for a specific reason regardless of your technology choice then you can safely go with Silverlight.

17 of 26
It won't gain similar market share to Flash; it's vendor specific and tied to Windows. The OSS implementation to support everyone else is, well, lagging behind and the people who generally make the apps make a point of using every latest and greatest feature.
Adam Hawes
What do you mean by vendor specific? As for being tied to Windows, I think that if it comes down to it we'll see Microsoft directly support other operating systems besides Windows. This market is too important for Microsoft to miss out on, and I believe they fully realize this.
17 of 26
A: 

Silverlight is currently clocking up 1.5 million downloads a day which is still someway behind Flash. However, where Silverlight could really shine is in the mobile device markets where there appear to be issues with both Flash implementation and licensing.

A: 

Just to debunk the "doesn't work on linux" thoughts on Silverlight, moonlight is out now:

http://weblogs.asp.net/scottgu/archive/2009/02/11/moonlight-1-0-release.aspx

qui
And did you run it?
ypnos
Not available for Silverlight 2.0 implementation, which is the only useful version of the technology, so for all intents and purposes it just doesn't work on Linux.
Daishiman
+1  A: 

Is it really an either/or? Take 2 hours to play with each. As a developer, you should learn as much as possible. Now, which you use in production is another matter, but if you learn both, you'll be able to intelligently make the decision that's right for your project.

Daniel
+1  A: 

Why is it a question of one or the other? The more tools you have in your belt, the better.

I'm primarily an Adobe developer with Flash/Flex, but I do some SL dev as well. If you're a C# developer then I think you will definitely find Silverlight has less of a learning curve. I can't tell how many times the more traditionally trained Java/C# people I work with have looked at some ActionScript and been positively baffled by it. To people who are more accustomed to the traditional software dev world, ActionScript is full of quirks.

That being said, Flash has the wider reach and greater acceptance right now. I think one of the big hurdles for Silverlight is that people are hesitant to install stuff when a browser prompts them. It's gaining, but I think it has a long way to go.

So to answer your question, Flash is more immediately marketable, has many more learning resources, and has proven staying power. Silverlight may be a great skill to have in the near future, and for a C# developer it will come easily.

I think it really depends on the urgency of what you're trying to accomplish.

nerdabilly
A: 

The nice thing about Flash is that it's ECMAScript, so it reinforces (to some extent) your JavaScript chops.

On my todo list is trying a project using one codebase that works in both Silverlight (with Managed JavaScript) and Flash (with ActionScript).

Nosredna
+2  A: 

For building browser deployed applications, Silverlight beats flash every day of the week, in terms of power and built-for-the-programmer-from-the-ground-up. [Not that I hate actionscript...just saying that Silverlight/WPF/.NET/VS is much more powerful and built for a Software Engineer).

For browser penetration, Flash kills Silverlight (as of 02/2009). Could change eventually, and may not matter to you...if you build the killer app, they will come.

Can anyone compare the design versus program portion? In Silverlight, designers use Expression Blend, and Programmers use Visual Studio. It appears to work well (is Expression Blend available for the Mac? I think it is). I do not know which is BETTER.

pearcewg
A: 

The best answer is here http://blog.webjak.net/2009/02/11/evangelising-silverlight/

Jobi Joy
A: 

I think it depends entirely on who your audience is. If this is going to be for the average web user (web site open to the public) then Flash would be a good choice. I think you can still find some Flash components on Microsoft's site.

Otherwise it's totally up to you. For example, if it's just for learning or for a web site where you don't care if people can see your content then Silverlight is appropriate as well.

Some really good signs about Silverlight:

  • Companies are starting to use it: Netflix uses it to stream video and the Obama administration used it for the inauguration.
  • Microsoft seems to be supporting it well and they are on Silverlight 2. So far it's doing much better than Microsoft's first attempt with their java based Liquid Motion
  • Silverlight seems to be geared more toward developers (.net developers specifically).
  • There is a Microsoft approved version of Silverlight for Linux called Moonlight. It's an open source implementation of Silverlight and they just released version 1.
  • Silverlight is a subset of WPF which gives it a familiar connection to Microsoft's .net framework.
metanaito
+1  A: 

You should learn both :)

sthg
+1  A: 

See related topic: stackoverflow - Flex or Silverlight

Christopher Morley
A: 

Flash ActionScript3.0 is ECMA based, so if you learn that you can easily convert to JavaScript or hAXe

I would go for flash. more jobs as flash developer also atleast here in Sweden. Im gonna start looking into hAXe myself, since the haxe project started a c++ convertor. Write haxe, compile as c++ , that's pretty awesome.

If you're into 3d you should check up google o3d, it's javascript controlled, it's an option and I think WebGL will be huge in the future and it's javascript controlled also.

martinlindelof
+1  A: 

I loved Flash development for many years. But then I've always been an unusual developer who likes the graphics, animation, and user interface side of things as well as the more technical side of coding. You can in fact combine these passions in Flash development and make some pretty cool stuff. I've done projects involving Flash for CiCi's Pizza, DART, and many others.

Lately though, I've been doing a lot more Silverlight development for some of my own projects. Namely, regexhero.net and silverlightshaders.net have been getting a lot of my attention. So since I officially have experience with both Flash and Silverlight I guess I'll chime in.

In my opinion, your choice should depend on a couple things:

1.) Are you a .NET developer? Or more of a Javascript kind of guy?

Since you've already stated that you have a C# background, I think you'll find the learning curve with Silverlight a bit easier. On the other hand, Flash and it's actionscript language reminds me of Javascript in many ways. It's typically harder to debug and just not quite as neat and well-organized as .NET. That's just something you have to put up with as a Flash developer.

2.) More importantly, what are you planning on building?

If you're building a nice-looking menu with animations and transitions, or some sort of promo, then it's simple -- use Flash. The Flash IDE/designer makes it easy to build motion tweens and layer effects on top of eachother. And it's also pretty good about allowing you to draw bezier curves and such inside the designer. To this end I think it has the Silverlight (Blend) user-interface beat. And then there are far more users with Flash already installed which of course you should always take into account.

But if you're building something that requires a lot of coding in the back-end then I'd strongly consider Silverlight. Silverlight has support for multithreading. Flash doesn't. Silverlight is built upon an abridged version of the .NET framework. Flash isn't. I think you'll find working with Silverlight code not only easier, but more powerful as well.

Steve Wortham