My Headlines

Tuesday, August 21, 2007

Flash Video and H.264

We consumers are seeing some really cool things from competition between Microsoft Silverlight and Adobe Flash. Today the Flash plug-in gets a major upgrade to join Silverlight in supporting HD video over the web. The exciting thing is the plug-in will also support playing other video formats including QuickTime. H.264 is supported by major video companies and is great for video and streaming over the web. Apple also is a big supporter of H.264. This really wasn't a surprise that Flash would add this kind of support; I expected this when Adobe Media Player was announced and it supported such multi-formats.


So where does this leave the competition with Silverlight you might ask? I would consider them dead even for web video, but really the 1.1 Silverlight release still shines ahead because of the .NET runtime that has been refactored into it. The one edge it has is the CLR (Common Language Runtime) which is almost a platform itself. The only way I'd consider that Flash has capabilities, beyond Silverlight, would be if Adobe and Sun were to get together and offer a plug-in that integrated Flash with a Java virtual machine.


Someone said to me today, "Now that Flash has high definition video, no one will even bother with Silverlight, because it has nothing people want, it's just a “want-to-be". My first thought was well," Wrong I don't see it that way. You are completely missing the point of having .NET in the runtime".


The CLR (.NET runtime) gives you things like extensibility and core features you expect from an operating system that arguably aren't present in Flash or Action Script at the moment. It's also language agnostic unlike Java. In a world where the operating system is quickly becoming the network and what framework you are running to provide your users with a set of services are make or break, you will start to see the difference in complexity of applications very soon.
It's possible with a combination of Silverlight and GOA WinForms to move entire windows applications (including enterprise applications) to the platform agnostic Silverlight (yes it runs on Mac and PC and soon Linux). Some of you might remind me that GOA also makes a Flash version, but it's not quite the same because of the CLR/.NET runtime. If you use another RIA platform you don't get that same rich set of APIs and functions that almost make it an operating system out of it.


In my opinion Silverlight's .NET runtime almost qualifies itself as a platform agnostic OS. Because of this, if you are in Flash or Flash with AIR your applications begin to look thin, or you have to resort to browser integrated applications to get the functionality. Both are designed not for the same purposes, so it's like comparing apples to oranges with their individual design sensibilities.


The CLR in Silverlight means things run faster (not like JavaScript based web browser applications), and they are ultimately easier to make SECURE. No one has talked about security in RIA's (Rich Internet Applications) yet that much. But believe me when they become common place, who will be better poised to be secure and offer more OS services type of support.
Don't get me wrong, I am glad Adobe brought Flash video into HD and the world of H.264, we all benefit from that, plus the ability to play other movie formats right from that one plug in. With a 98% of the browsers in the world having Flash installed, this will be a major upgrade in capability for most everyone. But why did they add this now? Why did it take Adobe so long, they have obviously been working on this for some time? Why try to cover playing so many video file formats (beyond H.264)? It's obvious that Silverlight is gaining momentum on Adobe Flash. But the reason isn't probably video, though Adobe needed to do this to stay in the game.
Does the new Flash version make everything that is in Silverlight's core functionality obsolete or negate people doing work in Silverlight? I don't believe so, not at all! I believe because of Silverlight 1.1's CLR we'll see a whole new class of capable Rich Internet Applications that compete successfully with Java and gives the web a framework that's really its own OS. That's something Flash on its own still isn't competing with.


I would tell developers and designers to just remember that Silverlight with the .NET CLR (common language runtime) is not just a platform for cool video and animated graphics, the core services it provides really bridges the gap from calling it just a plug-in, to making it full web platform, one that is language and web browser agnostic for development and platform as well, that we are just starting to see the benefits. Now a Windows platform developer can take his full windows application and implement most if not all functionality in Silverlight and have it run just about anywhere. It is a platform that doesn't care if you are on a Windows or Mac box or what browser you are running.
So, Adobe Flash got better, but is it good enough? I would question how rich an API and how functional you can make an Flash or AIR application, versus Silverlight with the .NET Runtime. I think our next battle the industry will see in the world of RIA's and which platform has the best most complete API's and set of functionality. Sure RIA's are new and not that functional yet, but would you rather go with a full featured framework to build your applications that people already build current platform applications daily? Or one that doesn't let you go as deep as you needed or something that is new and barely scratches the surface. I love the CLR and the extensibility and the fact that it's a real "web platform" not just a framework that just gets you as far as taking you out of the browser.


In this sense I think it will be a battle between Java and Silverlight, not Adobe Flash and Silverlight. If you just even look at the functionality, you should think about what can do with a Java application today versus a Flash application. You will see there is a decent amount of disparity of functionality for core services, just like the situation when comparing Adobe Flash and Microsoft Silverlight.


I was hoping today (instead of just adding HD video) that the Flash runtime was to be totally reworked from top to bottom, improving the runtime, making Action Script just one of the possible languages. I'd like to see the runtime reworked to support multiple languages, a better set of core framework functionality that goes way beyond Action Script. I hope the competition continues because we users are heavily benefiting.


Someone asked me today if I thought Flash with HD Video, would trump Silverlight or stop the defections to Silverlight? Until Adobe gets a framework refactored into with all the services of .Net, or partners with Sun/Java to make Flash and Java one big plug-in, the defections will continue.


Who will win the RIA battle? I can't really honestly guess at this stage.. I think the winner will be whoever gets RIA development to the stages where they are just as capable as an enterprise platform application with all the same available services. Whoever gets there first will no doubt win all the marbles. Right now, I believe personally, Silverlight has the win here because of the .NET runtime (CLR). The heart and soul of Windows development now works everywhere. The way I see it, Silverlight is more a competitor to Java than it is Flash, because it's almost an entirely self contained platform. Its original purpose (still in definition) isn't just cool graphics and video on a web browser. Silverlight is much deeper. I think it's Microsoft's recognition that the OS is no longer on the PC but inside the network and web browser. It's a framework that runs on many platforms and gives you services everywhere.


These of course are just opinions and how I see things. Tell me what you think. Have you worked with both? Am I off the mark? Or missing points?


Technorati tags: Adobe, core OS services, Dot NET, Flash, Flash plug-in, H.264, HD Video for Web, RIA, Rich Internet Application, Silverlight

No comments: