Coder cooks up Java-built Flash Player
OpenGL gurus sought
A version of Flash is being built using Java, two years after Adobe Systems opened the player's closed formats to external inspection.
Programmer Joa Ebert has demonstrated a Java build of Flash executing SWF. The player is apparently called JITB, and it was recently unveiled at an event in San Francisco.
While there's still plenty left to do, Ebert hoped others might become involved in the project if he shared his work in its early stages.
JITB is currently able to translate a subset of Adobe's ActionScript scripting language into Java bytecode he said would run at nearly the same speed as native Java. He blogged:
"I am also shooting for Java interoperability at some level so that you can call Java classes from within ActionScript. Hopefully you will be able to use JITB on your desktop machine, on a server or on an Android phone. Basically everywhere Java runs."
Adobe in 2008 lifted restrictions on SWF for use in multi-media and vector graphics and FLV/F4V, for video on Flash. The company also published Flash Player's device porting layer APIs, the Flash Cast protocol and AMF protocol for the exchange data between a Flash application and database. In addition, Adobe pledged to eliminate all licensing fees for the next major releases of Flash Player and Adobe Integrated Runtime, which are due later this year.
Adobe didn't exactly open-source the technologies - it just allowed outsiders to read them, and to implement them without changes as non-Adobe versions of Flash Player. The company did so as it formed the Open Screen Alliance to encourage device makers and programmers to put Flash and its Flash-based Adobe Internet Runtime (AIR) on more non-PC devices.
Shout out to Reg regular Tim Anderson for flagging this up. ®
Java + Flash
Will it reach a critical bloat mass and suck in everything else you've got installed on the computer?
float vs Float
Float is a class, float is a primitive type. pixels[pixels.length+1] will throw an ArrayindexOutOfBoundsException, thus breaking out of the loop.
The Java language does bound checking on all array accesses. It also checks all use of reference (pointer) values. So, this should result in a more reliable Flash engine with significantly fewer exploitable flaws. If the use of compilation to native code for the Java bytecode can get the speed up the result could be a Flash engine that is reasonably fast (there will be some cost of course) and a lot less exploitable. I would be all for that.
As for the bloat, well, yeah, you're going to get that. :-(