| Comments

UPDATE: Michael has posted a comment here and offered himself up to the gauntlet and apologized for his article.  He writes below:

Tim did me a favor with this article, and his comments on Connected Internet. I have left the article up on Connected, because frankly, I deserve the lumps I get over it.

Anyone who has spent more than 5 minutes talking with me, reading this blog, or listening to me on podcasts (Herding Code, Thirsty Developer, Misfit Geek) will know that I LOVE Microsoft.  I’m not ashamed to admit it and I’m not ashamed about my passion for the company or technology it produces.  I’m also not afraid to admit when and where we suck.  I don’t use every Microsoft product…if there are ones that I feel are better for how I use them, then I pick the better tools/technology.  There, bias stated.

I also think that I’m a fair person when it comes to comparisons and reviews and answering questions about competition, etc.  I welcome those conversations.  When I participate in them I do my best to be informed or point out where I’m not informed.  When not informed I try not to make definitive opinions until I have been informed by research or in trying it out for myself.

So you could imagine (like others) that I get frustrated when I see, hear, read things based on bad information, and what seems like no research has been done.  I’ve got thick skin, can usually comment and brush it off.  But today I read something that just triggered a twitch response in me that is making me reply.  It isn’t because of this post only, but because others have written articles on Silverlight that have used the same ill-informed bias.  The one that got me today was from Michael Lankton written for Connected Internet titled 10 Reasons Why Flash is Better than Silverlight.  Michael’s bio talks about him being an AV enthusiast and a corrections officer.  It briefly talks about him having ‘some coder and sysadmin in his history’ – here’s the full bio:

About the Author: Michael was a bass player in a hardcore punk band in the 80's and spent the 90's building and riding custom Harleys. As strange a combination as it may seem, Mike also has some coder and sysadmin in his history as well. At 43 Mike's now a husband and dad, and works as a Corrections Officer in a maximum security lockdown unit by day, and is admin at AV Enthusiast and contributor to Connected Internet when time allows. Mike is also passionate about food and travel.

So, bravo for Connected Internet for picking someone acutely aware of the landscape of the RIA space to do this comparison.  Oh wait.

A few people have commented on the post and JC being first had a lot of good points, refuting most of the bad information but Michael hasn’t corrected anything (despite saying so).  I’ve posted a comment offering to provide accurate information for him (and I’ll extend to anyone) in doing an evaluation.  You should be informed about the capabilities before doing things like this.  In that spirit, since there are some common misconceptions noted in Michael’s post that are incorrect, I had a moment of thought to note them (which others have already added their comments as well).

Michael’s intro paragraph says “you have better options for embedding video and audio content into a web page” than Flash or Silverlight.  Really?  Is this the wondrous HTML5 you speak of?  That isn’t complete, only supported in certain versions of browsers and requires likely a different encoding of the media than you already have?  Yeah, thought so.  Let’s be honest.  Flash and Silverlight are *the* ways to leverage media in mainstream applications today.  Are there alternatives?  Sure.  Are they more pervasive?  No.  On to the article after this little intro correction now.

1. Platform compatibility. 

MYTH: Michael notes the platform where we are supported and on Mac says “only just recently too.” 
FACT: Silverlight has been supported on Mac platforms since it’s incarnation.  The current managed code versions are supported on Intel-based Macs only.  A simple check of the system requirements would have found this.

In the comments Michael states that what he meant by this is that .NET is required.  We’ll get to that in point 9.

MYTH: Windows servers are required for Silverlight.
FACT: You could serve up Silverlight from your Samba share if you want.  Silverlight is a client technology…we don’t care what is on the server.  The only thing we require (for security) is that the XAP must be served with the right content MIME type (application/x-silverlight-app).  That’s it.  And every web server out there can have this MIME type.

2. Market penetration.

Our latest install statistics we see from our downloads, etc. as announced at MIX09 put us around 1/3 market penetration.  This is continuing to grow.  I honestly don’t have daily visibility to this number to give you current stats.  Michael makes a note “Not sure about that, as some independent studies show it as low as 6%” – um, cite the study?  If not, that’s a blatant assumption.  Heck even the much disputed riastats.com shows penetration at 34%.  Again, cite the source, or move along.  I even cite riastats.com here, although that’s not the benchmark that Microsoft uses…but at least I’m citing where I pull the number from (the 34% number, not the 1/3).

3. 64-bit web browser support. 

It’s funny that in the comments Michael says to a commenter not to talk about beta technologies, yet in this point here that’s all the evidence he has: An alpha of Flash for 64-bit.  Silverlight doesn’t have a 64-bit plugin.  Neither does Flash.  Enough said.

