The New Face of Flash | September 26, 2005

Some of you may be surprised that prior to developing an interest in web standards, I was actually an ActionScript programmer. I used to really enjoy building flash based games and application, although I tried to steer clear of the ubiquitous “skip intro”. However I became increasing frustrated with the Flash development environment. By the time Flash MX came out, ActionScript was a fairly reasonably formed object oriented programming language. However all of your development happened in an environment designed for visual animation. Frustrating to say the least.

By the time Flash MX 2004 came out I was so fed up with Flash, I threw in the towel and never looked back. Since then my view of Flash has been locked in 2003. Flash to me meant sites opening up in full sized windows, user interfaces taking 10 seconds to build as elements would fly in from one side, fade in and assemble themselves, only to fly apart when you clicked on a navigation element and rebuild again on the next screen. Flash 99% bad indeed.

The other day I popped into Borders coffee shop for a much needed break from writing and bumped into friend and Flash supremo, Aral Flash Ant Balkan. We got chatting and in the space of half an hour Aral changed my view of Flash for ever.

Aral was working on a Flash application and we got talking about developing applications in flash. The first thing that really shocked was when Aral started talking about running user tests for his applications. A Flash developer knowing what user testing was, let along running one? Never heard anything like that before!

We started taking about why you would choose Flash over a more tradition approach and one of the main things was obviously the ability to maintain state. We briefly talked about the ability to do this in regular HTML pages now, using AJAX. However Aral quite rightly mentioned that what people are starting to do now using AJAX, Flash developers were doing 3-4 years ago. As such, the Flash developer community had learnt a lot from their early mistakes, the same mistakes AJAX developers are making now. Also the Flash client and server technology is a good few years ahead of the AJAX community.

Hmm, interesting, but I needed more convincing. Flash still seemed like a very clunky way to build applications. This is when Aral introduced me to MXML, an XML user interface language much like XUL. Rather than building his interface in Flash, Aral was editing XML files. Adding a <mx:TextInput /> tag would create an input box, adding a <mx:Button /> would create a button element. Aral explained that the MXML file was really intended for presentation only, and all the data and logic were dealt with elsewhere. Hmm I thought, separating presentation from data sounds familiar, I wonder where I’ve heard that before?

Aral then started walking me though his ActionScript framework. No longer did you need to embed ActionScript in your Flash files. It could all be held externally as .as files, the logic and behaviour being separated from the display. The framework really did look like any other object oriented framework except this was written in ActionScript and not PHP or Java.

It struck me that Aral was coming at things from exactly the same angle as me, wanting to build more usable applications, separating data from presentation and behaviour etc. He was just using a different tool to achieve the same goals.

It really made me think about how much Flash has developed in the last few years. What the standards and open source community have been talking about for years –turning the web into an application platform using technologies such as XUL and AJAX- flash developers have been doing for a while now. Obviously I’d prefer to be using open technologies rather than expensive and proprietary ones. However it does make you think and give you a possible glimpse of what Web 2.0 really could be like.

Posted at September 26, 2005 11:02 AM

Comments

nortypig said on September 26, 2005 10:57 AM

Andy the separation you talk about, its the first time I’ve heard anyone mention it in regards to Flash development. I’m impressed. Maybe my snobby right eyebrow will have to come down a notch or two as well. Interesting article.

Joshua Clayton said on September 26, 2005 12:34 PM

What about screen readers? Indexing? Something other than a lone Flash object on a page?

This sounds all well and good… but I’m still just as leary about Flash now as I was before.

However, it’s interesting that they it does handle things a bit better than I had expected. Content/design seperation, as well as seperate files for script, gives me a bit better feeling about it…

Arjan said on September 26, 2005 12:58 PM

It sounds good, that has to be admitted. But then again, it’s not about what you could do but what you actually produce with it.
Flash could be good, but if nobody applies it well (even after a couple of years) hasn’t it then simply missed the boat?

Tim Uruski said on September 26, 2005 1:00 PM

I find that Flash works especially well when applied as a hook for enhanced interactivity within a larger application, say a dynamic graph, or an Ajax powered media player. HTML + CSS + Javascript handle the site structure and the majority of the interface and Flash brings in the rich media and complex interactivity.

Having been a Flash developer since v5, I’m quite pleased with how far Actionscript has come. When v8 was released I didn’t even look at the animation specs, I wanted to know what new coding tricks I could pull.

beth said on September 26, 2005 1:58 PM

I work in-house for a network marketing based company, and one of the most valuable tools we provide for our distributors is a Flash based application doing just this. We use it to display a DNA-like chart of distributors’ downline information.

