Silverlight, Flash as seen by Microsoft

You are welcome to extract excerpt of this article, but do not copy it entirely on your blog/web site.
You are only allowed to use this post content in an printed article or a newsletter by clearly exposing the source URL of this article.

Synopsis:

There have been some noise made around silverlight recently, and it finally caught my attention. Today, I'm going to tell you what I see in the silverlight plugin by Microsoft, and what I think will be is future.

What IS silverlight?

According to Microsoft web site, silverlight is:

Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web.
Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows.

I don't know about you, but apart for the speech about the supported language, that description could be related to Adobe Flash.
I'd add to the description above that Silverlight is to provide vectorial drawing facilities and streaming videos, integrated with DRM.

Another things that ring a bell, is the support of all those languages. It looks like silverlight would just be a container, and that mostly any language could be used in it ?
This too reminds me of what they are doing with .NET, having one platform connecting multiples languages together.

.NET is build around the CLR. Basically, the CLR is a layer running as a foundation, which provide basic interface and a unified interface to hook to the system.
The CLR is able to dialog with an application via the Microsoft Intermediate Language (MSIL). MSIL is like an object-oriented version of assembly language and is platform independent.
I'll stop here, saying that once an application works against one CLR, it should be able to run on any computer that provide a CLR. That computer running Windows, MacOS, or even Linux.

Wait... So it is portable ?

Well, yes. As far as I understand it, silverlight allows a programmer to embed .NET code into a portable application that will be able to be ran from within a web browser on any platform that provide a CLR.

For now, Windows and MacOS provides such interfaces. A Linux one is being developed for quite some time now, by Miguel De Icaza and his team.
They are working on the MONO project, which is nothing else than a free implementation of the .NET foundations and classes for UNIX/Linux like systems.
What they are doing now, is porting the silverlight plugin to MONO, to bring silverlight to Linux too.

