Flash Conceptions and Misconceptions

I’ll be at the Adobe Max conference in Las Vegas tomorrow and Wednesday. I’m looking forward to learning as much as I can about what Adobe’s doing these days, especially in the area of Flash, Adobe’s interactive multimedia format and Flex, Adobe’s solution for developing rich internet applications (RIAs) based around Flash. Adobe has provided me with a free pass. In return, I want to get the most out of it by not starting from a dead zero understanding of what they’re up to.

I run the risk of looking like a complete ignoramus because I know so little about the current state of Flash and I come with a programmer’s bias against Flash. But I live by The Clueless Manifesto. We’re all overwhelmed with stuff to learn; there’s too much to know; so what do we do? Pretend we know everything? Or admit to our questions and our blind spots and work from where we are? If your background is more in the C/C++/Java/RDBMS world than in interactive web design, you might share my impressions of Flash. Maybe we’ll learn something together. Or maybe you’ll teach me something, as happens so often when I put my half-formed ideas out.

Here’s what I thought about Flash one week ago:

  1. You have to deliver a Flash program as one big blob of behavior and data.
  2. Flash is for web designers not application developers.
  3. The Flash format is entirely closed and proprietary.
  4. Flash doesn’t know anything about databases or other data sources.
  5. You can’t count on users having the Flash player installed in their browser.

I’ll take each of these in turn to see where I might be right or wrong.

1. You have to deliver a Flash program as one big blob of behavior and data.

Although the easiest way to deploy Flash content is as a single SWF file, that’s not the only way to use Flash. With Flex, you can deploy Flash into n-tier architectures. You can also load your application data dynamically in a variety of ways including XML over HTTP, sockets, and JSON.

2. Flash is for type-drunk web designers who wish they were creating television advertisements.

While it’s true that many Flash developers came from a user interface and presentation perspective and not from the ranks of assembly language programmers, Flash itself has developed to the point where it is a full-featured platform for building interactive applications. It’s not just for making words twirl around on the screen then dissolve into a fluttering of butterflies.

One way to code Flash content is via MXML, an XML-based UI description language, and ActionScript, JavaScript-like language that conforms to the ECMAScript standard on which JavaScript is based. This allows as much or more richness and interactivity as using JavaScript on a browser’s DOM (document object model), which provides interactivity for Ajax applications, so it’s as much a developer’s tool as Ajax.

3. The Flash format is closed and proprietary. So you have to use (expensive) Adobe tools to work with it.

This has a couple of misconceptions in it: first, that there’s only one format for Flash and second that it’s entirely proprietary. There are a number of formats that work together to bring Flash content to a user. Some of the most important are these:

  • MXML: Adobe’s XML user interface markup language for specifying UI elements like buttons and windows. You do not have to use this to create Flash content.
  • ActionScript: As mentioned, an ECMAScript-compliant language for scripting Flash elements.
  • FLA: Adobe’s closed binary file format for storing Flash project information. This serves the role as source code for a Flash project being built in one of Adobe’s tools.
  • SWF: Adobe’s proprietary binary format for delivering Flash multimedia content. Essentially, this is the compiled program. Its license grants tool developers the right to create products that output this format. However, the license does not allow creation of tools to play the SWF format–that right is reserved for Adobe’s products like the Flash player that can be installed in web browsers.

Since the license of the SWF format allows developers other than Adobe to create tools to output it, there are many ways to create Flash content. You can see some of the possibilities on the Open Source Flash website. One interesting open source tool that can output Flash content is the OpenLaszlo RIA platform. This framework uses its own UI markup language (LZX) with JavaScript to code web applications that are output and run as Flash applications or, in the near future, as Ajax apps. The web-based Visio-like diagramming application Gliffy is being built using OpenLaszlo.

The Flex 2.0 SDK (compiler plus class libraries) is available free from Adobe, so if you want to get started with Flash development using Adobe software you can even do it for free. However, if you want to get fancy, you’ll likely need more than that provides so you’ll either have to buy more sophisticated tools from Adobe or find what you need elsewhere.

4. Flash doesn’t know anything about databases or other data sources.

I’m completely wrong on this point… there seem to be many ways to tie back-end data sources into Flash. So you can build a database application with a Flash front end. Would you want to? I’m sure people successfully have, but I’ll need to understand the various possibilities more before I have any opinion on how the different approaches work, what they’re good for, and how they compare to the alternatives. Perhaps I’ll be able to attend the Flex Data Services Overview or Building Applications with Flex Data Services at the conference and get some insight on that.

5. You can’t count on users having the Flash player installed in their browser.

Adobe claims that “Flash Player is installed on 98% of Internet-enabled desktops worldwide.” Dig down and the statistics tell a slightly less optimistic story. There are many different versions of the Flash Player, and it is Flash Player 5 with the broadest reach. Flash Player 9, the most recent version, was released in June of this year. Flash Player 8, the prior version, has an installation rate around 85%, according to Adobe. So you can’t assume that everyone with a web browser has a Flash Player of a certain version level installed. There are ways of detecting the user agent’s Flash Player status and of automatically downloading or directing the user to the right version. Some users might refuse to install the version your application needs. Similarly, users can disable JavaScript in their browsers. I don’t see this as a major count against Flash, but rather reflecting the baseline complexity that exists in the web app development space today.