4. Supported image formats.

I couldn’t find a definitive source on what image formats Flash officially supports with no extensibility, but I think it is JPG, PNG and GIF (someone cite a source if you have better data).  True, Silverlight doesn’t support GIF.  I’m not upset about it.  Guess what though…we have an extensible platform and if you absolutely need to support your GIFs from 1997, you can.

5. Package Delivery.

MYTH: Silverlight files are loose and uncompressed.
FACT: Silverlight files are packaged into a XAP file which is a standard compressed/archive format.

In fact, just rename to .zip and use your favorite tool to see the contents.  If you think your favorite tool can get even better compression…feel free to recompress again.  We think we have decent improved compression. 

Oh and we also support cached assemblies, partitioning applications, and other techniques to minimize the size of your application base file.  This point tells me he’s evaluating on Silverlight 1.0 (which didn’t leverage the XAP package and was in fact loose files – which could be gzip/deflate compressed by the server btw).

6. Audio.

MYTH: Silverlight does not support APIs for generating and controlling audio.
FACT: Silverlight has a MediaElement control for controlling audio/video, MediaStreamSource API for providing your own decode/logic and APIs for RAW audio, video stream. 

Again, do your research.  Samples available for this here (extensible media format support sample) and here.

7.  Portability.

I’m not sure his description of Flash’s abilities here are even accurate.  I *think* he may be talking about just running a SWF file using the standalone Flash player, but I wonder if he also means AIR here as well.  I’m just not sure (and he doesn’t indicate).  Silverlight has the capability to run out-of-browser.  Is it a full-trust application like AIR?  No.  But again, he doesn’t clarify here what he’s referring to.  Sure Flash has a standalone player, but I can’t remember the last time I played only a SWF.  If referring to AIR, there are some comparisons that could be drawn, but bottom line is you can run Silverlight applications out of the browser.

8.  Accessibility.

MYTH: Silverlight is not an accessible technology.
FACT: Silverlight can be developed with accessibility in mind.

Michael points out “changing color schemes” and I think is referring to high-contrast mode.  Yes we have that.  But we also have caption support for media files and have the ability to integrate with other accessible technologies.  Here’s some resources:

  • Accessible Media Project (full open source implementation of an accessible media player).  Note: that this is built upon *existing* APIs that are built-in to the product.
  • Accessibility in Silverlight with Mark Rideout here and here.
  • Buttercup Reader – an implementation of an accessible application in Silverlight.

9.  Client-server communication.

MYTH: You must use .NET server technologies for service communication on Silverlight.
FACT: Silverlight can communicate with ASP.NET web services, WCF, SOAP services and REST APIs. ASP.NET on the server is not required for client-server communication.

Michael’s assertion here is simply incorrect.  Silverlight has a network stack available to developers to communicate with servers/services of all kinds and also includes a Socket implementation if you so desire.  This is just completely false what Michael notes here.

There are some technologies we are developing (.NET RIA Services) that do require .NET on the server and provide a better experience for developers using Microsoft technologies front-to-back.  This, however, is not a requirement of Silverlight.  Use your Ruby REST api if you’d like.

10.  3D rendering.

I’m definitely not an expert in 3D.  I have to admit I don’t know the capabilities of Flash in this regard.  Silverlight does, however, support perspective 3D (taking a 2D object and putting it in 3D space).  Do we have full on support for 3D meshes, etc.  No, we don’t right now.  I *think* (again, Flashers correct me if I’m wrong) that Flash’s implementation is similar based on some quick search research.  I’m willing to admit I’m wrong here on their implementation.

We do have several ways to extend 3D type models though:

  • Kit3D – an open source 3D graphics engine for Silverlight.
  • Balder – a managed game engine with 2D and 3D support.
  • Zam3D – a commercial product for exporting 3D environments to XAML

As for game development.  Sigh.  Yes it can be done.  In fact how about a platform that lets you reuse technology to develop a game for desktop, browser, XBOX and Zune?  Check out Silver Arcade for some casual games that people are developing.  We’ve also got a thriving ecosystem around physics engines that are open source as well!  Casual games not your thing?  How about Quake in Silverlight?

Michael ends his article with these words (emphasis mine):

I have a platform to express my opinions, and they are generally backed up with solid experience or data to justify them. I am not always right, and I welcome anyone who disagrees with my thoughts on Microsoft’s Silverlight to begin that discussion in the comments section.

Michael – you have been engaged in the comment section and haven’t corrected where you are wrong.  Your opinion, this time, is not backed up with solid experience or data.  Period.

