Flex is a platform for Rich Internet Applications (RIAs) that runs on the Adobe Flash virtual machine. With AIR (Adobe Integrated Runtime), Flex applications can also run locally, as desktop applications.
The programming language for Flex is ActionScript, an ECMA-standardized script language. But on top of this imperative scripting language, Flex adds MXML, a declarative xml-based markup language quite similar to Microsoft’s XAML:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"> <mx:TextInput id="source" width="100"/> <mx:Button label="Copy" click="destination.text=source.text"/> <mx:TextInput id="destination" width="100"/> </mx:Application>
Neat, isn’t it?
Two things comes to my mind: Why doesn’t the Java community try to catch up? The Flex programming model is far superior to any of the Java Web frameworks out there. Still most work and innovation within the Java Web application area seems to be obsessed with trying to achieve roughly the same thing using Ajax.
The second thing that puzzles me is Adobe’s visions and plans with Flex. How will Adobe make money on Flex, when going Open Source? They probably realized that sticking to a closed, commercial license would prevent wide adoption. But what is their alternative plan? Where is the snag?