With the alleged imminent release of the theorized Apple Tablet, there’s been a lot of discussion about whether or not it will run Flash. As you already know, the iPhone does not have a Flash plugin, nor standalone Flash player. The Apple Tablet, which may or may not exist, will most likely run on a derivative of the iPhone OS. Nothing has changed in the performance of the Flash Player nor on Apple’s stance with regards to it. So, it’s reasonable to assume that it will probably not run Flash.
There’s a lot of negative feeling out there for the Flash player. The main reason for the hate is because it has the ability to take down a browser, slow down web pages, drain batteries, and make an otherwise smooth web experience slow and rocky. This is occurring now on dual processor 2ghz laptops and desktops. For handheld devices trying to render full web pages, often with multiple Flash embeds, it’s too much to ask.
Adobe has recently demoed the Flash player running on mobile devices, and in the demo they showed a Flash game that utilized multitouch. The game itself looked like it was tailored for the demo.. perhaps running at about 10fps. My own games are designed to run at about 30fps on a standard desktop or laptop. On my netbook they typically run at about 15fps. I don’t think it’s reasonable to expect most Flash games to run at a playable speed on a mobile device unless it was designed for mobile.
What I’m saying is this – it’s simply an unreasonable expectation, given today’s technology, to expect for Flash content designed for a desktop experience to run well on a mobile device. Someday this will not be the case, but that’s where we are today.
Now, could Adobe take steps to make the Flash player run faster and take less resources? I think they are working towards it with the Open Screen Project. But, without the ability to target something like OpenGL or DirectX in order to take advantage of hardware acceleration, there’s always going to be a wall we can’t get past.
There are a LOT of talented people making incredible content for the web in Flash. The mere fact that there is a demand for the Flash player on iPhone is a testament to this. Part of the reason for this is that Macromedia made it a lot easier for non-programmer creative types to get into experimenting in interactive content. I’m one of those people.
Of course, with this ease of use came a lot of abuse of the technology. The web is plagued now with Flash ads that consume way more resources than they should be allowed. Flash ads that use realtime pixel blending effects, complex vector art and video are plastered all over pages, slowing down the page and the content we care about. There are even video ads that play, with sound, automatically on page load. Some ads even pop out of the page and create a gigantic Flash overlay when you accidentally mouse over them. It’s out of control.
Often, this occurs on web sites (like my own) that use a third party ad network like Google Adsense, so they have little to no control over the presentation of these ads.
There’s also Flex, which may be great for larger RIAs, but using it in widgets and other parts of a web page navigation just slow down the page load and often lock up the browser. Does anyone want to sit and wait while two or three Flex embeds load in order to be able to scroll the page?
Adobe needs to work on ways to allow for the throttling of resources for specific Flash embeds through embed tag parameters, much like allowNetworking and allowScriptAccess limit how Flash embeds interact with the player. They could also, conceivably, work on a way to limit frame rate and resource consumption of an embed based on what device it is playing on. They could also add the ability to pause Flash embeds that are below the fold or otherwise not visible.
The “FLASH IS DEAD” meme, while premature, does make a point. Flash IS dead in a lot of ways:
It’s no longer necessary to use Flash to make fantastic web interfaces. AJAX allows for updating parts of a page. Great JS libraries allow for modal content, intricate UI components, and smooth transitions that enhance UX, all using web standards. The only thing Flash has over this technology is that with Flash you don’t need to test in every browser known to man. As browsers get better, and everyone switches to WebKit (please), then this will also become less of an issue.
Flash ads give Flash a bad name. They distract us, annoy us, slow down our browsing, and sometimes even crash or freeze our browser. Usually there are many of them on a single page. They are not throttled, and each one wants, and can get, 100% CPU.
Flash is proprietary, and the web is not. The DaringFireball post said it best. The web is moving farther and farther away from proprietary technologies. A lot of developers are questioning whether it’s worth it to invest time and energy into a learning skills based on one.
HTML5 is coming. Once HTML5′s VIDEO embed improves, and can take advantage of native OS video support, there’s no need to use Flash for video.
Hopefully, there’s a possibility for Flash to overcome its current problems. After all, it has pushed the envelope of web experience for the last decade. I love making things for the Flash Player, and without it I don’t think I’d be where I am today. So, in closing, thank you Flash. I hope we can stay together for another decade.