This work is licensed under a Creative Commons Attribution By license.

| Comments

At the Google I/O conference this past week, they announced Google Wave.  Almost immediately, I started seeing Twitter replies, blog posts and various articles talking about how Google Wave is going to kill Flash/Silverlight/JavaFX.  None of these made sense to me…and at that point I’d yet to see anything about Wave anyway.  I posed a few questions on Twitter as to why people felt Wave was an RIA platform killer (that’s what I was reading into a lot of the buzz against things like Silverlight).  I got more confused with all the replies :-).  So I had a moment this morning to listen to the Google I/O Wave keynote.

I first heard Vic Gundotra come out and describe Wave as a “…personal collaboration and communication tool…” followed very soon by an introduction of Lars Rasmussen who immediately also came out and introduced it as a “…communications and collaboration tool…” as well.  Hmm, okay, so it’s a tool?  This is where I was at so far less than 10 minutes of the presentation.  In fact everywhere it is being described so much as a tool rather than a platform.  In their post they help differentiate a bit more calling it a product, platform and protocol.  The keynote session finally got to this point as well.  Great, now I get to learn about the platform.

After about 40 minutes of the presentation I’ve seen a very interesting project/product, but haven’t seen it as a platform that is replacing anything like Silverlight.  Stephanie Hannon, the lead product manager, unveiled the Wave product as an HTML5 application built using Google Web Toolkit (GWT).  Since GWT can be used today, I was curious what aspects were HTML5 in the app – I didn’t feel they elaborated at all – someone correct me if they did please.

At least 40-50 minutes of the demonstration was all about the Wave experience, a lot of looked to me like a tight(er) integration of Gmail and Google Talk…both of which are products I admire and are great examples of rich web applications.  There absolutely were some cool features such as the real-time communication updates (no more waiting for Tim is typing).  The “playback” feature was pretty cool/fun to see as well, but I’m not sure how much I’d use it.  Obviously demos at conferences are contrived and so as cool as it was, I can’t wait to test it out in the “real” interwebs.

The drag/drop feature of images from desktop to the Wave was also cool and raised my eyebrow.  Then Stephanie points out that this is something HTML5 cannot support and that feature requires Google Gears.  They mentioned they are working on a proposal to HTML5 to accommodate.

The other promise of Wave was that it would be “open” – a phrase that seems to have become a buzzword among anything web.  Open at what level I wonder?  Even Lars himself mentioned that they would “…open source the lion’s share…” of the Wave product experience (and demonstrated one minor skin customization).  But what isn’t in the lion’s share I wonder.

So the product got a lot of attention then about 20 minutes or less of the platform/protocol.  The platform seemed to have been demonstrated with the use of gadgets (embedding a map in the Wave, embedding the Wave in Blogger, etc.).  In fact the only aspect of the platform I felt was shown was embedding (they even referred to an embedding API).  The protocol also claims to be open.  Great!  There were some minor demonstrations of this (I admit, kind of hard to ‘show’ a protocol), but didn’t really get emphasis I felt.  So of 3 pillars of the Wave announcement, really only one of them (product) got any real depth.  Granted (and they admitted several times) that the whole Wave concept is in early form and limited access given to developers.  Frankly I was surprised no Android-Wave integration was shown.

From a product standpoint, it looks like a fun collaboration tool.  I have some concerns about the user experience like collaborating with LOTS of people.  Their UI seemed to make use of avatars and make the assumption of collaboration of 3 or less.  I routinely collaborate professionally with large groups and personally with groups more than 6 (think homeowner association).  What does Wave look like with groups or large collaboration…could a Wave look so spaghetti that it becomes unusable?  I suppose that is the intent behind playback.

Nothing that I personally saw (and I’ve yet to get my hands on it) led me to draw comparisons/conclusions to Wave threatening RIA platforms like Flash, Silverlight or JavaFX.  Sure, Wave as a product is a demonstration of a great web app/RIA…but that’s an implementation, not a platform.  So is HTML5 really what people are talking about here?  Okay, help me understand how HTML5 Wave in the scenarios they demonstrated?  Even they admitted that some of them were using Gears.

One of the more forwarded articles was one by the Zoho executive staff titled Microsoft Silverlight vs Google Wave: Why Karma Matters.  Sridhar in that article should really change the title.  It’s misleading and he doesn’t prove the point of the title.  What he explains is the buzz behind early alpha like Wave versus early stuff from Microsoft.  The excitement around Google announcements is generally huge and positive (although some don’t think it’s the cat’s meow) contrasted with Microsoft releasing something and everyone usually being a skeptic.  Sridhar tries to draw some analogy to Silverlight, but I think fails.  He’s just throwing more FUD around Microsoft in general.

