InfoQ

News

Top 10 Adobe Flex Misconceptions

Posted by Jon Rose on Dec 10, 2007 02:29 AM

Community
Java
Topics
Web Frameworks ,
Rich Client / Desktop
Tags
Flex ,
Flash ,
Adobe
At QCon, Adobe's James Ward shared with InfoQ.com the top Adobe Flex misconceptions that he encounters in his travels evangelizing the Flex application framework.
  1. Users Need to Install Something New to Run Flex Applications.

    Ward, exclusive to InfoQ.com, discusses the Flash adoption rates and Flex programming model:
    Flash Player 9 is required for Flex 2 & Flex 3. The Flash Player 9 runtime is currently installed on 94% of the world's computers: http://www.adobe.com/products/player_census/flashplayer/version_penetration.html

    Flex 2 and Flex 3 applications execute in the Flash Player 9. Flex applications are built on top of the native Flash Player APIs like vector graphics, bitmap manipulation, and networking (which are based on the browser networking stack). The Flex framework adds reusable components like date pickers, data grids, charts, etc. Compiling a Flex application results in a SWF file which is the binary byte code format for the Flash Player. Contained in the SWF file is the byte code for the Flex framework code and a project's custom code. The Flex compiler optimizes the byte code so that only classes which are used go into the SWF file.

    For desktop applications, Adobe is aiming to make their new desktop runtime, dubbed Adobe AIR, as ubiquitous as the web runtime. The 1.0 release of Adobe AIR will be available in the beginning of 2008. Currently, AIR is in beta release from labs.adobe.com. Many companies are already building production applications on AIR. One example, can be seen with eBay's application eBay Desktop.
  2. Flash Player is 100% Proprietary.

    Ward continued on this item for InfoQ.com:
    The core of Flash Player is the Tamarin Virtual Machine, which is an open source project under Mozilla. While the SWF file format is not fully open, it is documented by the community on osflash.org. There are numerous open source products that read and write SWF files. The Flash Player's product direction has traditionally been heavily influenced by the community and their needs. The core language for Flash Player is an implementation of ECMAScript 262, which is the specification for JavaScript. Flex also uses CSS for styling of components / applications. Adobe AIR uses web standards as the basis for desktop applications as well as Open Source technologies like Tamarin, Webkit, and SQLite.
  3. Flash is for Designers, Video, and Annoyances.

    In Ward’s July, 2007 blog, “How I Overcame My Fear of Flash,” he discussed this point:
    Indisputably, the power of Flash has been abused. Pop-ups, pop-overs, skip intros and annoying ads run rampant across our screens. I've heard it said that one should never judge a religion by its abuse. The same adage applies to technology. Flash shouldn't be avoided just because people use it for annoying things. After all, e-mail isn't avoided just because spammers happen to abuse it.
    Ward elaborated on the topic for InfoQ.com:
    Traditionally Flash content was built with the timeline based tool for designers. Flex is the developer toolset for building Flash based content / applications. Designers and developers can work together by sharing assets between the two tools. Flex adds a comprehensive component base:

    http://www.adobe.com/go/flex_explorer_app
    http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&exc=15&loc=en_us
  4. Flex is Not for Enterprise / Business Applications.

    Over the last few weeks, Ward published a seven part blog series on a number of new Oracle applications implemented in Adobe Flex. The applications, which were announced at the recent Oracle OpenWorld, ranged from sales tools, to database management, and business intelligence.

    In addition to Oracle’s usage of Flex, InfoQ.com published a piece recapping a number of groups using Flex for enterprise applications. Ward also points out to InfoQ.com, that there are numerous examples of enterprise applications being developed with Adobe Flex, including work at: Workday, SAP, Salesforce, and Business Objects.

  5. Flex is Expensive.

    Ward detailed a number of things Adobe has done to address the cost concerns:
    Flex is a free, and soon to be open sourced, developer toolkit for building Rich Internet Applications for the web and the desktop. This free SDK includes everything a developer needs to build RIAs that work the same on any browser or operating system. Part of the free Flex SDK is an extensive set of components which are extensible, skinable, and accessible. You can see many of these components in the Flex Component Explorer: http://www.adobe.com/devnet/flex/samples/code_explorer/

    Flex Builder is an optional plugin for Eclipse which makes developing applications with the free Flex SDK more efficient. It includes features like integrated debugging, design view, and code completion.

    The Flex Builder pricing has changed in quite a few ways recently. Flex Builder is now free for Students and Faculty. The price for the vanilla Flex Builder, without the charting components, has been reduced to $249 to better balance the tiered pricing for Flex Builder.

    There are a number of options for building backend infrastructure for Flex Applications. To take advantage of the high performance AMF data transfer protocol, there are official Adobe products like LiveCycle Data Services, as well as numerous open source projects like Granite Data Services. Using AMF removes the unnecessary steps of converting data to text (SOAP, RESTful, etc), transferring it, and then converting it back to data. AMF also allows type information to be preserved across the wire.
    To see a comparison of AMF to other text based serialization technologies, see James Ward's Census RIA Benchmark application: http://www.jamesward.org/census.

  6. Flex Applications Require a Special Server.

    Once again, Ward speaking with InfoQ.com:
    Flex applications can run on top of any web server, application server, and database server. Flex applications are much more like client-server applications. Since the logic is running on the client inside the Flash Player, you need some way of communicating with the server. There are many different options for how you connect Flex to your infrastructure. Without any special libraries, you can expose your back-end data and services as RESTful, XML, or SOAP and easily consume that data in your Flex application. If you choose to use the AMF binary serialization protocol, you may need to add some additional libraries into your web application. AMF is just another serialization technology, like XML or JSON, so it can be one of the various methods you use to communicate to your back-end SOA.
  7. Flex is Hard to Learn.

    Leftie Friele, from the InfoQ.com community, posted a comment on the InfoQ.com piece “Who is Using Flex?”, detailing his company’s experience in learning Flex:
    Our startup company, Ezmo, have used Flex since the start and we're extremely happy with the framework.

    Without any prior knowledge of Flex/Flash, we built our application in less than two weeks. The integration between Java and Flex is super simple, and getting started with Flex is just a walk in the park.

    The tool support is very good too with Flex Builder. You get the familiar surroundings of Eclipse and you are off and running without many problems. The one thing that is missing is better tools for continuous integration and better plugins into Maven for building Flex applications.
    For those new to Flex, Ward has a Screencast showing a Flex application being built to help get you started. There are also numerous other articles about using Flex and Java in the Adobe Developer Connection.

  8. With Flex, I Will Need to Rebuild My Entire Application.

    In January, Bruce Eckel published an article titled, “Hybridizing Java.” He argues that the Java community should continue using the good parts of Java, but should use other technologies where Java is weak. His primary focus in the article is using Adobe Flex for user interfaces, instead of the traditional Java options (Swing, JSF, etc…).

    Ward elaborates on this concept:
    Since Flex applications are just the UI piece of an application the back-end usually stays the same. If your back-end was built following the SOA pattern then it is usually very easy to expose those services out to a new Flex UI. This preserves your existing business logic whether it is in EJBs, Spring services, POJOs, etc.
  9. Flex Breaks Normal Browser Functionality, Like the Back Button.

    Ward’s blog discusses the back button:
    In Flex, back button support is built in and easily customizable so this was never an issue. Flex also provides an easy way to do hashmark urls (or named anchors), so the url changes as application state changes. Another Web 1.0 integration problem solved.
    Ward adds more details for InfoQ.com:
    Flex 3 provides a simple way for applications to store state parameters in a named anchor and correctly restore state based on those parameters when the URL is requested. More information about this feature can be found in the Flex 3 Feature Introductions Deep Linking documentation.

    Accessibility has always been very important for Flex applications. Since the Flash Player works with Jaws and other accessibility technologies, the capability for adding accessibility to Flash based applications is there. The Flex framework builds accessibility into the core framework. There are many different pieces of accessibility depending on what impairments and disabilities your application needs to support. You can find out more about the accessibility features of Flex in the Developer's Guide.
  10. I Can Do Everything Flex Does With Ajax.

    Ward explains:
    RIA with Flex and Ajax is not either/or. Sites like Google Finance show how you can use Flex and Ajax together. Ajax is very good for content-centric applications, while Flex is very good for interactive, media, and data-centric applications. If your application is somewhere in between the two sides of that spectrum, then you can use the Flex Ajax Bridge to combine the two technologies. In Flex 3, the Flex Ajax Bridge is integrated directly into the SDK. If you are using Flex 2, you will need to download the Flex Ajax Bridge separately.
    Also, from the InfoQ.com community, Michael Marth commented on why his group chose Flex:
    We use Flex 2 for our soon-to-launch online dating site viibee.com

    The reason: Flex enabled us to create a user experience far beyond anything that we could have done with a comparable effort in Javascript/Ajax.