In Conclusion

It turns out my concepts about Flash were mostly misconceptions. I’d like to spend some time comparing Flash to other ways of creating interactive web applications, like Morfik, the Google Web Toolkit, and straight Ajax coding. And what about Microsoft? Can’t count them out either.

18 Comments

  1. Posted October 24, 2006 at 6:35 pm | Permalink

    Anne, Thank you for writing such a well thought post. It’s hard to be open minded about the choices we’ve made regarding our careers. As a Flash developer I’m just as guilty of bashing Ajax as any Ajax developer is of bashing Flash. It’s hard to get away from the “my team” attitude.

    You were right on about your comments regarding Flash player penetration. The current hot spot for development is for version 8 and it’s only at 85%. The real question is who are the other 15%?

    A large section of them are Linux users who just got the Flash 9 player in beta a few days ago. And of course there are a lot of people behind firewalls where they can’t get to it - it certainly helps keep employees off of youTube. And then there’s the users who have clunky old PCs running IE4 for AOL that hasn’t been updated this millennium.

    In most cases these are not your target users if you’re building a dynamic site and if you’re building a site that is heavy on Javascript you’re going to lock out those same users.

    Any Ajax developer has to be worried about what will happen to their code in future versions of browsers. How will it work in FireFox 3 or IE10? With Flash that isn’t a concern.

  2. Posted October 24, 2006 at 8:04 pm | Permalink

    Welcome to the world of Flash and what it can do. The best part is, you’ve barely touched upon the tip of things here. I think one of the hardest things for people to get past is that the only Flash stuff that people see are the ads and animations all over the web, while the backend stuff all sits behind firewalls and user login screens.

    One thing you left out here that has become huge over the past year and I’m sure is helping drive player installations is Flash video. You can’t go anywhere without seeing FLV videos these days, Google Video, YouTube and thousands of other sites are all serving up Flash video.

    Enjoy MAX! I’m sure you’ll discover many more things you didn’t realize about Flash. Wish I could be there.

  3. Posted October 24, 2006 at 8:12 pm | Permalink

    thanks,
    great writeup

  4. Posted October 24, 2006 at 9:39 pm | Permalink

    Dan: you’re right, it’s easy to get caught up in thinking the way we’ve chosen is the right way. But I guess a couple days away from the kids staying at the Venetian Hotel can get me to open my mind a bit ;-) Anyway, there’s lots of reasons to bash Ajax… I’ll get to that in a separate post.

    Rick: I didn’t forget FLV, it deserves an entire post of its own. Flash video is clearly an important lever for Adobe, maybe more than most of the web development community realizes.

    Jon: and thanks to you too. It was fun to write.

  5. Posted October 24, 2006 at 9:42 pm | Permalink

    Hi Anne,
    Thanks for the writeup, check out Apollo sessions at MAX ;)

  6. Posted October 24, 2006 at 10:34 pm | Permalink

    This is really funny timing for this post. I was just talking to someone at CSS this week and saying “Where’s Adobe? It seems like they should be presenting Flex to this crowd.”

    There you go - they are at their own conference! Looking forward to your posts.

  7. Posted October 24, 2006 at 11:58 pm | Permalink

    very well written and some great revelations. these times are a changin’

  8. Shaik
    Posted October 25, 2006 at 1:07 am | Permalink

    Hi, I happened to see this artile while I’ve decided to do some educational software in Flash(after attempting to do it Java Swings - it was my first choice I’m a java developer). But flash is the right choice. Your article cleared my doubt about the interaction of flash with the database.

  9. Michael
    Posted October 25, 2006 at 8:36 pm | Permalink

    Btw, how about “browser history” misconception? Flex 2 offers user out-of-the-box JS code that enables browser back button for Flex applications. There are some solutions on that in Flash apps, too. The same with text. Many blame Flash apps that they can’t select text but it’s only a question of whether application developer made textfields unselectable, etc.

    It would be great if you update your post given that, thanks!

  10. Michael Klishin
    Posted October 25, 2006 at 8:38 pm | Permalink

    Anne, here is the link with example of what I mentioned above, “Flash deep linking”: http://www.asual.com/blog/swfaddress/2006/10/23/swfaddress-deep-linking-for-flash.html

  11. Michael Klishin
    Posted October 25, 2006 at 8:43 pm | Permalink

    Sorry, useless link, here it comes: http://www.asual.com/swfaddress/

  12. Posted October 26, 2006 at 1:50 pm | Permalink

    In these debates between Web Display Technologies, there is one major point in Flash’s favor, that a coder is especially likely to overlook.

    Flash allows a far greater range of expression than other web canvasses. Flash allows the content creator to express far more emotion and other such human experiences. It is very difficult with HTML/JS to appeal to emotions and such.

  13. Posted October 26, 2006 at 5:44 pm | Permalink

    Don’t forget:

    6) Accessibility issues for users with disabilities — not just visual disabilities, but hearing and learning disabilities as well, and even motor disabilities

    I actually have done some digging recently that shows that’s not entirely true either — but it takes a good deal of work to make that so:
    http://www.webaim.org/techniques/flash/

    With educational software, especially, you need to be aware of these things, as with public schools and universities, Section 508 may come into play, as well as state-level legislation regarding accessibility for public education…

  14. Posted October 30, 2006 at 10:18 am | Permalink

    Michael - thanks for the tip on Apollo; the session I went to on it was fascinating. I’m still chewing on what Apollo means for the future. As for the “flash deep linking” issue, I’ll have to save that for my next Flash post, because I think there’s a bunch more to cover. Whether I’ll get to it or not, who knows? But Flash/Flex is pretty amazing.

  15. Posted October 30, 2006 at 10:20 am | Permalink

    Sam - absolutely, Flash gives a much more rich experience than you can get with Ajax apps. On the flip side, HTML content is indexable by search engines while Flash content is not. Those are pretty serious tradeoffs to consider when choosing an approach.

  16. Posted October 30, 2006 at 10:24 am | Permalink

    Thanks, Sara, I should have thought of the accessibility issue–always an important one to keep in mind when talking about any software, web-based or otherwise.

  17. Jeff Whatcott
    Posted October 31, 2006 at 8:26 pm | Permalink

    Check out the following site on Flex and accessibility.
    http://www.adobe.com/macromedia/accessibility/features/flex/

    See the following link about SWF metadata for searchability:
    http://tutorials.lastashero.com/2005/10/using_swf_metadata_in_flash_8.html

    One other point about searchability is that it is important to remember the difference between searching content and searching application data. The former is what search engines are designed to do. They don’t really do the latter at all, and that’s a good thing. Let me illustrate this with an example.

    Go to google and search for “customize a harley”. The top link will take you to http://tinyurl.com/yev4xu. Perfect. There you’ll see a link to “Build the Harley of Your Dreams”. When you click on it, you’ll start a Flex-based configurator RIA that will visually guide you through the process of building a custom bike. So was this app searchable? Well, not in the traditional sense - Google did not return data from the part compatibility rules engine. But was the app findable? Very.

    In most RIAs (Flex or Ajax or Servlets or XUL or XAML), the application initializes on the client is populated with data through middleware layer on a remote server. The application doesn’t contain much, if any data. It is a container into which data is poured via JSON, SOAP, REST, AMF, RTMP, RMI, Remoting, etc.) In this architecture, what is that you want to have a search engine index? The UI of the app (how many data grids are there, how many numeric steppers are there, and what color are they, etc?)? Probably not. Do you want Google to index the full contents of the remote database? Probably not, unless it is a product catalog, in which case by all means, you should put it out there for searching. Is it the fact that the RIA exists - that there is a useful tool that can streamline a complex multi-step process that is of interest to me? Absolutely! Is this possible with Flex/Flash? Absolutely. You just have to think about the *application* in the context of all the *content* that surrounds it. Content is meant to be searched. Apps are meant to be used. Content helps you find useful apps. I think it’s that simple. Let me know if I’m missing something.

  18. Posted November 1, 2006 at 8:40 am | Permalink

    It’s strange how Flash is perceived by coders.

