I see that there is still a lively debate concerning our choice of user interface (UI) toolkit for Flash Player 9. To review, we selected GTK, mostly because the Player 7 codebase we started with already implemented a bunch of stuff with GTK.
Everyone has their own favorite toolkit. I just wanted to write this post to advise people not to get too hung up on this UI issue because Flash keeps its interaction with system UI toolkits to an absolute minimum. In fact, I am authorized to post a screenshot showcasing one of the major uses the Player has for a UI toolkit (click for full context, including Firefox browser window which depicts a small SWF from our vast internal testing suite that isolates Flash’s file upload muscle):
EXCLUSIVE!!! First screenshot of Linux Flash Player 9!!!
There is a file upload dialog, a file download dialog, and a few advisory dialogs. That’s basically it. Otherwise, Flash is famous (infamous in some circles) for being the engine upon which UIs are built.
Here is a hypothetical: what if the Flash Player were to detect during runtime whether it should use GTK or KDE/QT facilities? The biggest issue here would be reliably and automatically detecting which kit to use. Is there one standard method to query what desktop environment is running and which the user would prefer? Based on the Global Domination thread, I tend to doubt it.
Our current schedule for releasing the final version of Flash Player 9 for Linux is early 2007. Many readers have understandably requested a beta version before that time.
Yes, we do plan to release a beta version in advance of the final version. However, it will be a beta in the classical software engineering sense– i.e., a version that we believe to be largely bug-free and submitted to the users in the hopes that the last of the bugs will be found and reported.
Why are we stubbornly refusing to release, say, an alpha version now? Primarily because there are known bugs in the Linux Flash Player, and because we know what the bugs are, and we are on track to fix these known bugs. If we were to release an alpha now, we would likely be inundated with reports about bugs we already know about. We think that processing such redundant reports would not necessarily be the most industrious use of our time.
So, the beta will come. Watch this space.
This enthusiastic guy in a tie recently named me the most important person at Adobe. His people called my people and set up an interview regarding Linux Flash Player development. The answers appear here in his ZDNet blog. I’m happy to report that, despite being filtered through a few layers of management and PR, enough of my original prose remains intact that I do not need to attribute the interview to Alan Smithee.
I was continually poking at a major Flash site this morning to make sure yesterday’s bugs were flushed out. Then I tested some more YouTube videos. Flash was performing well, and quickly. I realized that I had not seen a crash all day. I then lost interest in YouTube after it occurred to me that the handful of videos I have been trying to watch in their entirety for awhile now all play perfectly from start to finish. I cruised over to MySpace and Flash stuff worked well over there too.
Even an impromptu test of some Flex 2 applications — handy UI widgets built on top of Flash, a.k.a. rich internet applications — works fine.
What I’m saying here is that we are having a lot of success at the high level– general functionality with major, popular, Flash-based sites. What we are turning our attention to now is to make sure all of the fine details and specific features are 100% correct. We have a gargantuan number of internal tests to validate that every little part of the Flash Player works correctly. When one of these tests fails (as a number of them currently do), it is considerably simpler to fix that test than to wait for the problem to manifest in a much larger SWF in the wild.
We are still committed to ALSA as the first priority sound API for Linux Flash Player 9. My comrade in Flash, Tinic, has a technical post about some of the problems we have encountered with ALSA and specifically how it interacts with OS facilities such as pthreads and signals. We think we are over the issues now.
For those who wish to promote certain other sound interfaces, please refer back to this post.
Things are going swimmingly right now. As in, I can play multiple Flash videos in multiple Firefox browser tabs with nary a crash nor a thread hang. In fact, I’m feeling so confident about the stability that I’m actually composing this entry while a YouTube music video plays in another tab. Nervously, but still.
I am thinking about the next level– creating a single binary that can work reliably across multiple Linux distributions. I know this may sound simple, but there are problems that can crop up, which we have been dealing with one by one. This afternoon, I created a build and tried it across several Linux installations we have handy around the office. Here is the success report:
- Gentoo- naturally, since that’s the build machine
- Red Hat Enterprise Linux 4
- SuSE Linux 10.1
I won’t bother you with the details of which distros did not work in this impromptu test for fear of starting rumors that we don’t plan to support those distros. The task now is to make those distros work just as well.
Quick update: I should probably state that I am also not making any statement here about which distributions Flash Player 9 for Linux will officially support.
Hey, how are you? I’m doing okay, I guess. Notwithstanding the fact that I have a new job related to my Linux Flash Player development duties– watching YouTube videos all day.
AAAAAAAAAAHHHHH!! Make it stop!!
Actually, it’s not so bad once you find one or two videos that you can stand to watch again and again and again and again and again, and that crash fairly reliably under the experimental Linux Flash Player. The process has been rather beneficial and has helped us squash several rather fundamental bugs related to the overall stability of the Linux version.
After we are satisfied that YouTube videos are solid, it will be time to move onto MySpace, which I know only by reputation thus far.