So I am absolutely someone who likes Flash, even though it has some shortcomings; compared to what other platforms offer me, Flash simply offers the most for a designer/media specialist. And I like to defend Flash on a lot of occasions, and even now that people take a stand for or against Flash, I am thinking; I am pro-flash, but definitely know it’s limitations.
Somehow I can picture the idea of taking a side pro or con an OS. It is a platform that runs different applications, media, and you have to build upon that. Choosing your OS or computer defines how you are going to use it. But Flash? It is a development platform. It is not a ‘must have’. If I build a site in Flash, it does not mean other sites have to in Flash too. And if you really, really hate flash, then you simply will not visit my flash sites. It does not influence your life in any way. So when Apple decides to turn itself against Flash, I don’t like it that Apple makes that decision for its users. Because the platform suddenly decides what you should or should not use, even while the OSX platform is perfectly capable of running the Flash plug-in.
And now I see that Mozilla is building technologies that prevent Flash crashes. Which is good on one side, bad on the other. I think Mozilla does the right thing, because a crash of Flash can easily lock up FireFox (or any other browser) making it vulnerable to hacks. The bad is that these crashes are not by design of Flash. I think the problem should be tackled at a complete other level: the developers.
What I read mostly from people against Flash is it’s instability and being a power-hog. That opinion is somewhat correct, but not completely. Flash itself is not an unstable platform, nor a power hog. You could run Flash perfectly well doing very little, and while it is idle it will not really consume considerably more energy that a normal web site. But it is the way how the developers and designers make use of the technology.
I started to design and work on internet pages in the late summer of 1993. Pushing sites through Mosaic on a terribly slow 14.400k modem. That was still fast, I ran earlier a 2400k modem visiting BBS’s. But still, 14k4 had a download speed of a couple of kilobytes a second, if you were lucky. And you paid per minute of being online. So watching every web page had a price tag. So if loading of a page took more then 30 seconds, it was far too long. Within 8 seconds the site should show up completely, leaving 22 seconds to load up the images. And that was quite a task. And still you wanted to make your sites more attractive too. So there was this whole ordeal of balancing design and functionality through a very limited platform. You had to make choices. And most of those choices meant giving up some of your most favorite elements because of functionality.
A lot of designers and developers who are fairly new to the game, let’s say from the broadband era, are not used to these limitations. They just build what they need to build, test it locally and put it online. Even when streaming a movie, a designer hardly thinks about the quality of the stream because of connection speeds of the users, and available bandwidth anymore. Still, this is incredibly important. With flash, things can look amazing with little details, glimmers and shimmers over buttons, animations etc. It is wonderful on your desktop, but all those tiny animations cost energy. And people put loads of them in the design alone, not even worrying about the coding. Also, what a lot of Flash designers do not know is that when they drag and drop elements in a Flash movie, Flash is programming the code itself. Which is always creating more code than when you would learn to write ActionScript yourself and make sure it works solidly.
I use Flash because of its versatility. I can expand my sites if needed, and I can run everything without reloading or working with the limitations of a browser. I can, if need be, use animations and sound and video, but usually I keep my designs solid. No animations. I do use windows that can be dragged around, which also costs energy, so I could turn that off if I needed my sites to be available for mobile devices. But, what I am trying to say here is that these arguments from con-Flashers, are more con-Flash Designers and developers.
The introduction of ActionScript 3 already makes it harder for Flash developers to make rookie mistakes in code, resulting into a dreaded endless loop, causing the platform to crash. This is usually where ‘the instability’ kicks in. If you run an infinite loop, no matter on what platform, there is trouble up ahead. Adobe now tries to deliver an error message, but especially on slower computers, that might be a problem from time to time.
I think this problem has mostly to do with the inexperience of a lot of Flash designers and developers. It is an easy platform to build your first websites in, and a lot of those people never had proper training or programming skills, and often they don’t know about this well-known facts. That is the good part of more hard-core languages that it usually requires a more advanced person to work in it, so they are already one step ahead.
ActionScript 3 is a lot more solid and hardcore than its previous versions, and let’s hope it will teach people to first learn about a platform again with all its do’s and dont’s before developing. Maybe in that way Apple does it right to screen the apps in the app-store first. It is censorship, but at least someone is taking control of the quality of code.
So, I do want to defend Flash here, and immediately apologize for all the really amateuristic mistakes a lot of designers and developers are making. It should not be that companies like FireFox need to spend resources on fixing other peoples’ problems. And on the other hand I would still request Apple to let flash on the iPhone/iPad/iPod, because believe me, I can create a lot more energy consuming sites with AJAX or even DHTML (especially when HTML 5 hits) then a well developed Flash site.