Recently we have been puzzled by some statements of Brendan Eich, the creator of the JavaScript programming language.
In Brendan's blog he wrote "For Mozilla 2, we will have a JIT-oriented JavaScript VM (details soon) that supports the forthcoming ECMAScript Edition 4 ("JS2") language" (October 13, 2006). Well, could hardly wait for any details. Another statement that made us curious was at The Ajax Experience this fall. In his slides about JavaScript 2.0 he mentioned "Open source optimizing VMs coming soon. Look for an announcement in a few weeks" (October 25, 2006). Interestingly, this mysterious announcement was in a section he called "JavaScript Fun Facts".
Well done Brendan, you are our Master of Suspense! Finally, as a revelation today came the announcement that is going to boost JavaScript. Congratulations to Adobe for their decision of contributing the ActionScript Virtual Machine (AVM) as open source to the Mozilla project. And a warm open-source welcome to all the developers of the AVM! The code has just been committed into the Mozilla repository.
This is great news for qooxdoo being a client-side JavaScript framework. Performance has always been one of our major concerns, and we think we have pushed the limit for JavaScript based web applications, e.g. for qooxdoo's powerful browser-independent layout engine. Can't wait to tweak the last bit of performance out of any new Mozilla browser backed by the new JavaScript VM. This is going to change the future of browser-based applications. Cheers!
Really good news. My vocabulary may to be too limited to tell you how great the latest changes in IE7 RC1 are. Microsoft announced that they have "recently made some great fixes to our engine to improve the garbage collection routine and to reduce unbounded memory growth." and that one "should see noticeable improvements on AJAX sites in the Release Candidate we shipped last week". Yes indeed, we do see tremendeous improvements.
In fact many demos of qooxdoo run much faster now in IE7 compared to IE6. And they are even faster than in Firefox 1.5 in many cases. This is a huge jump in performance. Microsoft did not tell about their exact modifications, of course. Anyway, they have fixed the major problem of large JavaScript-based web applications. This problem, despite having a catchy name, was mentioned many times before like here, here and there: If you have many objects created, which are simply accessible in the current scope, all methods and features of JavaScript slow down dramatically. Yeah, right, the entire execution speed drops significantly. No other browser besides IE shows such a strange behavior. It is quite interesting that IE6 really gets slower the larger the total number of (accessible) objects. Sure, it is logical that more instanciated objects need more memory, but it is not logical that at the same time this will dramatically reduce the performance of any code (that is not even accessing this data).
With the release candidate RC1 of their new browser version IE7, it seems that they have finally fixed this issue. You can test it yourself in this test case, which has been available in qooxdoo for several months to analyze and measure the IE performance problems. Please look at status bar of your browser (maybe you need to enable the status bar in the IE7 security settings). It will display the execution time of each loop while a large number of objects exists. On my machine the IE6 needs ~1400ms, while IE7 needs ~30ms, which is roughly the time Firefox 1.5 needs. Definitely incredible! Bright future for modern web applications.