Each distributor in the downline is displayed on a node. The data for this node is pulled from an outside file in our database, and another outside file tells flash where to place each node. Then users can click on these nodes for individual statistics.

I really don’t know of any other technology that would’ve allowed us to implement this two years ago with such visually appealing (and fast) results! There’s a lot of functionality in Flash that’s been going untapped. Now with the ability to cache bitmaps with Flash 8 our application runs twice as fast.

Josh Dura said on September 26, 2005 2:06 PM

What about screen readers?

Flash introduced accessibility options in Flash MX, that allow you to cater to screen readers, etc.

Flash could be good, but if nobody applies it well (even after a couple of years) hasn’t it then simply missed the boat?

Why does everyone always focus on the non skip-intro Flash pieces? :) There are a TON of great Flash applications that have already been deployed. Ex: gModeler , IntroNetworks , goToAndLearn , etc… Just like web standards, there are just as many bad examples as there are good examples. Saying that Flash designers have created bad applications/sites, is like comparing non-standards sites, to standards based sites, which if you do it that way, then HTML outweighs Flash in the “bad apple” category.

I find that Flash works especially well when applied as a hook for enhanced interactivity within a larger application, say a dynamic graph, or an Ajax powered media player. HTML + CSS + Javascript handle the site structure and the majority of the interface and Flash brings in the rich media and complex interactivity.

Agreed, and with the new ExternalInterface stuff in Flash 8, the AJAX + Flash world will hopefully be looked at TOGETHER, instead of as competitors.

Henrik said on September 26, 2005 3:07 PM

“Something other than a lone Flash object on a page?”

Well, you could make the site communicate with flash through web services, so that many objects can work together. Put your business tier in server script and let flash take care of the presentation tier (and state maintenance).

cody lindley said on September 26, 2005 3:26 PM

I’m a little confused, isn’t mxml the language used in flex applications. Which are complied into an swf for viewing in a client using flash? Can mxml be used in flash 8, without the flex framework?

Josh Dura said on September 26, 2005 3:30 PM

Can mxml be used in flash 8, without the flex framework?

Not with Flex the way it is currently deployed. But apparently, with Zorn (the Macromedia Eclipse environment), this is in the future .

Mike D. said on September 26, 2005 4:57 PM

Yep, Flash still generally kicks AJAX’s ass when it comes to application development. One thing I still can’t BELIEVE isn’t native to Actionscript is regular expressions though. I know there are a couple of ways to hack this support into Actionscript, but the fact that it’s not native yet is a bit of a headscratcher to me.

Rob McMichael said on September 26, 2005 6:32 PM

I can remember attending a Macromedia conference in Brighton when I started University there. One of the speakers was talking about a company implementing a stock ticker on their page in flash that could re-load independently of the page, saving lots of bandwidth and money!

Sounds just like AJAX :)

Jeroen Coumans said on September 26, 2005 7:26 PM

Yeah, flash is great and provides solutions now where AJAX/HTML5/SVG developers still struggle, but until open specifications and third-party implementations exist, it’s not a solid foundation to build a World Wide Web on. Remember, the succes of the current web is thanks to the openness of the underlying protocols and standards, such as TCP/IP, POP3, SMTP, HTTP, HTML and CSS.

Josh Dura said on September 26, 2005 8:30 PM

…it’s not a solid foundation to build a World Wide Web on.

Jeroen, I don’t want to speak for Andy (or anyone else) here, but I don’t think anyone here meant that Flash was going to be what the web was built on.

…openness of the underlying protocols and standards, such as TCP/IP, POP3, SMTP, HTTP, HTML and CSS.

SWF is a standard. Just like CSS, AJAX, and SVG. No difference here. SWF is just another toolset that developers can add to their arsenal to achieve a certain goal. There are downsides to it, but there are also many upsides to it (once again, just like AJAX, etc). I don’t think we need to compare Flash and AJAX, as each has its own set of pro’s and con’s.

larry said on September 27, 2005 4:55 AM

I ve been using Flash since the last 2 years, and till date I ve encountered very little problems. Overall it has been very easy to use and apply.
larry

Jeroen Coumans said on September 27, 2005 6:03 AM

Like everything, use it when it’s the best solution for your website and audience. But shouldn’t we adopt a critical attitude because of its underlying closed nature and proprietary background? It’s an interesting question to consider it a standard, since Flash is installed on 98% of all Internet-enabled computers and it’s specifications are open. Yet, since Macromedia has all control over the format, can it really be considered a standard? Also, not all parts of Flash are open in any sense, thus it could never be included on an Open Source system. (I did my homework on Wikipedia)

