Silverlight, Flash, and the future of the Internet

Microsoft has recently released Silverlight 5 (http://blogs.msdn.com/b/silverlight/archive/2011/12/09/silverlight-5-available-for-download-today.aspx). This is an incremental release to what I consider to be a great development platform.

Unrelated, Adobe has announced that they are giving up on further developing mobile Flash (http://www.engadget.com/2011/11/09/adobe-confirms-flash-player-is-dead-for-mobile-devices/).

I, for one, welcome the death of Flash. It was a product that was a solution to a problem that existed at the conception of the internet... and it always had problems. There were performance issues, jitters, skipping, dropped animation cells. Overall Flash has been the poorest performing platform I have ever seen. I'm not saying there isn't good content out there, but I am saying that whenever my laptop's fan kicks on, there's a 90% chance that I'm on a web page that requires Flash.

I've owned an iPhone, and three different Android phones now. At first, I was kind of excited about having Flash, but every time the plugin has launched, I've found myself longing that empty box. Yeah, I've said it. I'd rather see nothing than something that's built using Flash. My phone gets hot, the browser gets unresponsive, and I usually have to restart my phone afterwards.

And then there's Flash on the desktop. It's no better. My single biggest complaint about my favorite browser, Chrome, is that it ships with Flash.

I've programmed against Flash, Illustrator, InDesign, Acrobat, and Photoshop. I've worked with the COM objects, I've worked with different CLR frameworks and toolkits, and sadly every time I've had an experience similar to this: http://code.google.com/p/xee/source/browse/XeePhotoshopLoader.m (Excerpt).

At this point, I'd like to take a moment to speak to you about the Adobe PSD format. PSD is not a good format. PSD is not even a bad format. Calling it such would be an insult to other bad formats, such as PCX or JPEG. No, PSD is an abysmal format. Having worked on this code for several weeks now, my hate for PSD has grown to a raging fire that burns with the fierce passion of a million suns. If there are two different ways of doing something, PSD will do both, in different places. It will then make up three more ways no sane human would think of, and do those too. PSD makes inconsistency an art form. Why, for instance, did it suddenly decide that *these* particular chunks should be aligned to four bytes, and that this alignement should *not* be included in the size? Other chunks in other places are either unaligned, or aligned with the alignment included in the size. Here, though, it is not included. Either one of these three behaviours would be fine. A sane format would pick one. PSD, of course, uses all three, and more. Trying to get data out of a PSD file is like trying to find something in the attic of your eccentric old uncle who died in a freak freshwater shark attack on his 58th birthday. That last detail may not be important for the purposes of the simile, but at this point I am spending a lot of time imagining amusing fates for the people responsible for this Rube Goldberg of a file format. Earlier, I tried to get a hold of the latest specs for the PSD file format. To do this, I had to apply to them for permission to apply to them to have them consider sending me this sacred tome. This would have involved faxing them a copy of some document or other, probably signed in blood. I can only imagine that they make this process so difficult because they are intensely ashamed of having created this abomination. I was naturally not gullible enough to go through with this procedure, but if I had done so, I would have printed out every single page of the spec, and set them all on fire. Were it within my power, I would gather every single copy of those specs, and launch them on a spaceship directly into the sun. 
PSD is not my favourite file format.
I've worked with .INDD, .PSD, .PDF, .AI, .SWF, and .FLA; and I can say that I've had similar experiences, nuances, and frustrations in every platform. But before you think I'm being unfair to Adobe, I've parsed .XLS and .DOC, too... and those are not much better.

Consequently, that brings me back to Silverlight. I said I liked it as a developer platform. Yes, I like it as a developer platform. But I think that a plugin-based web is not the future. And I think we'll see this as the last pertinent release of Silverlight. And I think that Flash will have one more pertinent release, too. And then they'll die in favor of better formats. We'll move to HTML 5, which coupled with CSS3+ and JavaScript, we'll truly see into the future of rich web apps. But it doesn't stop there. I think we'll see advancement in other technologies, too. Possibly WebGL will actually take off (http://www.chromeexperiments.com/webgl). Perhaps we'll get some ground on Google's SPDY protocol (http://dev.chromium.org/spdy/spdy-whitepaper). Dart might even fly (http://googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html).

But then again, I still see GIFs and JPGs everywhere I go, and none of the vector graphics (http://www.ubelly.com/2010/09/how-to-use-scalable-vector-graphics-in-html5/) options have taken off.

Will Silverlight exist in 10 years? Probably. Will Flash exist in 10 years? Sadly, I don't doubt it. But they'll render HTML. And we will finally move forward in the world wide web. Well, except for those of you still running IE6: You and your browser can rot in hell.


pfgIndy said...

Javascript bad. Very bad. Silverlight good, but HTML 5 wins. Can't HTML use soemthying ANYTHING better than javascript?

Jamal Hussain Khan said...

JavaScript is getting better, but for the time being we're stuck with it... all of the browsers out there don't have a common alternative! But you might want to look into Google's Dart Programming Language, Pat... It's not ready, but they've got the right idea...