3 Trackbacks

  1. By SitePoint Blogs » Oct 25, 2006 News Wire on October 25, 2006 at 4:02 pm

    […] Flash Conceptions and Misconceptions If you haven’t looked at Flash in awhile, this run-down of common misconceptions is a good start in getting a better picture of the state of Flash (and Flex) development today. (tags: flash flex) […]

  2. […] All he wants is a website worthy of his firm, a website that meets his own standards, that truly reflects what he can do. But it’s near impossible to make it these days. He mentioned Google Maps. Ajax, I told him, very cool. But wouldn’t Flash be better? That’s the first time I’ve recommended Flash. But imagine: you look at the plan of a house and mouse over a feature that interests you. Architect’s notes pop up, telling you how the kitchen window overlooks the backyard so you can see the kids playing. Or you drill into a video of the room itself. You click on the office and get an image of the built-in desk and bookcases. Then you watch a little video about how the home design or remodeling process works. How cool! But how does my neighbor build that or even get someone else to build it for him, for a reasonable price? And how does he update it and keep it fresh over time? […]

  3. By tech decentral » Flash Myths Redux on December 7, 2006 at 11:14 am

    […] Ryan Stewart of the Universal Desktop blog on ZDNet suggested I do a “Six Myths About Flash” post to go with my Six Myths About Ajax. Already done, in October:Flash Conceptions and Misconceptions. But I only included five myths about Flash when I wrote that right before Adobe MAX, so let me add a sixth. […]

Post a Comment

Comments are moderated. Rude comments may be edited or deleted.

Your email is never published nor shared. Required fields are marked *

*
*