Let me rephrase my position as such: I think that Flash adoption by developers of RIA’s could be greatly increased if Macromedia would be more open; e.g. proposing Flash as a standard to the W3c or the IETF, and it would also give them a better position to combat similar initiatives from Microsoft.

Andy Budd said on September 27, 2005 8:54 AM

When the web was young, there were very few people pushing standards, so new technologies were adopted early. These days there are so many stakeholders that even new versions of existing standards take for ever to become ratified.

Take the long slow and painful haul towards CSS3. While the first modules may appear sometime next year, the bulk of CSS3 will take much longer to be agreed upon, and some modules may never reach the light of day.

One of the problems lies in the bureaucratic and decentralised way most standards are created. Design by committee rarely if ever works. The other issue is that most common web standards rely on the browser manufacturers for implementation. However because browsers are not a particularly important part of most software companies offering, largely because they are free, development is usually fairly slow and uncoordinated.

What the open source and standards complaint world have been talking about foe a while with XUL, it seems that Macromedia have been able to partially realise through Flex and MXML.

Rather than being reliant on standards bodies and browser manufacturers, Macromedia has created a proprietary de-facto standard which they have been able to develop, get to market and have people using extremely quickly. While the open source and web standards community are dreaming of a day when AJAX and XUL will be ubiquitous, Macromedia are several years a head.

Macromedia have been very cunning, turning their little drawing app into an application programming framework. Using a plug-in has effectively cut the browser manufacturers out of the loop, allowing for much faster product development. They have also been extremely cunning opening Flash up to open source developers, creating a raft of open source flash software. They have built up a huge developer community, far larger in my estimation than the web standards community. You only have to look at the number of Flash conferences last year vs the number of web standards conferences to see that.

True, Flash is still proprietary and I would much prefer to see truly open systems like XUL and AJAX taking centre stage. However for the moment it appears that Macromedia are kicking butt. And unless the web standards world, the W3C and everybody else pull their fingers out, it is going to continue like that until Microsoft get their act together and own the Internet with XAML and their own proprietary brand of rich Internet applications. Then we’ll all be sorry.

Isofarro said on September 27, 2005 6:26 PM

I’m not a fan of Flash - and that’s primarily because its been used for glitzy effects and hiding content inside it. At the moment, I grudgingly have to respect what it can and does offer in terms of web applications.

There’s always going to be an us versus them between Ajax and Flash applications. Ajax can do some useful applications, but I think Flash can tackle some of the higher-level graphical orientated applications that Ajax can not do at the moment - until SVG gets widespread support.

Flash is becoming more and more a very good choice as a foundation for a web application. I reckon it gives Mozilla XUL a good run for its money. (Flash has an implementation of XUL, I think its called Laszlo, or OpenLaszlo) - define the front end in XUL, Actionscript adds the behaviour.

One of the guys I’m reading is kosso. He’s creating a podcasting application in Flash (called podbat). Its very interesting, and surprising what he has managed to achieve. He blogs over at: http://blog.podbat.com/

Seven or eight years ago Java applets were the “web application platform”. Now it is non existent. Instead its a great competition between XUL, Flash and AJAX.

I need to start taking Flash more seriously. :-)

tom said on September 27, 2005 9:50 PM

So, what are these accessibility options they have included? Do they pull the content from an externally accessible file? Is there a truly application independent way to get the content that is in a SWF to be viewable outside of a traditional browser (by something else like a search engine bot or text-based client)? I’ve been thinking of ways to make a SWF read xhtml marked-up page content and repurpose it within a movie (beyond what is possible with sFIR techniques), but if macromedia has already included possible ways of doing this, I would like to know so I can let the flash artists I work with know about it.

Robin said on September 28, 2005 8:30 AM

I did some research into Flash accessibility recently and yes, while Macromedia did work hard to add a load of accessibility features into Flash MX, the only hook into the system for screenreaders appears to be through Microsoft Active Accessibility. I’ve no idea what the screenreader community on Linux or Mac is like (or if there even is one) but by my understanding they’re still locked out of Flash applications.

geeky said on September 28, 2005 3:49 PM

this sounds like it would make a great panel at SXSW: Flash vs. AJAX

JesterXL said on September 28, 2005 5:20 PM

Hey Tom, for your external XHTML needs, check out what Peter Hall & others are doing with Ripple.

pixie said on September 28, 2005 5:24 PM

great usability on this commenting tool, love it.

Keith said on September 28, 2005 9:49 PM

