I have been building AJAX applications for a while now and absolutely love AJAX and the improvements it can offer in user-interface design, making applications easy and fun to use. But AJAX does have limitations and I, like many others have come to the realization that while AJAX is great for most things, it is not the silver bullet. For data-intensive application, specifically that involve dynamic charting with vector graphics and mining, AJAX falls short.
There are a couple of alternatives out there that fill that niche that AJAX still hasn’t successfully filled and Adobe’s Flex 2 framework is definitely one of the them. Adobe Flex 2 software is a rich Internet application framework based on Adobe Flash that will enable you to create applications that are cross-platform and browser independent as they run inside the Flash VM. Flash has fulfilled the promise that Java applets never delivered for a variety of reasons. The Flex programming model is fairly simple where developers write MXML and ActionScript source code and the source code is then compiled into bytecode by the Flex compiler, resulting in a binary file with the *.swf extension. Developers use MXML to declaratively define the application user interface elements and use ActionScript for client logic and procedural control. MXML provides declarative abstractions for client-tier logic and bindings between the user interface and application data. ActionScript 3.0 is an implementation of ECMAScript, and it provides support for strong typing, interfaces, delegation, namespaces, error handling, and ECMAScript for XML (E4X).
Adobe gives away the Flex 2 SDK for free and so anyone can create Flex 2 application and compile them into SWF bytecode files. Adobe sells Flex Builder, which is the Eclipse based IDE for Flex development and Flex Data Services, which is a J2EE component deployed inside a container. It provides adapters to connect to EJB’s, JMS queues, backend data stores, etc.
Hi, what would “Open sourcing Flex” mean for you? How would you know it if you saw it?
(Sometimes people use that phrase to describes things as different as putting the future growth of MXML into the W3C or similar committee… sometimes it’s about delivering source code for any servers offered, for rewriting and rebranding by others… sometimes it’s actually about Player issues. That’s why I have to check what people are actually seeking when that phrase is used.)
Great post Vinny – as always.
I’ve been using Flex for some time as well. And I love it.
I may sound conservative, but I believe one of the reason Flex is so solid is because it’s proprietary nature: it’s what guarantees the quality of the UI rendering and the cross browser’s compatibility; and provides an incentive for Adobe to invest in the technology.
That being said, Flex is actually quite open.
1. One can easily build, customize and share components -that can compete with components Adobe sells, such as their charting components-
2. As you mention, the Flex environment can be used for free – with a combination of the free SDK and some good text editing tool.
Hi John. Good question – I think submitting MXML into the W3C would be a great move and definitely help but I don’t mean that when I talk about ‘open-sourcing’ the Flex framework. I think creating a group or process that would allow participation in the Flex development process from other entities, external to Adobe under a GPL or even BSD style license would be something I would look for when talking about open-sourcing. I realize Adobe has spent a lot of time, effort and dollars into developing Flex but there is a fear of proprietary technologies and the issue of vendor lock-in. If OpenLaszlo can do what Flex can and its open-source, I think a majority of people would choose OpenLaszlo. With CSS3, SVG and offline support built into browsers, the state of the art is catching up to Flex. In my opinion, opening up Flex would allow for wider acceptance and actually generate more revenues for Adobe as more people would be using Flex and more likely to license Flex Builder, more likely to get training, etc. Sounds like a win-win to me. 🙂 Just my humble and naive opinion.
I understand how you feel about a closed source system like Flex. It’s a quite common case that a big company dumps a product if it’s not such a cash cow any more. That’s the huge difference between a closed source product like Flex and OpenLaszlo. If Laszlo Systems would disappear from the market you could still use the code and even continue development of the code base left over by the company. Well, we all know that’s not going to happen (some people might even regret that).
OpenLaszlo’s approach: use AJAX or Flash, just as you need it, with JavaME around
OpenLaszlo gives you more at lower costs: free compiler, free server, OSI certified license, AJAX and Flash runtime, in the future JavaME and mobile AJAX development. On top of that professional support services by Laszlo Systems and the Laszlo Studios as well as the many companies building applications with OpenLaszlo and offering services world wide. An active and enjoyable open-source community!
OpenLaszlo Community Manager, Laszlo Systems
“Creating a group or process that would allow participation in the Flex development process from other entities, external to Adobe under a GPL or even BSD style license would be something I would look for when talking about open-sourcing.”
Cool, thanks… that’s a solid, testable deliverable, a goal we could aim towards.
Are you thinking more about language constructs here, or frameworks, or the sourcecode for a particular MXML->SWF compiler, or something else? What is it that you’d personally hope to gain, should others pursue such a path?
And would there be any certification of the implementations which do not carry the Adobe brand? For instance, all contributions made to Firefox are certified and branded by the Mozilla Foundation… would there have to be such a program for such “other entities” as well, in order for you to achieve the goals you wish to achieve…?
I’m asking hard questions, I know. 😉 But I’m really trying to figure this out:
Pingback: Vinny Carpenter’s blog » Daily del.icio.us for Feb 28, 2007 through Mar 01, 2007
Hi John and good morning. Great questions – To me, open-sourcing Flex would mean opening up the Flex class libraries, Flex compiler/debugger and the MXML/ActionScript language specifications. So I would consider Adobe allowing clean room implementation of the Flex compiler and class libraries by an external party a complete success of opening-up. I would assume Adobe would create a testing process to certify the clean-room implementations to ensure compatibility and correct implementation of the language specification. Maybe a logo program? Implementation that pass the ‘test’ would be certified Flex compliant?
Allowing external ‘entities’ to add features and modify the core language (MXML & ActionScript) would ensure the creation of an ecosystem that would encourage wider developer participation. Developers tend to flock toward open technologies and Enterprises like investing in open technologies as they help alleviate some of the vendor lock-in concerns in IT management. Thanks
“To me, open-sourcing Flex would mean opening up the Flex class libraries, Flex compiler/debugger and the MXML/ActionScript language specifications. So I would consider Adobe allowing clean room implementation of the Flex compiler and class libraries by an external party a complete success of opening-up. I would assume Adobe would create a testing process to certify the clean-room implementations to ensure compatibility and correct implementation of the language specification.”
Thanks, Vinny. (Disclosure: I’m not a decisionmaker, and have no particular stance either way… my goal is to be accuractely convey customer desires to my coworkers, for the group’s eventual decision.) Notes on individual action items in the above:
o “MXML/ActionScript” seems accomplished already… as David Mendels says at Ted Leung’s blog:
o “Adobe allowing clean room implementation of the Flex compiler and class libraries” also seems accomplished… I know of nothing preventing others from building their own MXML/SWF compiler (or any other xXML/SWF compiler, for that matter).
o Certification of other people’s works remains an open action item. I’m not sure what the business case for this would be, but I can convey this desire internally. (Hmm, but shouldn’t the certification be a process of a wider group? wouldn’t Adobe then have a “proprietary certification model”, if Adobe paid those costs? Would that be an issue?)
o “release of source code to Adobe’s MXML/SWF compiler” is another open item. I’ll pass this request along as well.
o “Flex class libraries”: Would I be accurate in understanding this as “No unilateral improvement to Flex class libraries; must be W3C-style process”… am I on-track here?
o “Allowing external â€˜entitiesâ€™ to add features and modify the core language (MXML & ActionScript)”: Would this be on already-deployed functionality, or in a wider-than-Adobe decision process for changes in future versions of the Adobe Flash Player’s functionality? (Customer and partner needs are a key driver already in feature development, but I’m assuming you’re seeking a change to a formal process similar to that for HTML.) I’m not sure yet whom you’re seeking to add what, when.
I’m not sure how successful I’d be in lobbying for all these points — PDF could go to ISO because it has already reached a stage of maturity and diversification which we haven’t yet reached with SWF, for instance — but I need to make sure I’m understanding current external desires correctly. Given my clarifying questions above, could you refactor the whole into two or three paragraphs of text for which I could then lobby without risk of inadvertent distortion? Thanks!
Pingback: License 2 Code » Good News For People Who Like Flex