Flash Player - Forward, Backward, Platform Compatibility
DIGG IT!
23
Comments
Published
Thursday, August 31, 2006
at
2:35 PM
.
For developers who have evolved with Flash Player, we take forward, backward, and platform compatibility for granted. Many people have yet to realize the productivity in seamless compatibility. Lets make this crystal clear for everyone...
Backward Compatibility: "Every SWF I created still works!"
Forward Compatibility: "Every SWF I create will work tomorrow!"
Platform Compatibility: "Every SWF will work identically cross platform"
Flash Player 9 Supports:
FLV, SWF9, SWF8, SWF7, SWF6, SWF5, SWF4, SWF3, SWF2, FutureSplash
Flash Player 8 Supports:
FLV, SWF8, SWF7, SWF6, SWF5, SWF4, SWF3, SWF2, FutureSplash
Flash Player 7 Supports:
FLV, SWF7, SWF6, SWF5, SWF4, SWF3, SWF2, FutureSplash
Flash Player 6 Supports:
FLV, SWF6, SWF5, SWF4, SWF3, SWF2, FutureSplash
Flash Player 5 Supports:
SWF5, SWF4, SWF3, SWF2, FutureSplash
Flash Player 4 Supports:
SWF4, SWF3, SWF2, FutureSplash
Flash Player 3 Supports:
SWF3, SWF2, FutureSplash
Flash Player 2 Supports:
SWF2, FutureSplash
The fact that Flash Player supports all legacy versions of SWF allows developers to invest confidently in the Flash Platform. This fact has some powerful implications on productivity:
1. Application maintenance is never forced on developers. A Player change will not force you to recompile your SWF file.
2. Simpler development cycle. There is one player and it works identically cross platform.
3. Simpler testing cycle - There is one player to test against given backward compatibility.
When you sit down to write your next app ask yourself:
Will the application you are writing today work tomorrow?
Cheers,
Ted :)