What have surprised me here, is that they are working with Microsoft to realize that. I've found this on a Miguel De Icaza's blog entry ( http://tirania.org/blog/archive/2007/Sep-05.html ) and it's corresponding counterpart on Scott Guthrie's ( General manager at Microsoft. One of the big guy who worked on .NET ) blog too ( http://weblogs.asp.net/scottgu/archive/2007/09/04/silverlight-1-0-released-and-silverlight-for-linux-announced.aspx )

Today we are formalizing a collaboration between Microsoft and Novell with the explicit purpose of bringing Silverlight to Linux and do this in a fully supported way. The highlights of this collaboration include:

  • Microsoft will give Novell access to the test suites for Silverlight to ensure that we have a compatible specification. The same test suite that Microsoft uses for Silverlight.

  • Microsoft will give us access to the Silverlight specifications: details that might be necessary to implement 1.0, beyond what is currently published on the web; and specifications on the 1.1 version of Silverlight as it is updated.
  • Microsoft will make the codecs for video and audio available to users of Moonlight from their web site. The codecs will be binary codecs, and they will only be licensed for use with Moonlight on a web browser (sorry, those are the rules for the Media codecs[1]).
  • Novell will implement Silverlight 1.0 and 1.1 and will distribute it for the major Linux distributions at the time of the shipment. We will offer some kind of one-click install for Linux users (no "Open a terminal and type su followed by your password..." as well as RPM and DEB packages for the major distros and operating systems.

Ok, good, so is flash. So what ?

Well, it's exactly the question that I have in my mind since I began looking for what silverlight is.
For the record, I'm not a .NET developer, and I have never done any ActionScript nor flash before, but I can't stop myself thinking that silverlight is an attempt from Microsoft to attack Adobe's Flash on his domain.

Just look at some key points:
[TABLE=2]
Beside, Microsoft took his own road again. For the vectorial graphics, they choosed to implement them using XAML .
Sure, XAML is part of .NET, but SVG is an open and reviewed standard for vector graphics, and they could have simply used it.
It's not a real suprise, as Microsoft tends to use they own tools rather than recognized standardized one, but still it would have been a welcomed move.

The competition

What you ( and I ) may have not heard about, is that silverlight is not the only concurrent to Adobe's Flash that have been launched last month.
SUN too is entering the dance, with his JavaFX language, but I could not find much information on it now. I will cover it in another blog post.

Silverlight viewed from Adobe

What I wonder today, is what will be the answer from Adobe to silverlight.
I have searched, but not found anything. This too, is something I'll look for.

The future

So, for now, the real competition will be between Adobe's Flash and Microsoft's silverlight.
I honestly see a hard time coming for silverlight. Flash is here for so long, that they will be hard to beat. The community of Flash developer had nearly 10 years without real competitors to develop, and Flash have acquired a really large amount of supporter by it's capacity to bring animation, sound and videos to any user using their plugin without having to struggle against platform or browser particularities.

On the other side, I see Microsoft having a hard time on it's reputation ground. I hear more and more people becoming less trustfull against Microsoft, due to the long list of problems, bugs and errors they had to endure with their computer.
Those griefs may or may not be hold against Microsoft, but in those peoples eyes, I'm not sure they will blindly install another plugin for their browser. Heck, I'm even sure that 80% of the peoples using the net today don't have any idea what a plugin could be... But anyway, they will finish by having it installed in a priority update, which will allow Windows Update to force it's installation without even asking the user.
What will be interesting too, is to see if IE7 will run silverlight applications without the infamous "click here to activate".

Seriously, for the simple guy, silverlight is nothing new; for the developer or a designer that have worked with flash for the last 10 years, I don't think that many of them will simply throw away Flash to learn again everything on the silverlight platform.
Even if Flash have some weak spot, and I'm fairly sure it have, even if I don't know them, Adobe won't stay put.
Flash will continue to be extended and fully supported.

So, this leaves silverlight more open to newcomer to the design area. The .NET roots could be an advantage here, in a small extents. It could gives enterprise the opportunity to develop domething new for their web presence, and if they already have a developer team inside they're walls, allowing them to work with the same base as previously would be a plus.

My guess is that flash will continue to lead this segment. There is simply too many good developers and designers that use it now for it to change in the next years. But we will see a rise of silverlight applications coming from enterprises that did not had previous experience with Flash.
Most probably, these enterprise will be middle to big sized enterprises, and each new silverlight launch (or announce) will be well publicized. It is know that most effective Microsoft team is not the development team, but their selling team.
On that ground, I sense a ferocious marketing campaign that will try to set a hype around silverlight and it's possibilities.

Links

Powered by ScribeFire.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically each day to your feed reader.

Trackbacks & Pingbacks

No trackbacks/pingbacks yet.

Comments

Really good writeup. I’m not sure we have an “answer” to Silverlight but we’ve been putting some new stuff in the Flash Player like support for H.264 video. If you have any questions, let me know.

=Ryan
rstewart@adobe.com

Thanks Ryan.
I have to admit I’m pretty impressed to have caught your attention. And a bit proud that you call it a “really good writeup”.
As I said in my post, I’ll keep looking about this silverlight/javaFx gig, and I’ll continue to comment my views on it.

And if I had any questions about Flash that I could not find an answer, you will hear of me.

And by the way, sorry for all those spellings errors.
I was really horrified when I proof readed this post this morning.
Note to self, don’t publish a post at 3am, it’s a __BAD__ idea…

Hi Ryan,

My impression is that the future of Silverlight (1.1) is geared more towards building rich client applications of the kind that have been difficult to build in Flash (although this is also changing with Flex2, Air etc). As I see it there are 2 major wins for Silverlight over flash in this area:

1. the support for .NET framework languages as well as JavaScript, (Iron)Python, (Iron)Ruby means that there is a large amount of code out there that you can port into you apps.

2. You have all the tooling for .NET at your disposal - visual studio, expression tools, all the testing tools / frameworks, ability to use continuous integration etc that as far as I’m aware are generally lacking in the flash world.

That said, Silverlight 1.1 is still in alpha and theres a lot missing and unknown about how the process of developing rich client apps in it will work.

This is a good summary of the situation. Here are some additions and clarifications:

Languages supported:
1. Silverlight already has the multilanguage support of .NET platform.
2. Java(the platform) has many languages implemented but the Java language is the most supported. JavaFX Script is a new scripting language for the platform. (JavaFX Mobile aims to unify APIs for mobile phones and is somewhat tangential to comparisons with Silverlight/Flash, so I won’t mention it more)
3. Flash’s VM is titled “Actionscript VM” (AVM) and only Actionscript(which is really two languages, AS1/2, and AS3) is officially supported with AVM. An alternative open-source language compiling to AVM, haXe, is available. Finally, a tech demo at the recent Adobe MAX conference showed C++ code compiled to run on AVM. We don’t know yet if anything will come of the demo, but it opens many, many possibilities.

Application packaging:
1. I’m not sure exactly what Silverlight offers. I’m sure there’s a browser plugin, and a way to build executable binaries, since the former is a major feature and .NET already does the latter.
2. Java currently offers applets in the browser and Java Web Start outside of it. Java Web Start acts as its own installer/package manager tool. Executable binaries can also be built. JavaFX does nothing new for packaging AFAIK.
3. Flash is a ubiquitous browser plugin, can build executable “projector” files(to a limited number of target platforms), and now has a Java Web Start-like package manager with the AIR system. AIR assists in access to lower-level details of the OS and platform that Flash normally restricts.

UI design:
1. Silverlight supports Microsoft’s touted XAML markup format for interface design.
2. JavaFX Script has the primary goal of UI markup in mind. 3. Flash has two modes of interface design: graphically with the Flash IDE, and using MXML markup with Adobe’s Flex toolkit. Flex aims to be more developer/app-oriented than Flash. Note that both MXML and XAML are XML-based. Don’t know how similar they are, though…

You several times made reference to “Flash winning due to the number and quality of developers” (paraphrased, not an exact quote). Thing is, the number of .NET developers far out weighs the number of Flash developers (and I won’t get into a discussion of the quality of the developers in either camp… both have good and bad developers). Further, the multilanguage support of Silverlight gives an advantage to Silverlight as well, because the numerous Python and Ruby developers have some knowledge to bring to the table as well. So, if you’re going to evaluate things solely on the programmer base, I’d say Flash has very little chance. Of course, that’s over simplifying things, but I did so to make my point. In reality, Silverlight does have a hill to climb, but at this point in time it’s Adobe that has to make moves in order to keep it’s dominance in the market.

@James:
Those are very good points. Thanks for presenting them. They seems obvious to me now, but not before you talked about them.
Thanks!

@wekempf:
I’d will just temper a bit the affirmation you extracted from my post: I don’t think that flash have more developers than .NET, but flash have a bigger community of designers.

Designers are not developers, and developers are often poor designers. Sure, there are good designers that are good developers, but those are like pearls; extremely rare.

.NET is more geared towards a team, with designers and programmers working together to deliver a final product, and I’m not sure that they will outnumber the quantity of flash designer, simply because I think silverlight might attract more medium to big entity, and not that much LLC or “mom based” business.
Those will stay in the field of Flash, in my opinion, at least for the years to come.

Now, neither silverlight nor javaFx (which will be my next post, I’m working on it) are mature products yet.
Both are just draft for the moments, with heavy development being made on the core of those projects in that precise moment, so I don’t think that anybody can predict anything now.
In that view, I don’t think that the ability to run python or ruby code can attract that much peoples and make them throw away years of flash to implement everything in another language, as appealing that this language might be.

But true, Adobe might have to watch closely, and to listen real good about what is important for the peoples that might use their products.
In the end, ease of development, reachability, user base and support will be everything that will motivate the choice.
Both Adobe and Ms are big, strong enterprises that won’t disappear in a couple of months, and it’s not on the reputation of the two that the choice will be made.
At least not if someone with a bit of intelligence have to make that choice.

Well, Adobe Flash still have a problem with support for Bi-directional Languages like Arabic and Hebrew, Right-to-Left. And this is something solved by Micro$oft long time ago. Adobe seems not to be much interested in fixing this in Flash or they might have a problem in implementing it properly.

Wouldn’t be possible to create a component(or anything similar) to be added to Visual Studio .Net so developers can be able to use any of the .Net languages to develop applications for Flash? — this is just an idea that crossed my mind and not sure of its merit.

Coming from a java and .net background and making the move to Flex some months ago, I must say I miss the relative ease of development and maturity of tools found in the microsoft environment. The flex community and resources are almost nonexistant in comparison. Finding help, good examples, resources, etc is like pulling teeth in Flex. If you have a common problem, sure you can find 20 people with the same issue, but no one with a common solution. If microsoft makes it easier for developers, I think they will gain a credible advantage and very quickly.

That said, the main draw back to silverlight is the lack of firefox support. With firefox now having a 10% market share, I don´t believe a lot of public web sites will alientate 10% of their market. Silverlight will work for inhouse applications however.

The other advantage I see to flex, is the opensource nature. This should mature the product very rapidly (see gripe number one) and keep it developing quickly. Plus the integration with Media Server and the growing number of open source alternatives helps. Silverlight will have some sort of server backing it, but until pricing is released, who knows.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(required)

(required)