What I also find interesting is this buzzword of “open” – something Google is praised for.  Let’s take a look at Google Wave Federation Protocol.  What’s open about it is that they’ve created something and put it out in specification form (and put a .org domain around it).  If that is the definition of open, then why is Microsoft hammered for XAML?  We have a spec out there?  What about C#?  Heck, that’s an ECMA standard.  I see a bit of a double-standard here.  I’m not saying that organizations like Google and Microsoft shouldn’t continue this practice…in fact, the opposite.  But it does seem odd that a protocol built to serve a specific need that wasn’t already available in existing standards is being praised when that is what other organizations have been specifically slandered for in the past.  Seems odd.

So is Wave going to threaten RIA platforms?  I don’t know.  Is it even an RIA platform?  I just think that all the messages about how Wave is pushing out things like Flash, Silverlight or JavaFX are unfounded at this point.  They all serve purposes.  Is HTML5 really what people are talking about here?  Fine, then draw that comparison and put some meat around it.  As far as I could tell, HTML5 is a working draft still.  To me as a developer (and as a user) this means that even once ratified as a standard, browsers will have to decide to support that (I know some have already)…and even beyond that-people have to use those new browsers.  The slowness of standards leads me to believe that RIA platforms will be around a while as there is some flexibility in providing RIA frameworks from commercial vendors.

If I’ve misunderstood something, please correct me.  I really want to make sure I’m seeing the whole picture.  But in the short days after a keynote only demonstration that was admittedly baked, I’m not sure the sky is falling for RIA frameworks and platforms.

This work is licensed under a Creative Commons Attribution By license.

| Comments

There has been much a news about the use of Flash for Sunday NFL games on the NBC web site.  Some have claimed that NBC “dumped” Silverlight.  Whatever.  Anyone who thinks only one person at a company the size of NBC makes the decision does not understand corporate America in large companies.  NBC is a giant company of companies, probably each operating in their own right and left hands never talking to right hands.  That’s not to diminish the work for the NFL site, just a reality of business.

What is ironic about this implementation is that it proves that no technology is immune to business deals.  What do I mean?  Well, when the NBCOlympics.com site was introduced there were some critics of the actual implementation (not the quality, but the features).  People were upset about no full-screen as well as the inability to see the content outside the US from the NBC site.

Enter NFL on NBC.  Think Flash is immune and could “solve” that?  Think again.  Like most implementations of web applications, the NFL site developed for the lowest common denominator to meet their customers.  First, they target a 1024 screen resolution.  Second, no full-screen capability.  Third, users outside the US cannot view the content.

It is the latter two that I mean with regard to no technology immunity.  Why no full-screen?  Um, you think the advertisers want their ad space to disappear?  I bet not.  I’m pretty sure Spring paid good money to be visible the entire time.  One may be quick to point out overlays and such.  Quite frankly, I agree.  I’m not sure why developers don’t offer up the ability to do overlays on the media much like the experience that we see on regular television.  My guess here is that existing ad platforms are serving up content and the paradigm hasn’t shifted to in-media insertion just yet.  I know that Silverlight Streaming services is experimenting with contextual media advertising and I’m sure others are.  Until then, you won’t be seeing many full-screen applications unless the advertisers are in that full-screen experience…get used to it until this changes.  I bet NFL would have loved to have a full-screen experience.

On to the second one, non-US viewers.  They’ll be greeted with this:

NFL non-US image

Ironically, when the Olympics came out I saw many more “Microsoft you suck” for this more than “NBC you suck.”  So where is the “Adobe you suck” comments?  Anywhoo…you can “blame” nobody but NBC.  Welcome to the world of digital rights.  The broadcast rights for the NFL are probably sold regionally and NBC owns the rights to the US (I’m sure there are other countries licensing the rights to NFL online as well).  So for this particular experience provided by NBC US, they are honoring that license.  “Blame” is such a strong word.  I’m sure NBC and their advertisers would love to have as many eyeballs on the site as possible…but they are honoring their legal agreements.

So it just goes to show that no technology is immune to decisions made by business and as well in the world of media, decisions around content licensing.  Maybe we’ll come to a world of “open source content” but it isn’t there yet and implementers of technology will have to abide by these guidelines.

So my thoughts about the player?  Well, my first introduction was a note on Twitter and I went to check it out.  I was immediately placed into a “virtual waiting room” (with no virtual free drinks or appetizers mind you) with a message that said something to the effect of ‘due to overwhelming demand…’ and stayed at that state for a bit.  I eventually was placed in, but found it strange that they wouldn’t plan for “overwhelming demand.”  I’ve come now to realize that is the default message…hmm, I might consider changing that.

