Total speculation alert. I don’t want anyone to read further into this than what I say, since I have no insider knowledge. But I was just re-reading a post of my own from December, Macromedia No More, and one paragraph particularly jumped out at me this time ‘round.

Which brings us back to the web. AJAX is hot, but Javascript can’t do everything. When faced with its limitations, Flash is currently the most practical alternative. From a business standpoint, it’s a no-brainer to develop and promote this emerging/existing platform (in whatever form it may take). So I’d expect to see a lot more effort toward making Flash development easier.

I got to thinking that if I were to go back and re-write it, I’d probably clarify and say that “…I’d expect to see a lot more effort toward making Flash application development easier.” And then I got to thinking even more.

What do we know about Ajax? It relies on text-based Javascript, viewable (and stealable) by anyone. View Source led to the web’s popularity, and I have no doubt that View Source and open libraries are inspiring a lot of scripting developments lately. Javascript is far easier on the developer than Flash currently, which (accessibility and functionality concerns aside) goes a long way to explaining its resurgent popularity. The web now needs this sort of functionality; unobtrusive Javascript is likely the most responsible and easiest way to provide it.

Now, there are methods of creating Flash content other than through Macromedia’s Adobe’s Flash IDE (Integrated Development Environment). But as far as I’m aware, you’re still chained to the official software if you want to do much more than simple timeline-based animation.

What could possibly give Flash an edge over open source technology? An injection of the open source philosophy. If the IDE were opened, and Flash movies were View Source-able, wouldn’t life be a lot easier for the average Flash application developer?

Update: It has been pointed out numerous times in the comments that there are ways of viewing source on a Flash binary. In fact, Adobe themselves are trying to facilitate this even further — check out this demo and right click for the option. There you go.

I highly doubt Adobe will do it quite like that, if at all. Flash is a big money-maker, always has been. And imagine the out-cry of thousands of content creators who are relying on Flash’s inherent closed nature to protect their creation. It’s not a likely move, but if the goal is a platform with which to compete against open source technologies and the upcoming XAML/Avalon combo from Microsoft’s camp (and that’s what it looks like from where I’m sitting), it might be the only way to capture developer mind share.

Of course, it sounds like the new Flash/PDF client is likely to be a new thing, existing “in addition to” rather than “instead of” stand-alone Flash and PDF. Were that different enough to avoid the existing content problem, and were it an open source technology, and were Adobe to somehow figure out a way to quickly get it out to the existing huge install base of the two current technologies, well… I think they might just have something. Big ifs, but this one should be interesting to watch.

I think the power of Ajax is that it’s Javascript for the interface but nearly all of the backend data stuff is on the server. So the most important code is the stuff that’s pumping out the information on request, rather than the (fairly) generic and trivial JS which slots it into place.

Michael Chambers developed a way for Flash developers to do this on their own with Adding a View Source Menu item to Macromedia Flash Content: http://weblogs.macromedia.com/mesh/archives/2005/04/adding_a_view_s.cfm. It allows viewers to download the source to the Flash movie as a zip file. This is something the developer has to expressly set up to be used, but hey, it’s a start.

