Monday, June 2, 2008

A new browser competitor

Aside from the face-palming-symptoms of dealing with XML [2] DSL's [1][3], I came to another conclusion recently.

Flex, is touted as "a highly productive, free open source framework for building and maintaining expressive web applications that deploy consistently on all major browsers, desktops, and operating systems." [4]

To me, that just reads: Flex, combined with the Flash Player is a browser within a browser. Proof:

  • MXML is equivalent to XHTML - it's a declarative layout language.

  • Flex MXML documents can have embedded actionscript. This is nearly identical to embedding Javascript inside of XHTML. Heck, these two languages have the same origins: ECMAScript

  • The Flex Libraries are well, equivalent to any of the multitude of Javascript Libraries JQUery UI, Dojo, YUI and eventheir own, competing, javascript library Spry.

  • Flex also has an equivalent to CSS that it calls ... well ... CSS even though it's not CSS.


Confused? So is everyone else.

The Flash player needed to run Flex comes as a binary blob provided by Adobe. Alternatively you can use the incomplete and differing FSF implementation of the flash plugin: gnash. Ergo, there are multiple, incompatible potential target environments for flex applications.

On the browser side we have the choice of a plethora of browsers, Safari, IE, Firefox, Opera, Flock just to name a few. The browser most like Flex, also comes as a binary blob for the web. Firefox, is available for all major platforms, and applications which target FF will deploy consistently on all major browsers, desktops and operating systems.

So, adobe re-invented the web, it's technologies and in turn re-created the same problems. They had a chance to improve upon it, to make something better. But didn't. *sigh*.

But more importantly there are many implications to this realization, one of which is the potential of opening up the flash specification, such that competing players can be created. I'm beginning to doubt that Adobe will ever do this. And it may be to their benefit. Having a plethora of competing, incompatible flash player implementations will turn flash development into the same nightmare that current web developers face with the competing browsers.


[1] - DSL - http://en.wikipedia.org/wiki/Domain-specific_programming_language
[2] - http://en.wikipedia.org/wiki/Windows_Presentation_Foundation
[3] - http://en.wikipedia.org/wiki/MXML
[4] - http://www.adobe.com/products/flex/
[5] - http://livedocs.adobe.com/flex/1/flex_builder_en/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Using_Flex_Builder&file=brady510.htm
[6] - http://www.gnu.org/software/gnash/
[7] - http://en.wikipedia.org/wiki/Cascading_Style_Sheets
[7] - http://en.wikipedia.org/wiki/XHTML
[7] - http://en.wikipedia.org/wiki/ActionScript
[8] - http://en.wikipedia.org/wiki/JavaScript
[9] - http://en.wikipedia.org/wiki/ECMAScript
[10] - http://ui.jquery.com/
[11] - http://dojotoolkit.org/
[12] - http://developer.yahoo.com/yui/
[13] - http://www.mozilla.com/en-US/firefox/
[14] - http://livedocs.adobe.com/flex/2/langref/
[15] - http://labs.adobe.com/technologies/spry/
[16] - http://www.apple.com/safari/
[17] - http://www.microsoft.com/windows/products/winfamily/ie/default.mspx
[18] - http://www.mozilla.com/en-US/firefox/
[19] - http://flock.com/
[20] - http://en.wikipedia.org/wiki/SWF#Licensing
[21] - http://www.opera.com/

No comments: