BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Opinion: Flex can transform the user experience on the web

Opinion: Flex can transform the user experience on the web

Bookmarks
Christophe Coenraets, a Senior Technical Evangelist at Adobe, recently blogged on how Flex can transform the user experience on the web. Flex is Adobe's platform for ajax-style enterprise rich internet application development that runs on the ubiquitous Flash VM.  In late  June, Adobe launched Flex 2 and made the Flex SDK free for use.  The SDK contains the full Flex framework which provides vector graphics, drawing APIs, rich media (video/audio) and UI widgets, as well as dev tools such as SWF compilation, debugger, etc.  Flex itself is a rich web development framework that could rival/surpass Ajax-based alternatives due to Flash's ubiquity, as Flash is practically as standard/available as Ajax itself.

Christophe stressed a number of features that are not unique by themselves yet valuable when used together. The Flash VM makes all of the features he mentions available across operating systems and browsers. Below is a summary of his main points:

Expressiveness (vector graphics)
Vector graphics allow developers to make user interface objects behave like real life objects.

Vector graphics are helpful in a wide variety of applications. For example, in a visual dashboard, they allow charting components to be redrawn and animated at the client-side, helping the end-user to better understand data trends and transitions
Performance (JIT compiler)
Flex applications are delivered to the client as bytecode, which is executed by the Flash Virtual Machine with the help of a JIT compiler.

This can make a significant difference in code execution and enable “desktop applications”-like performance on the web.
Real time (binary sockets and pub/sub messaging)
The Flex Message Service builds on top of this infrastructure and provides a complete publish/subscribe messaging solution, allowing messages to be exchanged, in real time, between thin clients and servers. The Flex Message Service also integrates with existing Enterprise solutions systems such as JMS-based systems.

Rich media (video and audio streaming)

The Flash Player includes media playing and streaming capabilities ... it is being adopted by the major video sites such as Google Video and YouTube.

Using Flex, video can be a lot more than the passive streaming experience we are often exposed to on the web… it can be tightly integrated with the rest of the application. The video can trigger events during playback, and drive the behavior of other components of the user interface. These capabilities enable a broad range of new innovative and highly interactive applications (interactive video tutorials, interactive “ask-the-expert” series, media portals, in-context videoconferencing/videochat, etc.)
Offline support (local storage and desktop client)
Flex applications can store data at the client-side in a local data store (known as local shared object). The application can access (read/write) the local data store while disconnected from the network. A lightweight desktop player is under development for browser independent Flex applications.

Christophe sees the main takeaway from using all these technologies in conjunction as improving the developer experience:

This one is not about transforming the user experience, but transforming the developer experience… Developing applications including the innovative capabilities listed above is actually easy.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Load times will be the death of all "plug-in" style solutions

    by Clinton Begin,

    • Re: Load times will be the death of all "plug-in" style s

      by Christophe Coenraets,

    • Re: Load times will be the death of all styles

      by Floyd Marinescu,

    • Clarification...

      by Clinton Begin,

      • Load times will be the death of all "plug-in" style solutions

        by Clinton Begin,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        I think Java Applets, Flash (including Flex and Laszlo) and, to a lesser extent, ActiveX suffer from the same problem: LOAD TIME!

        I absolutely cannot stand the little "Loading" progress bar for even a simple app such as the dashboard.

        From what I've seen, Ajax has a significant advantage in that it can "partially load". My Google homepage for example, loads each portal separately, but they can interact together. Most Ajax applications work nicer too, because they are native to the browser, rather than an embedded plugin.

        Load time will be the death of all such technologies in their current form.

        In fact, Flash is so bad, I've seen one implementation that has a game of Tic-Tac-Toe for the user to play while the Flash app is loading.

        Cheers,
        Clinton

      • Re: Load times will be the death of all "plug-in" style s

        by Christophe Coenraets,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        Clinton,
        You can load multiple Flex apps separately and they can interact together.
        FYI, Google actually uses Flash technology (i.e. Google Video, Google Finance). I guess that the fact you didn't notice means that it loads fast and is well integrated in HTML :)

        I don't see the fact that the Flash VM runs as a browser plug-in as a downside: it provides an abstraction layer and allows for faster innovation, and that was in fact the point of this article: The Flash Player provides transformative features that are not available natively in browsers today (vector graphics, JIT compiler, binary sockets, pub/sub messaging, offline, rich media, etc.) And it would probably take years before these features become natively and ubiquitously available across all browsers.

        Christophe

      • Re: Load times will be the death of all styles

        by Floyd Marinescu,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        Clinton, load times are a killer yes (which is why I think Applets never took off)( but I haven't experienced this with Flash. Perhaps you've seen a few badly architected apps.

        I think the Flash as a VM might succeed where applets did not precisely because of the low footprint of the Flash VM.

      • Clarification...

        by Clinton Begin,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        There's a BIG difference between a Flash *APPLICATION* (flex/laszlo) and an embedded flash component like the video player or the graph on google finance (or the various flashy parts of a site like cambrianhouse.com -- which is a really good example of flash usage IMHO).

        I'm specifically talking about the sad user experience of Flash applications, whereby the entire browser is generally filled with the flash plugin and it starts with something that looks like:

        Please wait, loading [0000000000----------------------]

        Laszlo is a particularly bad example, that has a "Loading" interruption for nearly every user interaction -- even simple tabulation of server-side XML data. I'm not sure if I've seen it as bad in Flex, but I was disappointed enough by the Dashboard app listed in the article.

        That dashboard example was a pretty simplistic example, and it still required... Loading [0000000---------]...that.

        Perhaps some people will find that it's worth it for the overall user experience...but as a matter of style, I'll simply avoid it. Ajax is easy enough and free.

        Cheers,
        Clinton

      • Re: Clarification...

        by Michael Klishin,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        Do you know that you can split your app to any number of parts and load them in queue?

        World is going broadband. Ajax stand fast loading but lacks of features and security policy. Both have disadvantages. Compare benefits.

      • Re: Clarification...

        by Scott Barnes,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        A video player is a flash application? semantics aside you're seeing FLASH.

        Look at Breeze for example, you can interact, screenshare, communicate & colloborate on ppt presos and the likes - you're living in the flash space and loving it. Loading times become secondary, an afterthought as its solved an immediate need.

        You look at he Video players on google now, and are quite happy to wait for the streaming bar to update with new chunks of data - reason - you're happy that its solving your immediate problem "I can now watch Google Idol - YAY!".

        Example: In one large building, the foyer had people waiting for their elevators to arrive. Folks began complaining about how slow the service was and why it took forever to just go up x floors. So the architects brought in a phsycologist, to examine the case and think up ways to help them improve (as redoing an entire elevator systems isn't exactly cheap or easy).

        The examiniation ended and the recommendation came forth - "Install mirrors in the foyer where they wait". So they did, and the complaints dropped. The reason being is, folks were distracted from the problem and focused more on either themselves or trying not to stare at the person behind them or beside them (eye to eye contact in public situations, is considered hositle conflict and people shy away from it).

        The point i'm trying to make is this: You can focus on the loading times, because its the only thing you are seeing up front. You majority of the time don't know whats behind the loading screen and so that frustrates the experience. I hate it just as much as the next person, but in truth i blame the developers not the technology.

        FLEX 2 has the power to bring in small bits of an application as its needed, with minimal or no loading times. It just requires smarter people to code them, to understand the technology they have in front of them and try not to load everything in one mouthful.

        AJAX solutions also suffer from this (Netvibes.com for example, loads all the pods at once???? - yet - GMAIL is faster?) AJAX requires smart people just as much as any other language to ensure that usability is done smoothly (its not an exact science either).

        Clinton to be blunt, you're appear to be ignorant of the technology and tend to focus on "some" of the solutions solved with the technology. Loading times tend to not be part of the deciding factor when a solution is being solved. So "Load time will be the death of all such technologies in their current form."

        If you don't believe me, look at Windows XP now. We always "wait" for it to bootup, daily and we tend not to complain as much as we should - I could ask, "why does it take so long, just load the core OS and let me get immediate access and then when i load an application it loads the upgrades etc??? progressive growth!!!".

        Yet AppleOSX does the same.

      • Re: Clarification...

        by Clinton Begin,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        >>Both have disadvantages. Compare benefits.

        A single disadvantage can kill a lot of benefits. It would be foolish to wear rose coloured glasses and ignore the disadvantages. The same disadvantage killed Applets. I doubt Flex will gain any significant market share compared to Ajax.

        Don't get me wrong...I don't *like* Ajax[1]...but it does work better right now.

        Clinton

        [1] When I say Ajax, I'm not just talking XHR, I'm including JavaScript +DOM in general.

      • Re: Clarification...

        by Clinton Begin,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        You look at he Video players on google now, and are quite happy to wait for the streaming bar to update with new chunks of data - reason - you're happy that its solving your immediate problem


        You're missing the point and changing the problem. There is NO perceivable load time for the video player itself -- it loads so fast I don't even notice.

        The progress bar is loading *DATA*. Data is an accepted consequence of the given medium for which there are many accepted solutions, not the least of which is loading less. In this case of video, I could reduce the quality of the video, find/use a better compression algorithm or, where it's an option, increase bandwidth.

        In addition: I DON'T WAIT for the video. It loads while it is already playing. Immediate user feedback is the key.

        The only immediate user feedback that I get from Flex or Laszlo is:

        Loading [000000000......] ... PLEASE WAIT.

        I don't. I close my browser tab and find something else.

        Otherwise, why wouldn't google spend a few thousand bucks to buy Flex? After all, it DOES look better, it DOES work better, it IS easier to develop, it IS more compatible and it IS more widely deployed than any consistent version of a browser. Why then?

        Because they agree with me. Waiting sucks.

        Loading [00000000-------------]

        Cheers, ;-)
        Clinton

      • Re: Clarification...

        by Scott Barnes,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        Again, two different contexts same technology? so you're basically time poor and can't wait for something like Lazlo (which btw isn't FLEX and is infact Flash 5, we are in Flash 9 generation).

        I think you are confusing the technology with the end-solution solved with the technology. I can count a million and one JavaScript + DOM examples of poor solution(s) while equally i can count the same with FLASH solutions.

        This is the internet, we are expected at default to "Load" stuff as we need it. Yet the thing that's become normal in the browser centric view is the progressive load, whereby I visit a webpage, i see the basic structure, assets are being loaded in the background and by the time I'm ready to move on, the page is either 70-90% loaded or 100% loaded. That's the experience you appear to be chasing, the progressive load.

        This is can be done, its just not done enough and as a result, we are here inside someone elses page debating the merits of Flex/Flash/RIA dream. Yet, you're about to get a culture shock in the next 2-3 years, as despite your anxst against the dreaded progress bar, its now become hygiene (to be expected). I'd wager you represent a small % of users out there that blindly navigate their way through the online medium because of anti-hate towards anything that makes you wait for 20sec - 1 min for data to be absorbed.

        Statistics on sites will back this up.

        If you're visiting a site for a specific reason, you will wait. If you are browsing, you probably won't. That's the site-owners issue to fight with, and if architected correctly shouldn't be a major downfall.

        FLEX 2 has a very powerful reparenting capability, and what this translates to is that it will allow you to load Base.SWF, inside this is the basic elements needed to render the core essence of what a site will have. Then, you have the ability to load in Pak1.swf, Pak2.swf and so on as you need it. Inside each of these individual swf's are basically "upgrade paks" needed in order to present the next stage of the website.

        This will translate into a seamless end to end experience, with minmal wait time and better yet, allows scale.

        AJAX world, you are limited to the browsers capability. You have only a certain amount of power before it becomes capped. GMAIL makes me wait now, for my mail when I click on the next "Label". NetVibes makes me wait when i go to different tabs and get new data. MSN Messenger makes me wait for the login sequence and so on..

        All have Wait times? all have different technology constraints. I'm yet to figure out what your beef with flash player itself is? There is wait, no matter how you percieve it and each has its own way of producing it - a browser will not show me the images as i load a page, yet shows me the text first? Does this bother me? - depends on your point of view. I visit Gamespot.com, click on the screenshots and I wait..wait..wait.. oh wait there it is. Yet I visit Flickr.com and i get what is percieved as immediate feedback?

        Just how time poor are we all becoming now? technology is making qantm leaps - AJAX is just re-hashing the same crap but with a more focused approach. This is no holey grail or new innvoative silver bullet, its merly a smarter approach to the DOM equation. FLEX is the same for Flash, its focused on the developers perspective and adjusted the platform in the way it renders/delivers content. Once the wider development community catches on, things may change.

        Despite it all, there will be poor solutions developed on both sides but does that mean the core technology sux? hell no?

        Face it, you're a small percentage of user who challenges the RIA concept simply because its foreign and AJAX is a classic example of not wanting to accept the new mentality that HTML is ear-marked for depreciation.

        Microsoft Vista, FLEX2 and a whole array of other solutions out there are fed up with the browser approach, as it puts to many constraints on the delivery context.

      • Re: Clarification...

        by Scott Barnes,

        Your message is awaiting moderation. Thank you for participating in the discussion.


        Otherwise, why wouldn't google spend a few thousand bucks to buy Flex? After all, it DOES look better, it DOES work better, it IS easier to develop, it IS more compatible and it IS more widely deployed than any consistent version of a browser. Why then?

        Because they agree with me. Waiting sucks.


        Probably because FLEX 2 has only just been released? not 100% sure to be honest why Google do the things they do, and if anyone here did, we'd be all rich because of it. Google may choose to adopt the AJAX approach (before it was even coined as AJAX) simply because their core engineering team at the time weren't ActionScript minded and used the tools they had in front of them. At the time of concepts like GMAIL, GMAPS etc were being engineered, Flash was for sure, not the ideal solution. It was approx generation 5,6 or 7.

        We were delivered 9 in around June/July of this year. It's now August, wider adoption needs to happen, so as a result the FLEX dream is still in its infant stage. It will grow, that's something to bank on.

        Just like when Windows Vista hits our shelves. It will have WinFx hooks ready to use - yet will the world use them in the first year of release? - nope, some will some won't, but it will take quite an increase in marketing to make it happen.

        It needs to seed first, just like DOM + JS has and thus AJAX approach was born

      • Re: Clarification...

        by Clinton Begin,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        >> Face it, you're a small percentage of user who
        >> challenges the RIA concept

        Once again you change the problem and take my words out of context to try to find an angle and make a point (and you got a bit personal challenging my time and telling me I'm rare).

        I didn't challenge RIA at all. I challenged Flex and Flash for RIA. In my opinion, they will suffer the exact same fate as Java Applets (which I bet are still more popular than Flex).

        I have yet to even bump into a Flex application on the web accidentally, whereas I see people adopting Ajax everywhere (including this site).

        Why doesn't InfoQ, Digg, Flickr, MySpace, Google, Yahoo, or MSN/WindowsLive use Flex (don't point to one little page where they use flash -- I mean full use of Flex for their core platform)? Oh wait...

        Loading [000000---------------]

        ...because it sucks.

        Don't take it personally. It's just my opinion.

        Clinton

      • Re: Clarification...

        by Scott Barnes,

        Your message is awaiting moderation. Thank you for participating in the discussion.

        I apologise if you misread this as personnel attack? (not the intent)

      • Flex is the name of the sdk that produces Flash 9+ bindary SWF (ie same deal as C# to .NET)
      • 90%+ of the online traffic today uses some kind of Flash.
      • Loading and Progress bars are common in any platform (XBOX games even - even slower, yet we buy?)
      • Flex 2 has only just been realised and that's highly likely why anyones not using it at present. The FLEX 1.x generation used to cost $15k per CPU just to use it (Flex 2 is now FREE), and on average it was rumoured Macromedia were selling a 100 units a month.
      • Concepts like SAP NetWeaver use FLEX a lot, which solves real-world business grade problems.
      • FLEX SDK in the first instance, was never meant for web-world, its a different perspective on the approach and will have folks like yourself outputing unqualified opinions on the matter ( no offence, but your post illustrates that dare I say it, you don't know what FLEX/FLASH does/doesn't do)
      • AJAX style applications have been commonly used because the core essense is still JavaScript + HTML, mainly HTML. I've been writing DHTML applications since the DIV tag was introduced, and until I was forced to use flash i probably would of. Yet, my awareness for FLASH has adjusted my perception on the matter. That's why AJAX is thriving today, folks want the "RIA" dream but are still unsure what can deliver it (Microsoft have released ATLAS with a further onslaught of WinFX luv, see how that little boon warps perceptions quickly in the next couple of years).
      • Its early days. Too early to pass initial judgement.
      • Java Applets died of quick sudden death as they were bloat-ware, took on too much of a footprint and as a result, your browsers would suddenly enter into a paralized state. Macromedia and now Adobe have gone through painstaking effort to ensure that he current Flash Platform doesn't suffer from these types of mistakes. Even more so, its now entering into its 10years of life, and is again installed on more machines around the world then maybe even Windows!. Its not going away in a hurry thats for sure infact its actually growing each year.
      • Load times are hygiene, we watch OS level systems do it now. You open up Adobe Photoshop, you wait. You open up Windows Office, you wait. The key is not to wait too long unless its become a normal thing - in which case, the wait becomes secondary perception. The waits you have indicated generally are derived from the fact that its a "new concept" you're entertaining and aren't aware of whats behind them - thus you'll most likely be more tuned into the progress bar? (theory anyway).
      • No matter how hard I try, i think discussion on this topic with you will end in the same thing, so lets say we both disagree :)

  • It certainly transforms the developers experience

    by j c,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    into a bad one

  • Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

    Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

    BT