Ming (http://ming.sourceforge.net) for PHP (and others) lets you generate Flash server-side (or run the script once and save the resultant .SWF, or whatever). It takes a little getting used to, and you still need to know ActionScript to do interactivity, but it’s an alternative to the Flash IDE which may appeal to many, especially those with a more programming bent.

Don’t know that much about the subject but there are ways to get to the flash source code. You need some software like Flash Decompiler and off you go. You can see sprites, images and all the code. I know it is more work than view source but is works.

And another thing I heard a friend of mine talk about was Macromedia Flex (http://www.macromedia.com/software/flex/). It’s not my cup of tea, and I don’t know how long it still will exist, but it’s a package for developing Rich Internet Applications (!?). If that one should support a view source option …

quis: The same is just as true for Flash, which can easily off load all data manipulation to the server if need be. This sort of thing has been Flash’s strength for longer than its been Ajax’s strength.

Dave: I totally agree that the “view source”-ness of HTML and javascript has helped made it popular among developers, but even now, it’s possible to give this same functionality to Flash movies. Allowing the viewing of your source is as simple as adding a right-click contextual menu icon for it. Unfortunately, developers (including me) usually do not want this functionality exposed, and I also imagine that if “view source”-ness was turned off by default in HTML and javascript, most developers would choose not to turn it on.

The tragedy of Flash is one you could write an entire book on. And the story’s not even done yet. It’s very Tivo-like in that manner. Great company… great product… great people… great community… great intentions. Spoiled, however, by two different forces which are completely unrelated:

1. Obnoxious and highly-intrusive advertising piggybacking on the power of the Flash platform.

2. The tendency of the development community, in general, to migrate to free, non-binary formats.

It’s such a shame that things have thus far worked out like this because Flash, in literally hundreds of ways, is a better platform with which to develop web content (at least certain kinds of it) than HTML/JS/ETC, and now it’s probably going to be relegated to very small tasks within any given project.

On the bright side, even when used for widgets like inline video or polls, Flash is still a useful piece of the web experience landscape.

Well, actually what the W3C is doing with the Compund Document and rich web clients (http://www.w3.org/2006/rwc/) is what you could call a standards compliant, open source, accesible version of flash for web app development.
DOM 3 + SVG + [insert other XML flavors here] + capable browsers = accesible Rich Internet Applications. Only the browser gets to act as the flash player.

There is a problem with that, though. The flash player was, from the ground up, built for small movie size and playback speed. Current browsers just cannot keep pace when they have to load huge SVG data files, as compared to the highly compressed Flash movies, interpret this highly complicated format, as opposed to Flash, which is very simple and offloads most of the hard work to the creator, and parse textual JavaScript, instead of the ActionScript bytecode.
And that’s not likely to change anytime soon.

I think that, and this is just my personal opinion, the main reason for AJAX and JavaScript’s extreme popularity is that it is so functional but no different from it’s surroundings. It’s simply manipulation of content.

Flash on the other hand is on a totally different level from AJAX and JS, It’s an entire application stuck on a website, so to speak.

And when exactly was the last time you saw somebody peering into an application to see how they did this nifty little trick they’d never seen before incase they wanted to include it in a project of their own?

“I think that, and this is just my personal opinion, the main reason for AJAX and JavaScript’s extreme popularity is that it is so functional but no different from it’s surroundings. It’s simply manipulation of content.

Flash on the other hand is on a totally different level from AJAX and JS, It’s an entire application stuck on a website, so to speak.”

Spot on, great comment. I’ve never put words to it before, but that’s always been my feeling of the relationship between Flash and the rest of a page.

(On the other hand, Javascript does help you communicate back and forth with Flash these days, so it’s not entirely true anymore.)

As mentioned in a previous comment, being able to view source would make the flash format much more cumbersome. It’s in a binary and gzipped (as of recent Flash iterations) format for a reason: to make it small. The Flash format itself is well documented and there’s certainly nothing stopping people from developing an IDE to take advantage of that.

From a business sense, I can’t see why they would make the Flash IDE open source? Flash is probably the most popular browser plugin next to Acrobat Reader.

“From a business sense, I can’t see why they would make the Flash IDE open source? “

Well that’s exactly my point. Financially, it doesn’t make sense. Strategically, how else are they going to compete with a bunch of open tools on one hand, and Microsoft on the other? Short term gain might win out, but long term sustainability is what I’m thinking could possibly drive this.

The Measure Map alpha currently has one of its Flash components available through the Flash plugin’s View Source function. It takes you to a page detailing how the component works, download links and a demo of it.

The problem I see is that it requires the developers to make the decision to have it available. Unlike AJAX/JS things where you can find them through the HTML source.

I wonder why Adobe/Macromedia hasn’t done a trick that Microsoft often pulls: make an “Express” version.

There are only two things wrong with Flash for me: 1. its quite expensive (illegal methods not counted) and 2. its a bit too complicated to immediatly run away with.

If the would make a stripped down FlashExpress for free, I would download and expiriment with it and use it for small things. I’m a PHP/JS coder so I do need Flash of similar for my User Interfaces. With less advanced features i would easyer create something nice, and keep using it. Now I try the trial for a while once every year or so. By the time I got everything figured out again, the trial is allready expired….

“Strategically, how else are they going to compete with a bunch of open tools on one hand, and Microsoft on the other?”

Good point. If people have a choice between Flash and AJAX, and no prior experience with either, chances are their going to go with the one that they won’t have to invest in. It’s the same problem as Adobe now has with ColdFusion (as Macromedia and Allaire had before). Their charging god knows how much for ColdFusion server, when PHP, ASP etc. are all free, there’s really no logical reason why someone would go with CF if there’s an equally good but free alternative.

Sure, there are things you can’t do with AJAX that you can with flash, but with AJAX being so accessible (to a developer, ie. “view source” etc.) if your new to it, you usually learn by example, and take existing code and develop on that, rather than start from scratch. Personally I’ve found that that’s not so easy with Flash.

You have to look beyond ColdFusion’s retail price tag when comparing it against PHP, ASP or other programming languages. Just because something is free doesn’t mean it’s better - ColdFusion is a quick, simple technique to learn and has a lot of great attributes/features unavailable in other languages. This includes Flash integration and dynamic components. Now don’t get me wrong, I’m a CFML guy now into RoR, but that doesn’t mean I still don’t believe in the appeal of ColdFusion.

It sounds like you want SVG + SMIL + Javascript. Using those technologies has an advantage over Flash in that it should* be easier for assistive technologies to parse, which would increase the audience.

I really like the Flash IDE for developing Flash content, but the binary format drives me nuts. An ideal compromise for me would be for the Flash IDE to support the save/export of what’s in the timeline to SVG and SMIL.

Jack Sleight: I’m sorry, but I want to point out a tecnicality/word-choice issue in your last post. I have a problem with people who like buzz words, and with “AJAX”. AJAX is the TECHNIQUE for data transferrance, and has no flash-like qualities.

However, as Matt was hinting (okay more like pointing) at, a combination of Javascript+A vector image language (SVG, etc.) would be more appropriate for the data-based structure of the web. This os probably what you were thinking (or something like this :-p ) but I just wanted to point out this technicality to future readers. Or at least this viewpoint.

Hi Dave, sorry I missed your post yesterday… from what you wrote I can’t tell whether you were aware, before Geoff’s mention, of the work done by the good folk at osflash.org? If not, I’d really recommend exploring what people are working on here.

It *is* a new problem to figure out how to balance the short-term results required by investors and the longer-term benefits of a wider ecology – Macromedia has a long history of dealing with volunteer group development, and opensource.adobe.com opened before I even heard of the acquisition. But I think we’re all still exploring here; I don’t think the sustainable path is yet tested and proven.

One thing I *do* know, though, is that most of the technical people I talk with during the workday, inside and outside the shop, are aligned on using technology to help the world be a better place. There’s a core commonality in goals here.

“What could possibly give Flash an edge over open source technology? I’m not so sure that’s the right question… I’d be looking at “How can Adobe help improve the world, while still satisfying its investors, and do so in concert with independent groups of independent individuals who can see personal gain in using Flash Platform technology?” Not as easy a phrase to dance to, true, but that’s the question I ask in this area, myself.

jd – nuance aside, I’m not so sure those are ultimately different questions. Whatever the motivation, it’s looking to me that the major next-gen interaction technologies are all coming at a common problem from different angles, but may end up overlapping substantially in time. I doubt any one eventually “wins” outright, but there are certainly benefits to holding a balance of power.

Geof Harries: Oh I know ColdFusion has its appeal, I also started all my development in CF, and was developing sites with it for a few years. It certainly has appeal to beginners and advanced users due to the ease of use and the fact that its incredibly feature rich without any need for extensions, add-ons (custom tags, cfx tags) etc. I however switched to PHP because I got fed up with the cost of the software and the premium that CF hosting tends to come at.

Zach Blume: Yeah, sorry, your right, bad word choice, what I really meant was what was capable with the technique that people call “AJAX”, you know, JS, DOM, CSS.

For a new user, cost isn’t everything. For some, It’s maddening trying to spend time working around CSS and DOM browser bugs and on top of that trying to debug your JS code. That’s quite a lot to stomach. Is it working or is it a browser bug? At least in Flash you have some form of a controlled programming environment that you can learn the basics of OOP.

I know it’s been mentioned here, but check out OpenLaszlo - http://openlaszlo.org. It’s based on an XML + Javascript language called LZX and is similar in many ways to Adobe’s Flex - without the ActionScript 2 (or 3) learning curve.

“AJAX is hot, but Javascript can’t do everything. When faced with its limitations, Flash is currently the most practical alternative.”

Is JavaScript the limitation? I imagine a big driving force behind AJAX is that people already understand the core document object model it is based on because they work with much of it every day: HTML and CSS.

So basic scripting of a simple and already understood document object model is very appealing for a lot of people. I’ve been away from DHTML for some time but from afar it looks like a short term challenge for AJAX will be the fragmentation of many different libraries with different APIs.

On the other hand Flash has a much richer API, or if you like, document object model. That is a blessing and a curse. Someone looking at Flash for the first time has a lot of new learning to do but also a lot of features to discover. With the upcoming release of Flex 2 and later Flash 9 the API or document object model will dramatically change so there will be more learning in order to exploit more features.

I think at some basic level this is the fundamental problem. To create full featured and complex applications usually involves working with a lot of APIs. Languages such as Java, JavaScript, or ActionScript are not the big problem.

It will be interesting to see how the AJAX libraries evolve and how API churn and complexity is managed.

Macrodobie could solve the whole dilemma by incorporating a full browser inside the Flash player, thus adding AJAX developers to the Flash fold by preserving their learning investment and giving that larger community incentive to access Flash’s broader capabilities. Then we would have a serious platform because standards compliant code would also run consistently in Flash in any browser and stand alone.

I think the Flex 2 has lots of promise (alpha), because of its cost (1000/developer, no server cost), XML, Actionscript 3 and lots of built-in widgets. It has a non-timeline IDE and one should check it out at http://labs.adobe.com

Gnash, the new Free Software Foundation version of Flash, bears watching. It seems to have closed many of the v4-vs-v7 gaps and even has a Firefox plugin. It doesn’t have an Explorer plug-in but… who cares?

Holds out the promise that Flash could become an open technology. Maybe with an editing environment built on Eclipse? Hmmm? Eh? Java VM instead of Javascript would be cute too, especially if the Java2d stuff bound transparently into the Flash geometery model. Cute, cute, cute.

I am not an expert at Flash, though do know some personally. I would recommend people talk to those involved with Flash to better understand where it is a better choice than AJAX. One thing I have always said can AJAX draw a 3-D “looking object” and spin it? Yeah not really useful but shows power. Also can you create video conferencing applications. There are many things that Flash can do that AJAX can’t but it really depends are your needs.

Oh there are tools out there to develop Flash Applications without the IDE just Google on “Eclipse MTASC Flash” and if you want to see what people are doing check Darron Schall’s blog and Jesse Warden’s (lazy I know, no links). Darron built a VNC client in Flash just because.

“Spot on, great comment. I’ve never put words to it before, but that’s always been my feeling of the relationship between Flash and the rest of a page.”

The cursor change always disoriented me.

FWIW, I doubt Flash will have the impetus to overthrow AJAX because while the availability, accessibility and future of Flash lay in the hands of a corporation, AJAX is a technique with its roots in community-based standards compliance. Sure, FF and IE lock horns on DOM handling, but that’s nothing new… we’ve been around that block a few times with CSS and HTML.

Essentially, AJAX is a new approach to manipulating a browser and Flash is an application living inside a browser. AJAX, like HTML, XML and CSS, lives and dies by a consortium, but Flash isn’t required to live by any other standards than its own.

It’s not just a decision between Flash and CSS/JavaScript/HTML (which I will just refer to as HTML). Let’s face it, Flash is really good at doing some things that you just can’t do (easily) with HTML, like Interactive graphics and animations, and really complex interfaces. However, there’s no good reason to build a whole web application using Flash.

There are a number of reasons building a whole app with Flash isn’t great, including the IDE, openness, etc. However, I think the bloated size of swf files may be the worst. Write a simple form in Flash and an identical one in HTML, and the Flash one will always be much bigger. This is because the swf needs to describe how the form fields look, whereas the browser already knows what HTML forms look like.

BUT, don’t throw the Flash movie out with the bath water! There’s nothing wrong with using Flash movies within web apps to enhance usability and accomplish some things HTML sucks at.

In one interface I built, I used a simple swf for a tree navigation, and another one for a date selection form field. Sure, I could’ve done the tree with HTML. But the Flash tree was just a little bit smoother. As for the date selection, I wanted something more powerful than select boxes (ie. what was the last Tuesday in September?). This probably could’ve been done with just HTML, but Flash was perfect for the job.

In both cases, it just took a little JavaScript and HTML to wire everything together (The tree drew itself from an XML document on the server. The date picker had a corresponding hidden form field on the page, and JavaScript was used to talk back and forth from the web page to the swfs).

And about the new Flash/PDF client, I wonder if it will somehow be related to FlashPaper http://www.macromedia.com/software/flashpaper/ .. actually, I alwasys suspected FlashPaper may have been one of the reasons behind the merge.

I might be a little late … just wanted to react to that : “But as far as I’m aware, you’re still chained to the official software if you want to do much more than simple timeline-based animation.”
well, i don’t think there is anything you could do with the IDE you can’t do with swfmill, mtasc and animation package which are the core tools/libraries for open source flash developpement. i only use the flash IDE to get embbeded fonts neat … and i think this is because i never took the time to search for a proper way to do it with another external tool.
flash IDE is not a proper tool for developpers … it hasn’t been designed for them. Developping flash application with eclipse is a lot more handy !!!

I would be ecstatic to find a decent XHTML/CSS editor that supports some semblance of AJAX development. I am a developer with a goal of producing standards-based XHTML/CSS, but my experience has been that the big webpage editors don’t support that goal very well. If I could have that, along with a little AJAX support, I’d be as happy as a lark. My fear, though, is that DreamWeaver will never support AJAX well because it is effectively completing techology with Flash.

Plain and simple - the reason people are gravitating towards AJAX-type development is because it’s not a platform at all. It’s just a different way to use technology that’s been around for years. That’s the attraction - there’s no software to develop in or ‘proper’ method to use.

Now if you need animation, then of course you need something like flash but if animation isn’t not 100% necessary for your application then why on earth use it for an application?! Who decided that ‘rich internet application’ meant that the application had ‘cool, animating’ menus and stuff like that?! IMO, a ‘rich internet application’ is one that behaves similar to desktop software (minimal page reloads, on-the-fly data lookup, etc.) - you don’t need Flash to accomplish this.

All one needs to do is ask end users if they like stuff animating all over the place for menus, forms and the like and you’ll hear that most end users don’t like it. Designers and developers are getting a kick out of it more so than the people who actually use the applications they build…

Windows Users!
If you have MX 2004/Professional:
Open Flash, click “Help” on toolbar, click “About Flash” (Professional), then look where it says 2004™. Click right in the middle of the “™” part. It’s a 1×1 pixel button, so you may have to click a few times.