Introducing JITB — a Flash Player Built On the JVM 126
MBCook writes "Joa Ebert has started working on a new program called JITB. Announced in a talk at FITC San Fran, it's a Flash player written to use the Java JVM to run ActionScript, and in a simple graphics test case (making 1 million calls to flash.geom.Point) was 30x faster than Adobe's Flash player. There is an impressive demo video on YouTube showing the point test."
Ironically... (Score:2, Interesting)
Re:Ironically... (Score:5, Interesting)
Yes, HTML5.
Try to watch Youtube on a laptop with a really slow wireless connection. Then switch to an iPad.
Re:Ironically... (Score:4, Informative)
You're almost certainly going to get modded into oblivion for question His Holiness Steve Job's HTML5, but it's worth pointing out that you're absolutely correct, and it's because Flash allows for bandwidth-sensitive downloads and HTML5... doesn't.
Basically, a Flash app can start streaming a movie and see how fast it's connecting at. If it's connecting too slowly, it can switch in mid-stream to a lower bandwidth stream and continue playing as if nothing happened.
HTML5 can't do that.
Strangely enough, QuickTime can do this automatically. But QuickTime isn't HTML5, and so if you're serving up an MP4 file so that it plays in both Chrome and Safari, well, you won't get that feature. You have to create the special QuickTime specific index MOV file, and that can only be done using QuickTime Pro.
Which, incidentally, is what you're "supposed" to do when serving content for the iPad and iPhone.
Re: (Score:2)
Implementation dependant (Score:3, Interesting)
HTML5 can't do that.
HTML5 only specifies the source URL where to get the media from. Doesn't specify how to play it nor exactly how to download it.
Of course you could just implement it in a dumb straight forward way : like download the whole damn file and just play it.
But some data containers, like the OGG container with is pushed forward by OSS at least for Vorbis and Theora (and could be used for VP8 too) are designed in such a way that different chunks can contain different level of details (think like a progressive JPEG).
Re: (Score:1)
Re: (Score:1, Interesting)
HTML5 does allow bandwidth-sensitive streaming video.[1] Webkit browsers support a plaintext playlist file which provides a list of video segments in every bitrate you'd want available to the client. Open source software in the ffmpeg package can create the H.264 encoded files packed in MPEG-2 TS segments; the playlist can be made by hand or dynamically.
I am not sure, but I believe using a plaintext playlist file will allow the agent (browser) to support bitrate-switching streaming without depending on cont
Re: (Score:1)
I might be old-fashioned, but the solution that has so far worked the best for me:
- When they have different bandwidth version videos to choose from.
- When they are also downloadable, so that I can get them over time, even when on a lousy network.
Re: (Score:2)
I'm really hoping that at one point someone releases a runtime that a) can compete with Adobe's and b) has decent video performance on all OSes.
Re: (Score:2)
Re: (Score:2, Informative)
I am not sure why flash is considered so slow for many of you.
I am using a laptop from 2006 and I never had any real speed issues, that is unless I have a bad connection nor have I noticed it justs sucking up my CPU usually a spike then it resolves itself.
Could it be that.
1. Some places write bad code for flash.
2. Your bandwith is sub optimal
3. You using a computer from the Clinton Administration
I found that flash runs just as well as any other interpreded languge in terms of speed and perfomance. No it is
Re:Ironically... (Score:4, Funny)
An African Swallow... or a European one, I don't remember which one is slower... WHAAAAAAH (thrown into cliff).
Re: (Score:1, Informative)
Re: (Score:1, Informative)
Are you just making stuff up? In my experience Silverlight is much faster than Flash.
Re: (Score:3, Informative)
Also available via html5/h.264:
Enable html5 playback @ http://youtube.com/html5 [youtube.com]
Re: (Score:2)
YouTube is providing a new embedding template [youtube.com] (at least testing it) that is just an iframe, people still are using the old (stable) way to embeed youtube videos
Re: (Score:2)
YouTube supports WebM, stop whining.
Re: (Score:2)
let's just make the crap go faster!
You mean, like, throwing it at a fan? I'm all for it!
Re: (Score:2)
Comment removed (Score:3, Funny)
Re: (Score:3, Interesting)
Er. Why would Oracle team up with Adobe`s Flash, given their JavaFX?
Disclaimer: I work for Oracle.
Re: (Score:2)
How about money?
Thinking that JavaFX takes the role of Flash is delusional. But for Adobe it might be a good financial interest to keep Flash floating for a while longer (not that there would be a big threat to it so far, but they are still careful).
Disclaimer 1: nothing against Adobe personally, I just hate Flash. I also see that Adobe is going in standards direction (somewhat) with CS5, so the issue is really only getting more time (and maybe a bit of DRM, some folks still don't got the memo that it's dea
Re: (Score:1)
Well JavaFX was stillborn for starters.
Re: (Score:2)
Why would Oracle team up with Adobe`s Flash, given their JavaFX?
Because Flash isn't intended solely for rich Internet applications. How would one make, say, Homestar Runner using no Adobe products? Is Oracle getting ready to come out with a vector animation authoring tool?
Screen capture software (Score:5, Funny)
Does anybody know of screen capture software that reproduces the "I'm recording video of my monitor using my shitty cell phone" effect?
Re:Screen capture software (Score:4, Funny)
Yes, unfortunately it only ships with shitty cell phones...
Re: (Score:2)
iChat
Re: (Score:2)
30X faster? (Score:5, Informative)
From his site:
Update: Please do not think that this implementation is 30x faster than the Flash Player developed by Adobe. One(!) microbenchmark is never a number you should count on. I would like to make clear that I never said this.
Re:30X faster? (Score:4, Funny)
The problem here is not that the claim of a 30x performance increase was fallaciously generalized based on one particular piece of code as compared with Adobe's player, but that anyone familiar with Flash would find this claim to seem quite plausible.
If someone claimed that they made a compiler that, say, generated code that was 30x faster than what Microsoft's compiler or gcc could do, no one would believe it for a minute.
Re: (Score:2)
Re: (Score:2)
Well, you'll never get rid of wishful thinking. Even a 10% speedup of some code takes weeks of programmer time, let alone 200% or 3000%. Yet hearing that a great speedup has taken place is always nice, even if only for a subset of an application.
It comes to mind that data centers are often a target for derision among green activists, who usually don't understand as much of the ecological issues as they should before they speak, let alone IT issues. We should really start pointing out to them that Google and
Re: (Score:2)
Pointless (no pun intended) (Score:2, Insightful)
So an implementation of a language that only implements 1% of the functionality is less bloated and faster than the full implementation when running one very specific test? No fucking shit. I'm one of the first to bash Flash at any opportunity, but I'll wait and see how well this performs once it actually has some functionality before I start laughing at Adobe.
BSD (Score:3, Interesting)
If this really works, then we will finally get Flash to work on BSD and 64 bit version of Linux.
Re: (Score:1)
Re: (Score:1, Informative)
Which BSD and 64-bit Linux do.
Re: (Score:1)
Good question. Which BSD and 64-bit Linux do? One or two of the ports?
Re: (Score:2)
Dadgum! What the heck have I been watching on my 64 bit Linux box all these months? Is somebody tricking me with smoke and mirrors again?
Re: (Score:2)
Yup, precisely. The 32 bit plugin. Which has been no more buggy and crash prone than the windows version, from what I can tell. Then again, I don't use windows as often.
Point being, it works, and is running on 64 bit Linux. A native 64 bit version would be interesting, but as I don't lose much sleep over Flash performance, meh.
A JVM implementation... again... interesting, but not exciting.
Re: (Score:1)
I don't understand, could you explain how is 64-bit support in Linux shit?
All drivers are available in both 32-bit and 64-bit, and one can run both 32-bit and 64-bit applications as in Windows.
Also, Ubuntu is not the same as Linux. The 64-bit support (especially 32bit-on-64bit support) depends a lot on how the distribution handles it. I started using a 64-bit installation (with some 32-bit stuff like Wine for win32 apps) of Mandriva Linux since 2005 and it always had the support of using 32-bit applications
Re: (Score:2)
Adobe has one (Score:5, Informative)
Adobe (back then Macromedia) used to ship Flash in two version: native binary and Java version in the days when Java applets were popular. They stopped developing it around the time Flash 4 was out, because the tables have turned: Java applets were going down, while Flash was going up.
The article never mentions any reason as to why this player was developed, and I'm struggling to come up with a reason myself, as it's easier to port the native runtime to any platform, than maintain an independent copy in a constant "catch up" mode.
Re: (Score:3, Insightful)
I'm struggling to come up with a reason myself, as it's easier to port the native runtime to any platform, than maintain an independent copy in a constant "catch up" mode.
Semi-closed platforms like the iphone/ipod where the proprieters have turned their back on flash?
Re:Adobe has one (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2)
Correction (Score:2)
Re: (Score:3, Insightful)
Semi-closed platforms like the iphone/ipod where the proprieters have turned their back on flash?
The introduction of yet another semi-functional Flash alternative is doing nothing to change this position, as it's a practical position, not one of open source ideology. Having it in Java makes this even less interesting to Apple.
Steve Jobs, like any other mobile maker, can have full access to the actual Flash player source code, if he only wanted it. Maintaining an independent port is not cheaper than simply fixing the one Adobe provides.
Re:Adobe has one (Score:5, Insightful)
Semi-closed platforms
Semi?
Re: (Score:1)
Apple users consider the platform semi-open because you can look through the glass at the front and see your apps.
Re: (Score:2)
Semi-closed platforms
Semi?
Yes, semi. Wii is an example of a fully closed platform: access to the devkit is by invitation only, and the rules [warioworld.com] state that you need a dedicated office and "experience" (that is, a prior commercial video game on another platform) even to be considered. But with Xbox 360 or iPod touch, anyone with $1000 for the hardware and the first year of a developer certificate can start coding.
Re: (Score:2)
It's like being a little bit pregnant.
Re: (Score:1, Troll)
It's just another case of existing technologies being re-implemented for Java. Nothing to see here, move along.
JVM optimisations (Score:4, Informative)
The article never mentions any reason as to why this player was developed, and I'm struggling to come up with a reason myself
I would think that the JVM itself is the main reason.
Flash uses Actionscript, a variant of ECMAScript, just like Javascript.
To run it fast enough, an implementation needs a fast and nice actionscript engine.
One possibility would be to get a Javascript engine like Google's V8, Mozilla's Trace- / Jaegger-Monkey, Adobe's own opensourced Tamarin, etc.
The other possibility is to use a well known and well optimised VM like Java and compile the Javascript into Java bytecode. This makes the process more complex, but leverages the years of JVM development.
Also the second advantage is that lots of hardware contain already a functionning JVM : Lots of phone have Java EE, Android has the Java-like Dalvik (which can run java byte code after a transcoding), etc.
as it's easier to port the native runtime to any platform
Saddly, the main reference implementation of Flash is closed source (except for the Tamarin engine).
So for a port you have 3 possibilities :
- wait for Adobe to port the latest official player. Saddly they aren't doing it for lots of different architecture
- port yourself one of the open source implementation (Gnash, LightSpark, Swfdec)
- use a multi-platform player (Java)
Re: (Score:2)
Probably just a typo, but to my knowledge no phones support Java EE; you probably meant Java ME. I can't comment on the rest of your post, as I have no idea if it is possible or even feasible to compile Javascript into Java bytecode...
Re: (Score:2, Informative)
"The JavaScript compiler translates JavaScript source into Java class files. The resulting Java class files can then be loaded and executed at another time, providing a convenient method for transfering JavaScript, and for avoiding translation cost."
http://www.mozilla.org/rhino/jsc.html [mozilla.org]
Re: (Score:2)
Re: (Score:2)
Well, unless you have some chunks of code that are platform dependent. And I bet Flash has those pieces of code. Otherwise wou would have had Flash 64 bit without any issues, since you know, it would only require a recompile....
Hrm@!! (Score:2)
This sounds like a neat project... even without the speed improvements it would be nice to have a flash player that was portable and Free.
That said, I can't wait to see the security holes of a Flash client combined with the security holes of a Java JVM! This is going to be AWESOME.
Re: (Score:2)
Somehow, I don't think there will be a lot of security holes in a Flash player written in Java, compared to a Flash player written in C or C++.
Don't talk till you hit full compatibility. (Score:5, Insightful)
This means very little. Anyone can make a subset of a language faster then a full implementation.
The Ruby world has been through this recently: Someone comes out with a fantastic runtime that supports 1/8 of the ruby language, and it's 10x faster then everything else!
There's lots of hype, but as development continues the other runtimes get 2x faster, and the new magic runtime gets 5x slower by actually supporting the whole language, and the new magic runtime is now the same speed as the rest of the field, with less compatibility and more memory usage.
So color me skeptical, until this runtime supports the whole language, including transparent overlays and all the stuff that the Adobe guys claim makes Flash slow.
Even the author of this article will tell you this. He recently added:
Update: Please do not think that this implementation is 30x faster than the Flash Player developed by Adobe. One(!) microbenchmark is never a number you should count on. I would like to make clear that I never said this.
That being said, If we're stuck with Flash for at least the near term, I'd like to see projects like this, Gordon [github.com], and Smokescreen [smokescreen.us] take off and perhaps improve our choices in runtimes. I just don't expect magic.
This corroborates what we all know... (Score:2, Insightful)
... java is slow and a memory hog. (for the sarcasm impaired, yes, I'm joking).
Re:This corroborates what we all know... (Score:4, Funny)
Re: (Score:1, Interesting)
Flash IS OpenGL accelerated (on windows).
Sun's Java has been known to be the king of VM performance for quite a while. Nothing really comes close in terms of optimization. Flash is known to be one of the slower of the pack.
30x faster probably isn't far fetched.
Re: (Score:1)
The 32-bit Linux Flash player is also OpenGL-accelerated.
will it run on android? (Score:2)
android support or it's pointless.
Re: (Score:1)
Re: (Score:2)
patent lawsuit in the making (Score:2)
Cue Oracle patent lawsuit in 3....2.....1....
Re: (Score:2)
Acconding to the Java licence, they can't sue you for creating a program (Flash's substitute) that uses a full blown JVM. Otherwise, we all would the fucked.
Even so, regarding JVM implementations, if you make a JVM that implements Java to the fullest, you are safe too. Only partial implementations (like java mobile) are target for lawsuits
Distributing work-in-progress versions (Score:2)
if you make a JVM that implements Java to the fullest, you are safe too. Only partial implementations (like java mobile) are target for lawsuits
Then how can a free software project develop a JVM if nobody on the team is legally allowed to distribute parts of it until the whole thing is feature-complete? It would have to be done inside a corporation, such that distribution of work-in-progress source code from one member of the team to another is not legally "distribution".
Re: (Score:2)
Don't ask me. I am just giving you the facts [perens.com]. Quoting (emphasis mine):
Sun Microsystems, Inc. (SUN) hereby grants to you a fully paid, nonexclusive, nontransferable, perpetual, worldwide limited license (without the right to sublicense) under SUN's intellectual property rights that are essential to practice this specification. This license allows and is limited to the creation and distribution of clean room implementations of this specification that:
(i) include a complete implementation of the current version of this specification without subsetting or supersetting;
Re: (Score:2)
do you work for Oracle? Otherwise stating what is and isn't safe when you don't have the authority over if they sue or not isn't very convincing.
Next step! (Score:2)
Or maybe to LLVM [llvm.org]!
Re: (Score:1)
[...]go at the speed of machine code. Or maybe to LLVM [llvm.org]!
You mean like lightspark [sourceforge.net]?
Java in the Box? (Score:1)
Re: (Score:1)
Could call it Jitterbug after the late 1930s swing dance style.
http://en.wikipedia.org/wiki/Jitterbug [wikipedia.org]
Re: (Score:1)
Or perhaps I could recommend "Java Inside That Bitch"
Re: (Score:2)
Java Is The Bomb?
loop (Score:2)
Learn to use a camera (Score:2)
Man, those types of videos give me a headache. Use a tripod, pop the camera again something. JUST STOP THE SHAKING! Please?
..so it's called Jack in the Box? (Score:2)
Re: (Score:1)
impetus to improve? (Score:1)
Seems to me that if this plays out and is better at higher levels of compatability, that this might encourage Adobe to make a better flash player.
Updates? Speed? (Score:1)
THE NEXT BIG STEP (Score:1)
I can has? (Score:1)
Watching that video made me want cheeseburgers.
What does JITB stand for in this case?