“Mozilla, faced with new competitive pressures, has begun work on three separate, significant changes to Firefox. First is a new JavaScript engine that – with a transfusion from the project behind Apple’s Safari – should run Web-based programs at least 30 percent faster. Second is a new graphics engine for Windows that will take advantage of hardware acceleration for graphics and text. And third is a programming tool to help bring to fruition a new system for Firefox add-ons.”
Anyone ever wondered why Firefox couldn’t just use V8 (from Chrome) or JavascriptCore? Is it because those engines are lagging in Javascript revision they support?
It seems here they are again going with a solution of their own, that doesn’t seem to match the new webkit based browsers…
Several reasons.
The most obvious is that you can’t just rip code out of one codebase and stick it into a completely different codebase, just because it looks kind of similar. Maybe they have different platform support requirements, different compiler support requirements, or maybe the two are just completely different, and would require enormous changes to Firefox to swap the engines out.
JavaScript is an integral part of Firefox as a whole, rather than just being used for web site scripting. The entire UI is controlled by JavaScript code. It’s part of the configuration system. It’s a core part of the extension mechanism.
Since neither V8 nor JavaScriptCore support every feature of Mozilla’s JavaScript implementation (it’s a superset of the ECMA standard version), and since Firefox and extensions make use of those features, it’s not possible to switch to a different JavaScript engine without breaking things. The Firefox developers could fix their own code, but they can’t fix everyone else’s extensions for them.
Mozilla’s JavaScript engine is also used in other software. Until very recently, it was the only real choice for embedding a JavaScript interpreter in something, unless you wanted to use JScript (ugh) and be tied to Windows. Then there’s all the software based on XulRunner. Mozilla couldn’t just stop development on SpiderMonkey (or Rhino, for that matter), because that’d leave all those other developers stuck.
Having multiple competing implementations is also a good thing. Why is it OK for Google to write their own JavaScript interpreter, but not OK for Mozilla to continue improving theirs? It it just because V8 is currently faster?
It’s not like Mozilla are lagging behind or anything. They’re improving performance at a rate comparable to JavaScriptCore and V8, and it’s not like they have the slowest JavaScript engine around, so they aren’t preventing developers from doing cool things with JavaScript. IE’s JScript engine is doing that.
“We decided to import the assembler from Apple’s open-source Nitro JavaScript JIT [just-in-time compiler]”
were you reading the same article I was? Were you reading an article at all?
Did you understand the article you just read? Or even that single sentence you quoted?
Hey, Mozilla people! How about developing a browser that doesn’t suck on Linux and MacOS?
Firefox is great on memory usage. Their memory manager is great. But if you’re running on battery on anything other than Windows, Firefox is just way too much of a resource hog. Not only does it use excessive CPU time for nothing (it does a lot of polling), but it actively prevents a computer from going to sleep if you leave it idle. This bug has been in the database for YEARS with no resolution.
On my MacBook Pro, I had to switch back to Safari just so that I could set my notebook down and walk away and come back and not find the battery drained to zero.
Unfortunately I’ve experienced the same thing but I do think that Firefox is just the tip of the iceberg when it comes to software being ported to Mac OS X (and Linux) that is of half-assed quality. This is one of the things that is pushing me away from Mac to Windows 7 – having to tolerate the half baked work being done by such organisations then having the gaul to blame Apple, Microsoft or ‘prejudice’ when they fail to make headway on that particular platform.
Mozilla has the audacity to complain about Microsoft to the EU but when it comes to actually providing a viable piece of software on alternative platforms they seem to ignore them. It took firefox until 3.0 for them to finally do something about the ugly XUL widgets they used for forms, it took them to 3.6 to finally fix up a good amount of the leaks within Firefox (no, they are leaks, not features or ‘optimisations’ as Mozilla developers claimed), and it’ll be at least 4.0 by the time we see at least very rudimentary plugin isolation let alone tab isolation.
It is time for Mozilla to get its act together because at the rate they’re progressing they’ll find Internet Explorer 9 will overtake them by the time it is released!
Tab isolation will come in a 3.6.* feature update, the beta version is buried in mozilla.org, it does actually work. But just as the Qt port to bring better cross plateform support, it’s not going really fast.
Actually, no. Only out of process plug-ins are planned to be introduced in one of the minor updates. True process isolation will probably be released with the next major version of Firefox.
I’m running firefox 3.6 on Arch Linux. It runs without a hitch, it runs perfectly quickly, it is responsive (keyboard and mouse actions react without observable dealy), pages scroll just fine (no matter how quickly I move the scroll bar slider with the mouse, the page scroll keeps up with it with no observable lag), it doesn’t crash … and it uses just 4% CPU.
http://www.archlinux.org/packages/extra/x86_64/firefox/
Where is the problem?
Edited 2010-03-03 12:01 UTC
Try to do the same thing in window and you will notice the difference quite easily, you have idea of what is “real” firefox responsiveness, your just used to the linux version.
Seriously, you are going to have to try harder than that. Windows is not faster than KDE4, epecially Vista.
I have now put Arch Linux with KDE SC 4.4 on two systems, one is a desktop with AMD 64 Athlon X2 @ 2GHz + ATI HD 4350 graphics, and the other is a bog-standard netbook with 945GME graphics. Both systems, BTW, have open source drivers for the graphics, and both can support a 3D composited desktop. I have enabled the composited desktop on both.
On the netbook, if I oscillate the scrollbar slider vertically at 2Hz or so, I can get the page motion to phase-lag the scrollbar motion by 180 degrees (2 Hz is after all fairly quick movement). On the desktop, I can’t, it stays in phase.
Sorry to burst your bubble, but Windows is no faster or more responsive than Arch Linux + ATI open source drivers + KDE SC 4.4. It is S-L-O-W-E-R.
Understand?
I can’t speak for Ubuntu and GNOME, but KDE speed and desktop responsiveness is just fine. More than fine … it is very good in fact.
Edited 2010-03-04 13:53 UTC
Really, you wiggled the scroll-bar on two Linux systems? That’s pretty convincing. It’s not clear from your comment that you compared Linux against Windows in your small test, as you mention you installed ArchLinux on both, open source drivers, etc. Did you perform the same test on both OSs?
If there’s a feeling that the Linux version of Firefox is not as responsive it is probably because there are some places where the performance is/was noticeably worse.
See:
http://www.tuxradar.com/content/browser-benchmarks-2-even-wine-beat…
Although they are from last year, the notion that the Windows version may be more responsive isn’t unfounded. They even run this test through WINE, and even that layer of indirection doesn’t stop the Windows binary from outperforming the Linux one.
i have been using firefox from trunk and it hasnt crushed even ones for days now. Flash crashed the other day and there was a rectangle in its place informing me that flash has crashed and i should refresh the page to reload it, i refreshed the page and it was like nothing happened.
Flash hanged at another time and i opened system monitor, killed “mozilla-runtime” process, refreshed the page and was again back in business. There is nolonger any need to restart the entire browser when flash hangs.
browser competition is good, i doubt firefox would have added this feature if chrome wasnt around.
What you’re mentioning is ‘nspluginwrapper’ and it has been available for the last 5 years, maybe you weren’t using it before.
No it is called Lorentz. Just read the article.
Lorentz is only the codename of the release. The OOPP feature doesn’t contradict what nspluginwrapper has been doing these years.