November 30, 2006

Why Flash 9 for Linux is taking so long

Author: Joe 'Zonker' Brockmeier

Adobe skipped a version of Flash for Linux and released stable versions of the Flash 9 player for Windows and Mac OS X long before the beta of Flash 9 to Linux users. Paul Betlem, senior director of engineering for Adobe, explained why the process is taking so long.

Betlem says that several factors have contributed to the tardiness of Flash on Linux. The primary problem, says Betlem, is the complexity of porting the Flash player to Linux due to differing libraries used for sound, video, and type on different Linux distributions.

"Some distributions have different versions [of libraries], and in a goal to provide compatibility across as many distributions and configurations as possible, we have to sort of reconcile all those differences and present a consistent cross-platform runtime, so that was probably our biggest challenge."

Betlem says that the Linux Standard Base (LSB) has not solved the problems that Adobe faces. For one thing, many of the libraries that Adobe depends on, such as Freetype and the Secure Sockets Library, are not part of the LSB. But he says that LSB is "moving forward, and the group is very receptive to our input.... I think it has great potential to create a more homogeneous environment."

Browser support is also a problem. According to Betlem, the Linux, Mac OS X, and Windows builds of Firefox are different, and Adobe has to factor those differences in when trying to port the Flash plugin to Linux.

Finally, there's testing. "The sheer magnitude of testing all those configurations and options is a big endeavor."

Betlem says that Adobe approaches Flash as a cross-platform technology, so porting the player code wasn't that difficult, except for the optimizations that are platform-specific. He says that the optimizations required some "special work" to get SSE1 and SSE2 optimizations right, and Adobe had "challenges getting GCC to invoke the behavior we needed."

However, the work seems to be paying off. Betlem says that there are some areas where the Flash team is seeing "performance significantly better than Windows," and that they are working to optimize areas where Flash 9 on Linux does not perform on par with Windows.

Many users have wondered if Adobe would support users on 64-bit Linux platforms. It's possible to run the 32-bit player on 64-bit systems, but only when using a 32-bit browser, which is less than optimal for users who run Ubuntu and other distros that ship with a 64-bit Firefox. Betlem says that Adobe is "committed" to creating a 64-bit native port of Flash 9, but "it's very early" to comment on when the 64-bit version might ship.

Since Adobe is hard-pressed to support x86 and AMD64 Linux, we asked Betlem if Adobe has given any thought to supporting efforts like Gnash to produce a free software version of the Flash player and plugin for all platforms that Linux runs on. After all, Adobe doesn't make much money on the Flash player and plugin. Betlem says that "we definitely respect and appreciate open source initiatives" but the company doesn't get involved with projects specific to Flash to avoid a conflict of interest and "to ensure we can expose a consistent, predictable runtime environment." He also notes that, due to hardware optimizations, supporting PowerPC and other Linux hardware platforms is not as simple as recompiling Flash.

The good news is that, going forward, Linux shouldn't be out of sync with other platforms again. Betlem says that Adobe is planning to "simultaneously deliver Windows, Mac, Linux in unison. It's not our intention to have a delta between ship dates" for Flash 10. Adobe doesn't have a formal schedule for Flash 10 at this point, but it's good to know that Adobe is planning to treat Linux as an equal to Windows and Mac for future releases.

The final release of Flash 9 for Linux is expected sometime in the first quarter of 2007. Betlem says Adobe hopes to be "in the earlier side of the quarter."