I guess I must be feeling evil today, 'cause after reading this the first place I checked was here:
http://www.google.com/search?q=ie7+rewrite+pages
*cough* tigher sandbox security from version to version *cough* recompiles necessary *cough*
;)
Owen, Sandbox/Security changes in FP7 and FP8 required a crossdomain.xml file in FP7's release for certain network operations but I do not recall ever having to recompile a SWF file.
Ted :)
Teds right. The only time people really got into trouble with the security improvements is when they were deploying SWF on the desktop, where it really doesn't belong. (At least not yet!)
well as long as John's digging for little exceptions, I might as well throw in my two nightmare experiences. Don't get me wrong, Ted's point is well-taken and is one I've stood behind myself for the past 5 years.
PLATFORM: Sending POST data from inside Safari (this was in the Safari 1.x days) dropped the last variable entirely. It took me forever to track that one down...
FORWARD COMPATIBILITY: I can't even remember the precise details myself now, but when Flash 7 came along, it handled "undefined" a little differently than F6 when variables were passed in via the embed/object. Granted, you could argue that I should take blame for this one by how I was checking for undefined.
I'll throw a couple in the mix as well :)
No scrollwheel support on OSX natively and therefore no scrollwheel support within the Flash Player on OSX.
I also remember there being some differences between the way the sandbox works with FileReference on OSX to how it works on Windows (can't remember the exact details, but prod me if you want me to look into it).
Obviously these things here are minors compared to other technologies, so the point of the post is well valid.
p.s. Ted can you get in touch with me bud.
What is interesting is that all these little exceptions are at the network, browser, or ui layers around Flash Player.
I would bet that many of these aspects are all Browser related errors in the handling of Flash Player as a child.
When you are within the Flash Player, things just work. It is the boundary issues in dealing with various browser implementations that is problematic.
At least we are not exposed to evolution of the browser DOM and JS. AJAX developers are forced to test/update with every change to the browsers. Yuck!
Feel free to email me at tpatrick@adobe.com anytime!
Ted :)
The same on all platforms indeed. Which is why it's so wonderful that the player's sound sync is perfect on Linux, just like on all the other platforms, so I can enjoy my flash movies the way they were meant to be viewed, like on all the other platforms, and don't experience annoying bugs like audio desync because flash works the same on all platforms, even Linux, where it does not experience audio desync, the same as on all the other platforms. =)
It really is a solid argument, except that 8 & 9 are Windows/Mac exclusives at the moment... Not to mention the lousy bugged out version of 7 that is available for *nix systems...
At least they are working on version 9 for linux.... so hopefully we will get out of the current hole.
I wouldn't go so far as to say there are no incompatilibities between versions. The beta releases of flash 8 had differences in _width and _height calculation compared to version 7 that as far as I know persisted into the final release (but I have no easy way to verify). I rewrote some code to calculate sizes differently to work around those.
Plus, there are the well known gotcha's, like the different mac timing, and the linux sound sync.
Still, I agree with the notion that flash has no rival when it comes to compatibility between versions / platforms.
As for cross platform, given that only a lousy Flash 7 for Linux i386 (32bits) is available, I would consider that as a truth. Flash 8 and 9 are MacOS X or Windows exclusive and the Flash 9 still *planned* on Linux will still no run on 64-bits platform, at least without a huge deal of hackery. So as for compatibility, I think we can still seat here and wait.
And I'm not counting the closeness of the format and technology, the fact that it breaks any concept the that WWW define as hypertext, open and universal standard, accessibility, etc.
Maybe it's only because of my choice of platform, but I can't stand flash and putting flash embeds into my projects feels like prodding myself with a red-hot knife.
The linux flash player seems to crash even when handling the simplest of things. I can't watch a video on youtube without having to close all my other tabs first so I won't loose anything when FF crashes after the video stops. Then I have to deal with the horrid a/v sync, and before I figured out how to get aoss working better I would have to make sure FF was the first program started so it got sound priority.
I had a simple flash embed that would play a sound when told to do so via javascript. 50% of the time it would freeze up and crash.
These are not the kind of things I'm looking for, not to mention the general bloat a flash object adds.
While flash seems to be the best choice for audio/video, it should never be used for anything besides that (SIFR comes to mind...).
Where can I ask questions about the flex store application?
Adobe is committed to deliver Flash Player 9 for Linux. There is a gap cross-platform story and we are filling it.
See http://www.flex.org/ for any Flex related issues. The Free Flex SDK allows AS3 and MXML compilation on Linux via Java.
Cheers,
Ted
Never jam today, but jam tomorrow...
OK...judging by the Penguin.SWF blog, progress is being made, but unless Adobe commits to simultaneous release of all future versions for all OSs supported, Linux is still a second-class citizen and web developers will continue to blithely ignore it, having drunk the Kool-Aid in posts such as this.
I know Adobe is committed to Flash Player 9, I've heard it many times and follo Penguin.SWF.
The fact still remains that we have been left with an out of date player for a while, but much more importantly, a player of inredibly poor quality, which makes me wonder if Adobe really has ever cared about us Linux peeps
Cross platform is the biggest bunch of bollox ever! Try viewing Digg tools on linux. Try ordering pizz in a flash only site on linux. And the version we do have is shite. Maybe flash is good but it certainly is not multiplatform!
>Platform Compatibility: "Every SWF will work identically cross platform"
Well, all looks fine except that current versions of flash player just does not works under 64 bit Linux systems at all, therefore slowing overall progress motion down :(.Optionally I can use very old and outdated 32-bit version but it looks like very poor option, if option at all.
Does this means "multiplatform"?It will be fine if "multiplatform" will be not just a formal declaration but something real.Something that I can use.For example, I can download Firefox for ANY platform I like.At very most, I will have to compile it on my own if nobody did it for my platform.With Flash I have to suck without any chances.So, why it's called multiplatform, then?
One thing I think people are forgetting is that Linux has so many choices (for many things) that figuring out what the "standard" is might be more difficult that simply using the Win32 API.
On another note about cross-platform, as a ColdFusion developer who does a lot of work with FlashForms the font rendering in Linux is annoying and shifts things out of alignment because the Linux fonts are not identical to their MS equivalent due to Patenting.
Having choices is not an issue, as all linux apps work correctly even with "having so many choices".
The problem is the closed-source concept is hard to implement because you then loose the ability to compile for your own choice as a linux environment promotes. That is one less freedom you have when you go closed source: adapting to your own needs.
I am not saying Adobe should just go out and opensource Flash, but they could opensource the browser-plugin and distribute a binary library (libflash) that would link to the player at runtime, that would contain all their secret routines, while users could work around it and adapt the player to their systems (selecting the frameworks and whatnot they prefer).
It would be simpler for Adobe to develop, and better to linux users at large, IMO.
Forward Compatibility: "Every SWF I create will work tomorrow!"
Riiiiiight. Anyone was around when YouTube decided to move to Flash 8 for a month or so? Anyone tried to access it from a Linux platform where, as you might already know, only Flash 7 is available? Anyone noticed how greatly did it fail, so much indeed that YouTube moved back to Flash 7?