Once I did get in the quality of the game I was watching wasn’t great at all.  This was echoed by some on the Internet as well.  I experienced a very pixelated view that was choppy/buffering.  I didn’t get a chance to tune in tonight (07 SEP) to see the game online, but will compare this week.  In contrast, the recent Amazon implementation is much better quality.  I think the critical difference here is live versus pre-encoded where you have more time over the quality of the encode.  Some would say an outfit the size of NFL/NBC should have the highest quality hardware encoders available to them and that is no excuse, but I’m not privy to the equipment they are using.  For me, it wasn’t a great experience at all on the quality front.

Being that I have a soapbox on non-plugin-installed experiences, I checked that as well.  People give Silverlight a lot of crap for the default install badge that lazy developers don’t take the time to change (that’s right, I’m calling you out…fix your install experience).  I realize that Flash is pretty readily available on most machines, but I wanted to check the experience if I didn’t have Flash:

Nice.  Someone might want to take a look.  I assume the “Get Adobe Flash Player” is the default from some of the Flex tools.  For a site like NBC/NFL they should really put some design effort into this.  It tells me nothing about the content.  Say what you want about ubiquity, but it’s lazy.  And yes, if I see a production Microsoft site with the default “install Silverlight” badge, I’d call them out too – they’d be lazy as well.

I hope that over time, old media will meet new media and the online experience will continue to get better.  The Democratic National Convention proved that it is possible to deliver HD quality media live and scalable.  Here’s to hoping more online media gets that way.  I really liked last year watching next-day online episodes on ABC (it enabled me to keep in touch with LOST while traveling) in an HD-experience (that experience was powered by Move networks) and site like Hulu as well give us hope for increasingly better online media.  Now lets get those advertisers inline so we can get features we want as well without being imparied by old media rules/platforms.

This work is licensed under a Creative Commons Attribution By license.

| Comments

Two new resources came to my attention recently that could be helpful resources for Flash developers wanting to learn Silverlight.  The first has been out there for a bit actually, but the other is new.  Let’s start with the new one, (video).  As Adam Kinney said this week while in meetings in Redmond, “because we need another web site.”

Project Rosetta describes itself as:

Project Rosetta is a site dedicated to helping designers and developers build applications in Silverlight while taking advantage of skills they already know.

There are two articles up there now, The New Iteration and From Flash to Silverlight.  The newest article involves a Flash maestro, .  The articles aren’t blog posts, but rather more in-depth discussions of various aspects of design/development where your skills can be re-used while doing development for Silverlight.

The second resource is a blog called Shine Draw from Terence Tsang and describes itself as Your Flash and Silverlight Repository.  Terence has 6 years of Flash experience, but even concedes he is not as much of an expert as he aspires to be.  This site is great in that he combines the knowledge of Flash with the concepts of image and animation to see how things are done in each respective technology.  Terence starts with a concept/question to himself (i.e., 3D image navigation) and then goes about creating that sample in both Flash and Silverlight…with the goal of an same experience in each technology.  He provides code for both (Flash 9/AS3 and Silverlight 2/C#) as well as documents the time it took to do each example.  It’s really an intriguing read and some helpful nuggets of code as well.  Oh yeah, and he takes requests.

I hope you find these useful, or at least interesting…I certainly have.

| Comments

BoschOne of probably the coolest casual ‘games’ I’ve ever seen is Line Rider.  It’s a fun game, but really gets exciting when you have an artist behind it.  Basically it’s a blank canvas for you to draw a route for the main character to hop on his sled and ride.  Sound lame?  Not when you see what some have come up with.  For example, here’s a very popular ‘ride’ on YouTube.

Well, the Line Rider team has recently modified their beta version and implemented in Silverlight 2!  They’ve also added some social networking integration using Live Messenger and the ability to send your rides to your contacts, etc.  The team was a group of developers and designers from the Line Rider team from InXile Entertainment as well as the crew from Cynergy Systems.  The Line Rider game was also used in a creative McDonald’s television campaign as well – McDonald’s gettin’ all involved with the interwebs…cool.

In addition to the Silverlight version, InXile has announced console versions for XBOX 360, Wii, and PS3.  I think that will definitely a must get console game for myself and for the kids.  This Silverlight version really demonstrates some great things in Silverlight 2 and shows that the platform is a great one for casual games and how creative you can be with what version 2 has to offer.

Congratulations to the Line Rider teams!