Wow, this is some interesting stuff to think about. I personally haven’t used Flash in awhile, but used to do a lot with it, probably very much like Andy’s own experience.

To me it’s always been a good tool for some things. Sounds like it’s maturing into something that can do much more.

Jeroen Coumans said on September 28, 2005 10:03 PM

I was intrigued by the questions raised and the discussion on the openness of Flash and did some more research on it. Since it’s a bit off-topic here I posted on my blog about it: Should Macromedia open Flash

Ben Jackson said on September 29, 2005 4:41 AM

Great thread here. Kudos to Josh Dura for his insights.

I’ve developed with Flash since v5, and have seen precious few code samples out there that make use of good design practices, but there are devs out there who know what MVC is, and when applied correctly Flash presents a fast, dynamic user experience. With all due props to Thomas Fuchs and the other amazing people working on the various DHTML animation libraries, there is no comparison between animation with Javascript and animation in Flash.

> What about screen readers? Indexing? Something other than a lone Flash object on a page?

Indexing is already possible if you follow Google’s advice and output all your content as XHTML for search engines (they have publicly stated this won’t get you banned).

Mike Chambers’ JS proxy already makes having multiple movies communicating with JS and each other a no-brainer, and ExternalInterface will only make it easier.

Flash is still a pain in the ass to develop for (what’s up with Array.reverse() modifying the array while Array.concat() returns a new one?), and the learning curve to developing usable, robust applications is steep, but I think it’s worth a fresh look, especially now that you can develop for the platform with open-source tools.

interfaSys said on September 29, 2005 8:58 AM

Flash/Flex are really great tools to build application for the web. The player can talk to many different backends and that simplifies its integration in many different environnements.
I wouldn’t use it to build an entire website tho, usability problems are too great. Flash needs to be seen as a useful toolbox for media rich and haghly interactive websites.

luxuryluke said on September 29, 2005 2:10 PM

+2 Insightful.

Fascinating.

Carie McAlister said on September 29, 2005 4:48 PM

Thanks to Jeroen for making just the case, here and on his blog, for free software, and about the inherent dangers of using software that ties you to a operating system and (other) proprietary non-free software, that I wanted to hear.

Of course Flash should be open and standardized, for its good and the good of the Web. (The two should be the same.)

As for the slowness of the Standards process and the looming threat that Microsoft’s latest will wipe out Flash or Ajax or both or whatever, and “own the Internet”, surely the situation is as it has been. The software that we choose to do our work with is either free or it isn’t. And whether or not we continue to have and use free software depends, as it always has, on our own persistence and determination.

Adrian L. said on September 30, 2005 1:58 PM

Somewhere, behind my mind’s eye, a perfect application for flash is hiding, and almost ready to reveal itself, but I have yet to find a situation in which Flash is the right technology for most website applications.

Yes, Flash is once again compliant with all applicable modern terminology, but I find flash being used to make things “look cool” instead of making them “work better.”

Anyone who’s been poking around any of the css/xhtml blogs out there has seem me whine and moan about poor design and poor technology choices, and this could be dismissed as just that, but what I am really saying is that there is a time and a place for Flash technology.

I just don’t think it’s been found yet.

A point about accessibility was raised, and its a good one, though I believe it is possible to make Flash accessible. It’s important that we don’ all get trapped in the accessibility mindset though.

Concept websites can be built accessibly, but I think it’s more important to push the edges of the medium in experimental sites without fear of reprisal for making accessibility a secondary or tertiary objective.

More important is nibbling away at the edges of our methodology. If this means losing sight of what we’ve done in the past, and branching off onto hitherto untravelled tracks of thought, so be it…

What was I talking about again?

Ian Clay said on October 3, 2005 3:44 PM

For 7 or 8 years I’ve been building my client’s applications using Macromedia Director. I set up a database, I share data with the application via .asp files or .php files. It works. The clients are happy.

The difficult bit is persuading the client that Director is the platform they should use. Most companies like the idea of having an application embedded in the browser. My argument to this is… why? Do they have Microsoft Word embedded in the browser? My applications have used a liveUpdate facility so one install and anything that changes gets downloaded from the application.

Flash always stood in front of Director’s glory because it was cheaper and easier to embed.

Both Flash and Director have been seen and used as game platforms. Hopefully soon they will get the recognition as standalone application making devices. I just hope those people who harp on about ‘standards’ and conformity keep their hands off :)

Tyler said on November 1, 2005 10:35 PM

Flex is looking more and more sexier. With there new Flex Builder 2 on the horizon. Check out the Macromedia labs for some awesome demos of Flex Builder!