For those of you in the InfoQ.com community, are these misconceptions you have held about the Adobe Flex framework? Are there additional barriers that Adobe has yet to address, which are keeping you from using the Flex application framework?

25 comments

Watch Thread Reply

LET THE FLAMES BURN!!!! by Janos Haber Posted Dec 10, 2007 4:28 AM
Re: LET THE FLAMES BURN!!!! by James Ward Posted Dec 10, 2007 4:35 AM
Re: LET THE FLAMES BURN!!!! by James Ward Posted Dec 10, 2007 9:02 AM
Media Server by Michael Neale Posted Dec 10, 2007 5:22 AM
Item #8 by Jacob Hookom Posted Dec 10, 2007 1:00 PM
Re: Item #8 by Jon Rose Posted Dec 10, 2007 2:10 PM
Re: Item #8 by James Ward Posted Dec 10, 2007 4:39 PM
Re: Item #8 by Michael Neale Posted Dec 11, 2007 12:05 AM
Flash Penetration by Gary Ault Posted Dec 11, 2007 5:16 PM
Re: Flash Penetration by James Ward Posted Dec 12, 2007 9:16 AM
Re: Flash Penetration by Gary Ault Posted Dec 12, 2007 3:30 PM
Re: Flash Penetration by Jon Rose Posted Dec 12, 2007 5:05 PM
Re: Flash Penetration by Bobby Lewis Posted Dec 13, 2007 7:04 AM
Re: Flash Penetration by James Ward Posted Dec 14, 2007 3:19 PM
Re: Flash Penetration by James Ward Posted Dec 14, 2007 3:35 PM
Re: Flash Penetration by James Ward Posted Dec 14, 2007 3:31 PM
Re: Flash Penetration by James Ward Posted Dec 14, 2007 3:22 PM
accessibility has traditionally been an issue by Knut Forkalsrud Posted Dec 11, 2007 7:01 PM
Re: accessibility has traditionally been an issue by hank jmatt Posted Apr 25, 2009 9:04 PM
Right-to-Left languages by Alex Bental Posted Dec 12, 2007 7:13 AM
Re: Right-to-Left languages by James Ward Posted Dec 12, 2007 9:03 AM
Thanks by Steve Fuller Posted Jan 6, 2008 8:27 AM
Flex + RAD = Snapp MX by Harald Kobler Posted Jan 23, 2008 2:47 PM
Load testing Flex applications by Ethan Jones Posted Jul 28, 2008 2:50 AM
Thanks by Oyun Cambazı Posted Jun 15, 2009 6:42 PM
  1. Back to top

    LET THE FLAMES BURN!!!!

    Dec 10, 2007 4:28 AM by Janos Haber

    Adobe doesn't care about fixing critical issues in current commercials versions of the software, rather fixes them in the next version, therefore forcing an update. http://bugs.adobe.com/jira/browse/FLEXDMV-1483

  2. Back to top

    Re: LET THE FLAMES BURN!!!!

    Dec 10, 2007 4:35 AM by James Ward

    Hi Janos, All commercial software has bugs. It's always hard for vendors to decide what gets fixed and what gets deferred. I'm sorry that your particular bug was deferred. But you do have the source code for the charting components. So if this a critical issue for you which you cannot wait for Adobe to fix then you can fix it yourself. This particular issue doesn't seem like it would be too difficult to fix. -James

  3. Back to top

    Media Server

    Dec 10, 2007 5:22 AM by Michael Neale

    I have had some success with Red5 - seems to work well with RTMP from flash "clients".

  4. Back to top

    Re: LET THE FLAMES BURN!!!!

    Dec 10, 2007 9:02 AM by James Ward

    Janos, Check out the bug again. It has been updated by the engineering team. Turns out not to be a bug. They have also provided you with information on how to do what you need. Let us know if that information doesn't solve your problem. -James

  5. Back to top

    Item #8

    Dec 10, 2007 1:00 PM by Jacob Hookom

    James, I think you've mentioned this in other posts, but I think simply stating that you're just changing the UI is a bit of a misconception. When you are doing server-side rendering of data, you don't need to think about SOA-- or if you have SOA, the contracts may be meant for internal consumption and not public. While I love Flex and the future that AIR holds, it does force you to take a different perspective on data-- you can't simply "output it" from local Java memory-- you have to think about networking, RPC, security, etc. You basically end up with an extra step in the development process, and depending on your data, this can be easy or quite difficult in the context of marshalling state behavior behavior vs. what's contained on the server. Is that Flex's fault? No way. I just think the Java platform needs something better for querying/filtering datasets back to external clients. I think the tipping point here is if you can contain the users' complete data domain within the client. If so, Flex is cake-- if not, you're going to have to develop a bit of SOA layers/contracts to make sure things stay efficiently usable without a lot of development overhead.

  6. Back to top

    Re: Item #8

    Dec 10, 2007 2:10 PM by Jon Rose

    I would agree that Flex does introduce some new concerns with back-end integration. Although, it maybe better said that it introduce different considerations, as it simplifies a number of things. Generally, I have found that when building Flex based applications I am able to heavily leverage my existing Java skills, and most all of my new learning has been focused on the UI / Flex framework side.

  7. Back to top

    Re: Item #8

    Dec 10, 2007 4:39 PM by James Ward

    Hi Jacob, Thanks for the clarification. You are totally correct. Usually when there is only a web interface the service layer exists primarily to support the web interface which heavily uses server-side state. Applications which only have a traditional web interface many need to rebuild their services layer if their services were designed only for this method of interaction. However applications which already have a stateless services layer typically do not need much additional work. -James

  8. Back to top

    Re: Item #8

    Dec 11, 2007 12:05 AM by Michael Neale

    I don't think flex is different from ajax in that regard (in terms of a 100% ajax interface like say gmail). ActionScript 3 is not to shabby either. The online docs are nice, with pretty helpful examples (I only have experience with the flex compiler building more "normal" flash things, not so much calling remote services). If flash was opened up all the way into open source, I would be one happy camper. Gnash is coming along in the meantime.

  9. Back to top

    Flash Penetration

    Dec 11, 2007 5:16 PM by Gary Ault

    How does 93.3% of Mature markets and 89.4% of Emerging markets on internet-connected, non-corporate, non-government PC's translate to "94% of all computers in the world."

  10. Back to top

    accessibility has traditionally been an issue

    Dec 11, 2007 7:01 PM by Knut Forkalsrud

    things like being able to use the arrow keys on the keyboard (not to mention page-up/page-down) has been a disappointment in most flash UIs to date.

  11. Back to top

    Right-to-Left languages

    Dec 12, 2007 7:13 AM by Alex Bental

    James, Flex is a very good UI framework, I played with it a little bit and all my Java knowledge was useful while catching up with it. I thought of Flex as a potential UI framework for one of my projects, but it turned out that Flex (it's a Flash problem mainly) has no good support for right-to-left languages. Adobe doesn't seem really wishing to fix the problem. I have these problems in my tests of Flex 2. Is Adobe planning to fix the issue and make the RTL support built-in?

  12. Back to top

    Re: Right-to-Left languages

    Dec 12, 2007 9:03 AM by James Ward

    Hi Alex, Flash 10 will have RTL support. -James

  13. Back to top

    Re: Flash Penetration

    Dec 12, 2007 9:16 AM by James Ward

    The 89.4% number was from June 2007. The 93.3% number was from September 2007. Following the historical trends Flash 9 is beyond 94% adoption worldwide today. -James

  14. Back to top

    Re: Flash Penetration

    Dec 12, 2007 3:30 PM by Gary Ault

    But do these numbers measure flash penetration in corporate and government environments?

  15. Back to top

    Re: Flash Penetration

    Dec 12, 2007 5:05 PM by Jon Rose

    Assuming one was to take Adobe’s numbers at face value, how do these numbers compare to other client side runtimes? I can’t seem to find any numbers on JVM installs.

  16. Back to top

    Re: Flash Penetration

    Dec 13, 2007 7:04 AM by Bobby Lewis

    Are there any major e-commerce applications which have implemented their forms/functionality with Flex? Requiring your customers to have the plugin and tolerate the larger downloads when you are a major revenue channel for your company is a big pill to swallow.

  17. Back to top

    Re: Flash Penetration

    Dec 14, 2007 3:19 PM by James Ward

    Hi Bobby, I've seen a few e-commerce applications using Flex: http://www.anthropologie.com/ http://www.thenorthface.com/na/index.html -James

  18. Back to top

    Re: Flash Penetration

    Dec 14, 2007 3:22 PM by James Ward

    Hi Gary, The penetration study is a general audience. So it covers home, corporate, and government users. While most people I talk to in corporate environments find that their user base is within a few percent (either way) of our published numbers, I always encourage people to test their user base. Maybe they all have green screens and thus no Flash. Let us know what you find. -James

  19. Back to top

    Re: Flash Penetration

    Dec 14, 2007 3:31 PM by James Ward

    The only numbers I've seen are from Joshua Marinacci of Sun. He says that "77% of all PCs have a Sun JVM installed". This was posted to the Java Posse Google Group: http://groups.google.com/group/javaposse/browse_thread/thread/35822914b9ae2b18/54d46d1e9f043101 -James

  20. Back to top

    Re: Flash Penetration

    Dec 14, 2007 3:35 PM by James Ward

    One more Flex e-commerce site I just found: http://homedepot.shoplocal.com/homedepot/default.aspx?action=entryflash

  21. Back to top

    Thanks

    Jan 6, 2008 8:27 AM by Steve Fuller

    I have been keeping an eye on Flex for some time now. I just wanted to say I appreciate the opinions of everyone regarding this article. Having never used it, I can't comment, but I have seen some amazing implementations of it and it does look promising. This article does a pretty good job of addressing some key questions that I've been milling over. Anyone know of any glaring deficiencies not mentioned here? Or better yet, places where Flex excels in doing particular tasks?

  22. Back to top

    Flex + RAD = Snapp MX

    Jan 23, 2008 2:47 PM by Harald Kobler

    Flex is a great tool for "Designer" applications but some people are just looking for a way to develop data-centric applications rapidly while leveraging the benefits of Flash. This is where Snapp MX comes into play (see http://www.snappmx.com/). If you're interested a comparison between the two products can be viewed at: http://www.snappmx.com/products/SnappMX-Flex_Comparison.pdf

  23. Back to top

    Load testing Flex applications

    Jul 28, 2008 2:50 AM by Ethan Jones

    There is a really good whitepaper about the need to load test Flex applications. It can be accessed here: http://www.radview.com/DownloadCenter/Flex-Whitepaper.aspx

  24. Hello, Knut Forkalsrud. Are there any major e-commerce applications which have implemented their forms functionality with Flex? Requiring your customers to have the plugin and tolerate the larger downloads when you are a major revenue channel for your company is a big pill tower defense to swallow.

  25. Back to top

    Thanks

    Jun 15, 2009 6:42 PM by Oyun Cambazı

    The only numbers I've seen are from Joshua Marinacci of Sun.Oyun

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.