| The problem was that Flash Player needed significant rewrites and Adobe didn't want to pay for them. Or at least, not without finding a way to get more money out of game developers for the privilege. The story starts with Adobe. They proudly announce AS4, along with an "FP Next" intended to run it. Then they also mention new revshare rules mandated on anyone cross-compiling 3D game engines to Flash Player. This is specifically to keep Unity off the Flash platform. This, predictably, causes huge backlash from Flash developers - even those who don't care about cross-compilation. So they kill the revshare... as well as any plans to fix Flash Player's problems. This all happened a year after Steve Jobs posted "Thoughts on Flash" and tried to ban Adobe AIR apps - and all other third-party development tools in the process[0]. We'd learn way later on that preceding this, Apple had begged Adobe to ship them a Flash Player build that would actually work on iPhones, and their attempts were... anemic[1]. [0] This was only stopped because the Obama administration threatened an antitrust lawsuit. [1] While the iOS ports of Flash Player haven't been publicly released, they did ship NPAPI Flash plugins on Android, which were just as bad as Jobs had claimed. Actually they probably were the same codebase given that jailbreakers were able to get them to work on Safari. |
I know that Adobe shared the Flash Player source code with Apple, but heard Apple assigned an intern to try porting it to iPhone. The Adobe developer working with Apple told me the ported code Apple sent back to Adobe didn’t even compile, so we don’t know if they even tested it on a real iPhone. We jokingly called the iPhone port “Project Boomerang” because the code that came back was basically the same that we sent them. :)
The Flash Player’s source code was ugly, but you have to remember that its roots trace back before Macromedia to SmartSketch, a vector drawing application for the PenPoint OS in the early 1990s. The core rendering and scripting code has since been ported and squeezed into new platforms and applications. And then the dot com boom happened. The development team grew to about a hundred developers and no one person understood the entire code base. Code was copy/pasted freely for fear of introducing regressions that would break existing Flash content.
Multiple rewrites and grand new engines that would live alongside the legacy engine were attempted but failed due to backwards compatibility, the second system effect, and product management’s pressure for new features.
To make matters more challenging, Adobe was losing interest in funding Flash development because revenue didn’t scale with Flash Player usage, only with sales of the Flash authoring tool to a small audience of Flash content creators. That’s when rev share schemes for 3D APIs, DRM, and asm.js-like C++ cross compilation (Alchemy and CrossBridge) were hatched.