Slashdot Mirror


Revamped WebKit JavaScript Engine Doubles In Speed

Shin-LaC writes "In a post on their official blog, WebKit developers introduced the 'next generation' of their JavaScript engine, SquirrelFish Extreme, claimed to be twice as fast as its predecessor. The post lists several changes contributing to the performance improvements, including 'bytecode optimization,' a 'polymorphic inline cache' (which sounds similar to V8's 'hidden class transitions'), and a 'context threaded JIT' compiler which generates native code (currently only for x86 processors), and is also applied to regular expressions. The new JavaScript engine is already available in the latest WebKit nightly builds. According to comparative benchmarks, the new engine is around 35% faster than the V8 engine recently introduced in Google Chrome, and 55% faster than Mozilla's TraceMonkey."

78 of 270 comments (clear)

  1. Bar graphs... by Anonymous Coward · · Score: 5, Funny

    As you can see in this bar graph, our bar is bigger than our competitors' bars.

    1. Re:Bar graphs... by Anonymous Coward · · Score: 2, Funny

      It is not the length that counts but the girth!

    2. Re:Bar graphs... by Anonymous Coward · · Score: 2, Funny

      You wish, first you gotta by me dinner! Sauteed SquirrelFish sounds appropriate.

    3. Re:Bar graphs... by Kooty-Sentinel · · Score: 4, Funny

      I'd prefer to go to a Chinese restaurant and eat some freshly slaughtered TraceMonkey. And for drinks I'd just like some V8.

      --
      Your evaluation period for Productivity 1.0 has ended. Please purchase more coffee to continue using this product.
  2. That's great! by schmidt349 · · Score: 2, Funny

    The next revision of SquirrelFish, said to make Javascript not suck anymore, is due to be released in 2048.

    1. Re:That's great! by caffeinemessiah · · Score: 5, Interesting

      The next revision of SquirrelFish, said to make Javascript not suck anymore, is due to be released in 2048.

      I know you're just trolling, but Javascript is actually getting fun to program in for recreational purposes. It reminds me of assembly programming back in the day, at least that's where its development seems to be in terms of a programming language. It's actually fun to hack, and you can already do some nifty things like pseudo-threading using its window.setTimeout() function and some clever programming. The fact that the engines are getting more powerful just makes it more fun and likely to pay off.

      I remember when C/C++/ASM programming was fun to hack, until the age of monolithic libraries like MFC and OWL (and now things like the JDK and .Net) came and ruined that fun by restricting your freedom. If there's one thing that will make me buy into the whole browser-as-OS thing, it's an efficient, bare-bones and flexible Javascript implementation, kind of like programming in C for your browser.

      --
      An old-timer with old-timey ideas.
    2. Re:That's great! by Niten · · Score: 3, Insightful

      I had a feeling someone would use this as a JavaScript-bashing opportunity. After all, JavaScript is the world's most misunderstood programming language.

    3. Re:That's great! by Anonymous Coward · · Score: 3, Insightful

      ... until the age of monolithic libraries like MFC and OWL (and now things like the JDK and .Net) came and ruined that fun by restricting your freedom. If there's one thing that will make me buy into the whole browser-as-OS thing, it's an efficient, bare-bones and flexible Javascript implementation, kind of like programming in C for your browser.

      Bullshit.

    4. Re:That's great! by phantomfive · · Score: 2, Interesting

      OK, I know you're going to call me a fanboy, but you really need to try Cocoa. MFC is miserable not because it's monolithic, but because it's designed in a way that makes everything miserable. .Net is a little better, but still not fun.

      Cocoa (really NextStep) makes it easy to take control of whatever part you want: it is logically organized and easy to customize any part. Do you want to make a window that covers the whole screen transparently, then lets you draw on it? Simple, and it's programmatically the same as drawing anywhere else. Do you want to flip your window and do all kinds of weird effects? It is amazing how easy it is. Cocoa gives you the feeling of complete control again. And it is fun.

      --
      Qxe4
    5. Re:That's great! by try_anything · · Score: 4, Insightful

      I remember when C/C++/ASM programming was fun to hack, until the age of monolithic libraries like MFC and OWL (and now things like the JDK and .Net) came and ruined that fun by restricting your freedom.

      How do libraries and application frameworks restrict your freedom? Your boss makes you use them? Sorry, I don't follow your argument at all. If you want to write your own socket library, regular expressions library, and logging framework, go ahead and do it. Nobody's stopping you.

      If modern amenities have made you bored with programming, I suggest attacking a problem domain that hasn't yet been made trivially easy. Get a four-core box and convert a single-threaded application into one that uses all four cores efficiently. That's something that Java and .NET won't solve for you. Whenever one problem is rendered trivial by Moore's law or by some helpful library author, there is always a bigger problem to tackle.

    6. Re:That's great! by operator_error · · Score: 2, Insightful

      OK, I know you're going to call me an old curmudgeon, but where can I run your Cocoa code? Pretty much all the customers in my market use Windows, but might be open to Linux. And we're all focused more heavily on servers too. New Apple hardware is going to be a tough sell too.

      At least with javascript, I can expect a universal, albeit lowest-common-denominator client-base.

    7. Re:That's great! by Waccoon · · Score: 3, Interesting

      It's actually fun to hack, and you can already do some nifty things like pseudo-threading using its window.setTimeout() function and some clever programming.

      I had to do this, because JavaScript is single-threaded.

      A Java applet I need to support kept trying to make a JavaScript call to the browser, and kept failing, which crashes a background timer I had implemented in JavaScript. I had to "restart" JavaScript using a mouseover event and use threading to keep it from using up all the CPU time. It was such a stupid hack, but it worked.

      I eventually figured out the function name the applet kept calling and was able to shut it up. It still boggles me that any JavaScript from anywhere, such as from an ad, can crash the language and leave you with no JavaScript support at all. It's very hard to count on a language when browsers implement is so badly, especially when you have no choice but to support really old software that keeps doing bad things that upset newer, stricter versions of a scripting language.

      Now, does this WebKit update fix the JavaScript threading issue? Then I'll be impressed.

    8. Re:That's great! by brainnolo · · Score: 3, Informative

      You should take a look at http://cappuccino.org./ Is really interesting and brings the best of both worlds.

    9. Re:That's great! by multipartmixed · · Score: 4, Informative

      JavaScript isn't single-threaded.

      Only one JavaScript thread is used by firefox (and maybe other browsers -- I don't know).

      In fact, spidermonkey is thread-safe and you can run multiple JavaScript threads outside the confines of the browser. In fact, I have written a class for spidermonkey which lets you create real OS threads running JavaScript functions.

      > It still boggles me that any JavaScript from anywhere, such as from an ad, can crash the language
      > and leave you with no JavaScript support at all

      Out of curiosity, how many programming languages do you know that will let you keep executing code once a syntax error has been reached, or an exception has been thrown but not caught?

      The problem here isn't language design, it's poor programming. And try..catch block will work wonders around other-peoples-crappy-code.

      > It's very hard to count on a language when browsers implement is so badly, especially when
      > you have no choice but to support really old software that keeps doing bad things that upset
      > newer, stricter versions of a scripting language.

      Aside from function.arguments and === in JavaScript 1.2, I'm having a hard time thinking of a JavaScript language change which was broke backwards compatibility. That includes IE. Although it would be nice if IE would fix their stupid [1,2,3,].length bug.

      --

      Do daemons dream of electric sleep()?
    10. Re:That's great! by Anonymous Coward · · Score: 2, Interesting

      That's great, you spent lots of time in school. Now how much real-world, business driven application development experience do you actually have?

      When I finally went back and finished by BS in CS (just so I could get promoted--glass ceilings and all), one of my last classes was in search engines. 22 people in the class, 3 undergrads (me and two others) the recent masters program students.

      The other 2 undergrads dropped out leaving me the only undergrad. When we had to deliver a search engine (built over a corpus of medical documents) I was the only student to have a finished working one. I had to explain to a number of the masters students how to open a stream in C++ and read in the words one at a time.

      Not one other student delivered a fully working piece of code, a point the professor (head of graduate studies) commented on.

      Now granted, I have over 25 years experience in software development, but you'd think that students in masters or Ph.D. programs could at least write code that can read data from a file.

      So, just because you have a Ph.D. in CS doesn't buy you any brownie points. I've noticed a large number of postings to various forums I monitor from folks saying things like "I'm a Ph.D. candidate and working on a thesis around the topic you are explaining. Mind if I ask you some questions?"

      Ph.D.'s today don't mean what they used to mean. Use that Ph.D. to deliver some real innovations to the CS world then I'll be impressed.

      Just an aside, even though the Grad Studies head asked me to consider returning to work on a graduate degree (and the head of the CS department asked me to come back and teach Java courses) I decided to pursue an MBA instead. I already know the CS work, and the MBA work is allowing me to understand the business side of my job better.

    11. Re:That's great! by STFS · · Score: 4, Insightful

      Please mod parent up, it's true, this is bullshit! Monolithic libraries in C++ restrict your freedom? How in the world do you get to that conclusion? FYI, almost nobody uses MFC, and if it bogs you down, well duhhh... don't use it! C++ is almost exactly the way it used to be, the language hasn't changed at all. You can still do everything by hand like you used to if that's what you want. The "monolithic" libraries you speak of tend to help the rest of us get things done and I for one, welcome a more diverse selection of these.

      --
      You don't think enough... therefore you better not be!
    12. Re:That's great! by TheRaven64 · · Score: 2, Informative

      Cocoa is an implementation of the OpenStep APIs. GNUstep is another implementation and runs on Windows. In Ãtoilé svn we have a theme engine for GNUstep (Camaelon), although there is not yet a native Windows theme. If you're targeting GNUstep, you aren't limited to Objective-C either - I have written a native compiler for Smalltalk which produces equivalent code to Objective-C for operations which are not heavy on arithmetic (currently much slower for arithmetic, but if you're doing a lot of number crunching you can write some methods in ObjC - with inline asm if you really need the speed - and others in Smalltalk in the same class), and we plan on adding JavaScript and Io support in the relatively near future.

      Back on topic, polymorphic inline caching is absolutely nothing to do with hidden class transformations. PIC is a technique originally from the Self team (as is HCT - not surprising, since JavaScript is basically an ugly version of Self with some weird corner cases). In a dynamic language, every message send (that's method call toy any Java programmers that wandered in) is two operations; a lookup mapping the selector (method name) to a function, and a call to the function. The Self guys discovered that at most call sites only a small number of different functions were called. In Smalltalk, you would cache a small set of (class, function) pairs, and then you have a quick way of looking up the correct mapping that would work in most cases. In Self (or JavaScript) it's slightly more complicated, because the cache only works for objects which share the same prototype and do not declare a replacement mapping (HTC can make this simpler). In the Ãtoilé dynamic languages runtime I proposed and implemented a simple (and concurrency-safe) means of invalidating these caches in a statically-compiled language. This will be used in Objective-C code compiled with clang and Smalltalk code compiled with the Pragmatic Smalltalk Compiler when I finish adding support for this runtime to both (before Christmas hopefully).

      --
      I am TheRaven on Soylent News
  3. Tracemonkey is slower than V8? by martinw89 · · Score: 4, Informative

    Excuse me, but I think that Tracemonkey is actually faster than V8. Has Tracemonkey really fallen that far behind in two weeks?

    1. Re:Tracemonkey is slower than V8? by Anonymous Coward · · Score: 3, Insightful

      He who controls the test suite, controls the outcome.

    2. Re:Tracemonkey is slower than V8? by Spy+der+Mann · · Score: 4, Informative

      Excuse me, but I think that Tracemonkey is actually faster than V8. Has Tracemonkey really fallen that far behind in two weeks?

      Yes. On XP (that's the best case), Tracemonkey takes 1.340 seconds to do a Sunspider run, which equals to 32.6 Sunspider rus per minute. And Squirrelfish Extreme does 63.6 Sunspider runs per minute. That makes Squirrelfish Extreme 1.95 times faster than Tracemonkey.

      Time for Mozilla to catch up again. In any case, the winner is... the public! (the engines won't get any slower)

    3. Re:Tracemonkey is slower than V8? by flooey · · Score: 5, Funny

      (the engines won't get any slower)

      Clearly you haven't seen the plans for IE9.

    4. Re:Tracemonkey is slower than V8? by BZ · · Score: 2, Interesting

      Are you running the standard Firefox nightlies? Or the actual branch active tracemonkey development is happening on?

      See my other post on this article about measurement bias if one measures right after landing big changes. ;)

    5. Re:Tracemonkey is slower than V8? by shutdown+-p+now · · Score: 2, Funny

      What, they're going to dynamically convert HTML/CSS/JS to Silverlight/WPF/C# on the fly, and render that?

  4. Faster = more memory? by Starmengau · · Score: 2, Insightful

    One of the things we've seen in the past few releases of any browser is that new features seem to increase the already monumental footprint of current web browsers. As far as I've seen, JIT compilers use a whole freaking lot of memory. While I suppose this is acceptable for the whole "Web 2.0 means the web is the only useful thing on your PC!" crowd, I'd like to have a few (3 or 4)browser tabs open while I'm playing a game, for example, without the browser killing my gaming experience.

    1. Re:Faster = more memory? by martinw89 · · Score: 5, Insightful

      No, I will not get off your lawn. Space/speed is a tradeoff. At the moment, we have even bottom of the barrel desktops selling with large amounts of memory. With the eventual rise of 64 bit, expect the amounts to go up even more. There's no reason to avoid taking advantage of this. What's the point of having this huge (seriously, look at the memory difference from now and 10 years ago) amount of memory to just let it sit there, save the occasional multimedia editing task?

      As for your game, it seems to be using quite a huge chunk of memory as well. You know, one of the things we've seen in the past few releases of any modern 3D game is that new features seem to increase the already monumental footprint of current games. And hell, I'm using my browser at least 10 times longer a day than I'm playing a game. I want my browser to be snappy, I don't mind not visiting Super Ultra JS Web App 3.6 if I'm going to be playing a resource intensive game. In fact, I probably wouldn't be using my browser at all anyway.

      But that last paragraph is just my personal experience, YMMV

    2. Re:Faster = more memory? by Jeffrey+Baker · · Score: 5, Informative

      Firefox 3.1 (pre-release) uses less memory than Firefox 3, which uses less memory than Firefox 2. Compiled javascript takes a tiny fraction of the total memory used by a web browser. The vast majority is uncompressed bitmaps and string fragments.

    3. Re:Faster = more memory? by Anonymous Coward · · Score: 5, Insightful

      Anyone using the term "gaming Experience" deserves to have it ruined.

    4. Re:Faster = more memory? by DiegoBravo · · Score: 4, Funny

      And they have plans to run Firefox 5.x in a Commodore 64.

    5. Re:Faster = more memory? by MightyYar · · Score: 2, Funny

      One of the things we've seen in the past few releases of any browser is that new features seem to increase the already monumental footprint of current web browsers.

      It's somewhat mitigated by the appropriation of other tasks. For instance, in 1994 I'd run a copy of Eudora, a copy of Netscape, and a copy of a word processor on my Centris 650 with 8MB or RAM. But now, I can do all of these things in my web browser - so it's okay if it takes a little bit more RAM. And to think that people decried Netscape Suite for taking on too much!

      Here, let me fire up my Activity Monitor app and see what Firefox is... SWEET JESUS! 366 MB!!! OH MY FUCKING GOD, WHAT HAVE WE BECOME???

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    6. Re:Faster = more memory? by phoenixwade · · Score: 3, Funny

      And they have plans to run Firefox 5.x in a Commodore 64.

      Must be scope creep - the original spec was for the timex - sinclair z1000

      --
      A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.
    7. Re:Faster = more memory? by hairyfeet · · Score: 3, Interesting

      I know this is going to be labeled troll,but frankly I don't care. Why is everybody tripping over themselves trying to make faster and faster JavaScript,when the security sucks? I have been able to cut down my customers infections by a good 80% just by installing Noscript and teaching them how to use it. Every day we see more and more JavaScript exploits out in the wild,and yet the only thing anyone seems to be concerned with is speed? JavaScript is getting as bad as ActiveX was in its heyday,and Noscript and sandboxing is really only adding a bandaid to the bleeding wound.

      We need to look at how JavaScript is used on the web and find new ways to lock it down and make it more secure. If we don't,mark my words,it will be talked about in 5 years just like ActiveX. Sounded like a good idea at the time,and then the malware ruined it for everybody. But as always this is my 02c,YMMV

      --
      ACs don't waste your time replying, your posts are never seen by me.
    8. Re:Faster = more memory? by jsebrech · · Score: 4, Insightful

      Every day we see more and more JavaScript exploits out in the wild,and yet the only thing anyone seems to be concerned with is speed?

      Those aren't javascript exploits, they're security issues in other parts of the code that are easiest to trigger via javascript, and that you will resolve with proper sandboxing, which all browser makers are working on. Exploits in pure javascript are pretty rare.

      I think we're talking about a trade-off between usefulness and security anyway. Disabling javascript to gain security is a bit like putting foam on the end of a hammer to avoid hurting your thumb. It sort of misses the point.

  5. Competition by Per+Wigren · · Score: 3, Insightful

    This is a wonderful example of what happens when there are open standards and healthy competition! The consumer is the winner!

    --
    My other account has a 3-digit UID.
    1. Re:Competition by TubeSteak · · Score: 5, Funny

      This is a wonderful example of what happens when there are open standards and healthy competition! The consumer is the winner!

      Is that why /. "consumers" mostly use NoScript?
      Malware: Now 35% faster.

      --
      [Fuck Beta]
      o0t!
    2. Re:Competition by Billhead · · Score: 5, Insightful

      Just because NoScript users are loud doesn't make them a majority.

    3. Re:Competition by Bill,+Shooter+of+Bul · · Score: 4, Insightful

      I use NoScript as a javascript firewall. No stupid javascript from sketchy sites lined to in slashdot stories or random blogs. I don't trust their javascript any more than I trust the editors to edit. Wait, actually I trust it less than slashdot editors to edit.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    4. Re:Competition by willyhill · · Score: 2, Insightful

      I hear even Microsoft is getting into the game with IE8, supposedly the script engine on that one is much faster than the IE6/7 one, almost on par with FF2.x.

      Long gone are the days of stagnation. Competition is good, let's embrace it and be happy about it instead of complaining (as some people seem to be doing here) about the memory footprint and whatnot.

      Maybe soon the browser will become a viable platform for application delivery, which Netscape promised us back in the early 90s.

      --
      The twitter monologues. Click on my homepage and be amazed.
    5. Re:Competition by lilomar · · Score: 4, Insightful

      Exactly NoScript doesn't really mean No-Scripts, it means No-Scripts-I-Don't-Explicitly-Allow. Just because I don't want anyone with a website to be able to run whatever they want on my box, doesn't mean that I don't ever use JS.

      --
      The creator of this post (Jacob Smith) hereby releases it, and all of his other posts, into the public domain.
  6. Mmm... by actionbastard · · Score: 5, Funny

    'bytecode optimized polymorphic inline cache'.

    --
    Sig this!
  7. Really interesting work by Tragek · · Score: 2, Insightful

    I really am loving this JS engine war; I don't program JavaScript, and know nothing about JIT, but having read more than my fair share of compiler optimization and analysis papers, it's really good to see that compiler tech and research is alive and kicking.

    1. Re:Really interesting work by mdmkolbe · · Score: 4, Informative

      Yeah, except that it's JavaScript, traditionally one of the slower languages because it's objects are basically hashtables. The improvements you see are going to be mostly to fastpathing past those hashtables. This unfortunately means that the improvements you see in JavaScript are unlikely to port to other languages since those improvements are to a feature that isn't used in most other languages. (Lua and Python may be exceptions.)

    2. Re:Really interesting work by Spy+der+Mann · · Score: 2, Insightful

      Yeah, except that it's JavaScript, traditionally one of the slower languages because it's objects are basically hashtables.

      And php stores its variables.... how?

    3. Re:Really interesting work by dgatwood · · Score: 2, Insightful

      And Perl stores its classes how?

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  8. Javascript by Lord+Byron+II · · Score: 4, Interesting

    You know, 5 years ago, if somebody had asked me about Javascript, I would have told them that it was a dying technology. At the time, it seemed that it was only used for pop-ups and advertisements. Back then, I had it turned off in all of my browsers. Now, we rate browsers based on their Javascript performance... amazing.

    1. Re:Javascript by MightyYar · · Score: 3, Insightful

      it seemed that it was only used for pop-ups and advertisements.

      No, no... it was also used to invade your privacy.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    2. Re:Javascript by PietjeJantje · · Score: 5, Interesting

      I would go a little further than that, realizing this is difficult to swallow for many following the javascript/ajax bashing meme here on Slashdot for so long, but in their desire to snub it as something "real" software engineers wouldn't touch (or is it fear of change from an aging community?) the clear reality IMHO is that javascript is taking over the role on the client side that java was supposed to be, and it is to be the platform for Google and such to compete against MS on the desktop. You can choose to ignore that, but I doubt it's a good career move, especially considering some of the powers behind it, pushing the technology. Kids today, where they used to make MS apps, they now make apps for the browser. MS is shitting its pants by hanging on to a non auto-update of IE6, while IE8 seemingly will sabotage canvas and whatever it can target. They can't keep behind forever with IE6, so it seems the strategy with IE8 will be to battle all that with Silverlight, working best on IE8 of course, to keep the audience on the MS world. I wouldn't underestimate them either whatever you think of that strategy, for the mere fact 25% still use IE6 and seem to be in their hands to start with.

    3. Re:Javascript by centuren · · Score: 2, Funny

      Oh, definitely. I deal more with people in their mid-to-late-20s who have chosen web development as a career, and are unable to write professional code, do any sort of documentation, and in some cases even think abstractly.

      This comic quite seriously is almost exactly how the code reviews I give go. I think I use the word "retarded" a lot, also, preceded by "This is the most" and followed by "thing I've ever seen."

    4. Re:Javascript by multipartmixed · · Score: 2, Interesting

      Thanks for sharing that comic. It is *so* true.

      I recently took over a large body web code from another developer. In order to meet deadlines, I'm working nights and weekends (oh, man, I SO THOUGHT I'd left that behind with my 20s). Needless to say, I'm not happy. To make matters worse, I got pulled off a fun project to work on web shit. With a PHP back end.

      So, anyhow.. my kid comes up to me the other day and says, "Boy... you sure swear a lot when you're working!"

      And 99% of my swearing is .. you guessed it. WTF?!?!?!?!!!

      --

      Do daemons dream of electric sleep()?
    5. Re:Javascript by RAMMS+EIN · · Score: 5, Interesting

      ``I would go a little further than that, realizing this is difficult to swallow for many following the javascript/ajax bashing meme here on Slashdot for so long, but in their desire to snub it as something "real" software engineers wouldn't touch (or is it fear of change from an aging community?) the clear reality IMHO is that javascript is taking over the role on the client side that java was supposed to be,''

      Speaking as someone who isn't entirely happy with the direction JavaScripts have taken since the invention of the term "AJAX", perhaps I can shed some light on that. I can't speak for the entire "aging community", but there are bound to be some people who agree with my opinions.

      First of all, calling AJAX bashing a meme is somewhat misleading. I did not speak out against it because it was a meme, I spoke out against it because I had actual technical and philosophical objections. Some of that is emotional: I resent the hype around AJAX. It wasn't actually new; I have been doing stuff like that since 1997 or thereabouts. Where's my recognition? But, the grumpiness of an old man aside, let's look at the technical aspects.

      Many modern, cool websites try to use JavaScript, HTML, CSS, and HTTP to create user interfaces that resemble those of desktop applications. These web technologies were meant to support a request-response model, where each response is essentially a static page. Using JavaScript and CSS, developers create the illusion that it isn't a static page, but a dynamic environment with windows, buttons, menus, popups, anymation, smooth transitions, interaction, etc. In other words, an environment that is nothing like how the web used to be. To support this illusion, heaps of JavaScript are piled on disfigured HTML, and HTTP requests are abused to send what should be small pieces of data to and from the server.

      In the process, compatibility is thrown out of the window - don't try to view any of those pages with an unsupported browser, and don't try to analyze the page with a web spider; you will only end up with garbage. Even if you have a supported browser, you will need a pretty powerful computer to get anywhere near decent responsiveness from what are really very primitive user interfaces. This is why I have opposed the wave of AJAX websites. It's not that I don't think the things that are being built with it aren't cool. But they are being built on the wrong technology, which yields suboptimal results and, at the same time, inhibits the adoption of what would be the right technologies. I am happy to see fancy interactive applications being built on open standards, rather than on proprietary technology, but I would rather have it be built on standards that were designed for it, rather than breaking existing standards to get something that sort of works, if you have a fast computer and the right browser. And yes, I do regard any HTML that can't be usefully processed by a search engine or screen reader as broken.

      All this is is nothing against JavaScript. I think JavaScript is a nice language, and I am happy to see we're finally working on creating implementations that aren't dog slow. Perhaps we can also add some useful features...for example, raw sockets, so that we don't have to occur the overhead of a full HTTP request any time we wish to communicate with another system. And perhaps we could actually standardize APIs to functionality like native widgets (how is XUL these days?) and drawing functions (something like Cairo, perhaps?). Then we would have a platform that is actually good for interactive applications. Throw in some support for libraries (with caching and versioning) so that not everything needs to be reloaded all the time, and it's starting to look like a very workable solution.

      You see, I am not opposed to change ... I am opposed to changing in a direction we know isn't very good, when we know how to make it better.

      --
      Please correct me if I got my facts wrong.
    6. Re:Javascript by PietjeJantje · · Score: 3, Interesting

      In the process, compatibility is thrown out of the window - don't try to view any of those pages with an unsupported browser, and don't try to analyze the page with a web spider; you will only end up with garbage. Even if you have a supported browser, you will need a pretty powerful computer to get anywhere near decent responsiveness from what are really very primitive user interfaces. This is why I have opposed the wave of AJAX websites.

      While there's substance to most of your arguments, you -are- getting old, I'm afraid. It reminds me of times when one was flamed for using C over assembly. It reminds me of the time when I was a student and Mosaic 0.9b was released, and it was a non-event because of the above sentiment: slow, resource hungry, and in a time when it was undone to send sigs over 4 lines not regarded a good thing.

      In the meantime the world will move on, javascript already got great cross-browser libraries that make sure it works from IE6 to webkit, and data exchange will be unhyped and improve over time. But no, you can no longer view it on Lynx, and the web -will- be expanded from the dom/request&response model to a dom+javascript (the natural companion) model with more sophisticated means of data exchange. It's a development the noscript-ers can forget they can stop it. It's not like accessibility is not important though, this is an area of development and research as well. Google wants to be able to index that. Also, it's not a xor situation. Google's search pages work on everything. For their apps you need javascript. It's just an extra option (sure it's abused for badly degradating bling - but the web will always be 99% pulp). On the interface site I don't expects any standards soon, but the improvements of the APIs of the big players are big from version to version.

      I think you'll be surprised how good and smoothly it will work and already can work if you look for the right examples. It's easy to have formed an opinion on this stuff a while back and freeze it (especially as you can always choose and pick from millions of examples of bad implementations or use), and mine would have been roughly the same. First of all, I'm a nut for graceful degradation. And I hate those first gen web office apps, all with their scruffy custom interfaces, endless ajax loading indicators, curvy orange and cyan "look how cool I am" cliches involving the marketing term web 2.0, and in general wanabee behavior which makes you think "why? WHY on earth do it in the browser", and "oh noo, not reinvent the wheel again by taking steps backwards". Forget that. It's moving on, and soon all your objections will be as relevant as someone who says you should use assembler over C or even C over Python.

  9. Sure, now with anecdotal evidence! by martinw89 · · Score: 4, Interesting

    I have Opera 9.5 and FF 3 on my Ubuntu system. There is a noticeable difference in rendering speeds for JS medium-heavy websites between them, Opera being slower. Now, I had no idea of Opera's relative speed when I noticed this. So I tested them with Sunspider and surely enough there was a good gap between both, with FF 3 being much faster in benchmarks.

    NB: I'm not being anti Opera. Opera is awesome, even though it's not my primary browser. I'm just saying you can notice the difference in slower JS engines.

  10. Picture of a G5 Processor? by pizzach · · Score: 5, Informative

    Why? Does apple even sell those anymore?

    --
    Once you start despising the jerks, you become one.
    1. Re:Picture of a G5 Processor? by hansamurai · · Score: 2, Interesting

      Not to mention the cup of coffee with the alt tag "Java" representing a javascript story.

  11. Re:Could someone please.. by bunratty · · Score: 4, Informative

    There are very few popular sites that are too slow, because web developers do not like to make slow sites. If a web developer does make a slow site, it doesn't become popular because users are too impatient and go to faster ones.

    That's really the whole point of the recent focus on JavaScript performance. Web developers want to make complex sites to support the features the users want, but they cannot because all those features make the sites too slow. Google especially wants to develop a web-based Office-killer suite. That's why they developed Chrome with a very fast JavaScript engine, minimal chrome to make web apps more like local apps, and put each tab in a separate process so you can kill those memory- and CPU-hungry sites when you need to.

    --
    What a fool believes, he sees, no wise man has the power to reason away.
  12. Re:Open standards, healthy competition, free softw by Per+Wigren · · Score: 2, Insightful

    The LGPL and BSD licenses are "free as in beer" now?

    --
    My other account has a 3-digit UID.
  13. Re:Open standards, healthy competition, free softw by MightyYar · · Score: 3, Insightful

    I never quite got how its a wonderful thing when Apple and Google cross-subsidize free-as-in-beer Internet browsers but when They Who Must Not Be Named do the same thing its evil, monopolistic, anti-consumer behavior.

    I can understand thinking it's not evil or anti-consumer... but c'mon - monopolistic? It's the very definition! A monopoly isn't illegal - using it to gain an advantage somewhere else is. Apple, with their pathetic little market share is not even close to a monopoly. Even their iPod is only like 70% of the market. Google has a near-monopoly on search - but how they are using that to gain an advantage via a web browser is pretty questionable. It's not like you have to use their browser to search or something - they don't even promote it on their home page.

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  14. Re:Speed of JS engine matters why? by bunratty · · Score: 4, Insightful

    For the next generation webapps that web developers haven't been able to write because JavaScript has been too slow until recently.

    --
    What a fool believes, he sees, no wise man has the power to reason away.
  15. Q! by AKAImBatman · · Score: 5, Insightful

    I never quite got how its a wonderful thing when Apple and Google cross-subsidize free-as-in-beer Internet browsers but when They Who Must Not Be Named do the same thing its evil, monopolistic, anti-consumer behavior.

    You know what I can't believe? I can't believe this crap got modded up. Talk about a disingenuous argument if I ever saw one.

    Call me when:

    • Microsoft can meet standards they helped develop. You know, simple things like DOM2.
    • Microsoft shows an actual interest in progress by supporting the WHATWG rather than rolling out Yet Another Proprietary Platform(TM) like Silverlight.
    • Microsoft actually listens to the REAL problems developers are having in their "Open" development process. Best quote I've heard so far? "I tested IE8 the other day and was unable to remove a single [standards support] hack."
    • Microsoft doesn't cram their browser down your throat with artificial desktop integration
    • Microsoft has their source code for IE available for download
    • Microsoft actually accepts patches for their browser

    If Microsoft did even HALF of that you could act all high and mighty. But from where I stand, you're just another Microsoft shill. Be gone!!!

  16. "V8" is so 90s by Graywolf · · Score: 4, Funny

    Between TraceMonkey and SquirrelFish, "V8" seems so... weird. They better give it s regular, modern name like ThreadMole or SkunkAmoeba.

  17. Re:Message to Google by Darkness404 · · Score: 3, Interesting

    If anyone has clout and interest in this, it'd be Google. I'm sick of responding to dialog boxes from cookie setting, noScript, etc.

    Simple answer. Stop being so paranoid. Just allow all first-party cookies, have a decent /etc/hosts file that blocks ads and use Linux/OS X/Any OS other than Windows and you are basically safe from any major malware outbreak. I've tried noScript and found it to be more of a pain then it was worth. Sure, it might make you less secure, but honestly, I run Linux and even though it is possible to hack a Linux box, most script kiddies won't bother.

    Google doesn't care about you, the .01% of the internet that doesn't just accept scripts and cookies.

    --
    Taxation is legalized theft, no more, no less.
  18. Re:Open standards, healthy competition, free softw by Bogtha · · Score: 5, Insightful

    I never quite got how its a wonderful thing when Apple and Google cross-subsidize free-as-in-beer Internet browsers but when They Who Must Not Be Named do the same thing its evil, monopolistic, anti-consumer behavior.

    History lesson for people tempted to fall for this troll:

    Once upon a time, people sold browsers just like they sold any other piece of software. Netscape were making money licensing their browser for corporate environments. The web, and consequently its leader, Netscape, threatened Microsoft's desktop monopoly. So Microsoft used all the cash they had from selling desktop operating systems, bought a web browser (defrauding that company in the process) and spent lots of money developing it further. Then they gave it away for free, at a massive loss to themselves, to "cut off Netscape's air supply". Still, that wasn't enough to unseat Netscape, so Microsoft went further and bundled it into their operating system too. Now all of a sudden 95% of the people on the planet had Microsoft's browser whether they liked it or not - and Netscape were basically dead.

    Microsoft were able to eliminate the competition not because they offered a better product, but because they had a dominant position in another market and were willing to dump their product on the market no matter the cost, to put another company out of business. This is not how capitalism is supposed to work. The free market cannot deal with this situation well. The invisible hand is tied behind its invisible back. So in many countries, abusing a monopoly position in this way is illegal. And that's why Microsoft is vilified here - because they acted like bullies, took something dear to geeks, and shat all over it to make money.

    Now that browsers are a commodity, how are Apple and Google harming the browser market with anticompetitive actions? Answer - they aren't. They are actually competing by providing better products. And that's why it's completely different to what Microsoft did.

    --
    Bogtha Bogtha Bogtha
  19. Re:Google... by Darkness404 · · Score: 4, Insightful

    Replace Google with any standards-supporting, partially open source vendor and you have the current market situation. Heck, if WebKit manages to somehow run JavaScript at twice the speed of assembly programs, Mozilla can still take that code and make Gecko's JavaScript engine just as fast. If Red Hat releases a tool that can run all Windows applications at full speed on Linux, Novell and Canonical don't lose out, they gain too, in that example even the WINE and ReactOS team could gain something. It is only the proprietary vendors that lose whenever the competition gets a new feature. Only IE and Opera that can't tap into these new JavaScript engines. It helps every open source browser project, from Firefox to Konqueror, to Chrome, to even Safari. It is only the few that remain closed that this will hurt.

    --
    Taxation is legalized theft, no more, no less.
  20. Amazingly, everyone is faster than everyone else by zoips · · Score: 3, Interesting

    Chrome/V8 is faster than Firefox/Tracemonkey. WebKit/SquirrelFish Extreme is faster than Chrome/V8. Firefox/Tracemonkey is faster than Chrome/V8. And around we go, always twirling, twirling, twirling towards freedom.

  21. Re:Message to Google by neokushan · · Score: 2, Insightful

    That's a very good...pile of FUD right there.

    Lets see here, you're pretty much saying that if you use Linux, you'll simply KNOW when something is up with your system, but if you use windows, you wont because you'll think it's just some sort of update Microsoft is pushing on you? What about the average Mac user, do you honestly think they're "Technically-inclined" when the entire marketing campaign Apple uses can be summed up as "Buy a Mac - because it'll make you cool"? Or what about all those people who just bought an Eee PC (or similar) because they're affordable and all the rage? Will they suddenly become experts overnight and know the ins/outs of linux, at least enough to know when it's doing something it's not supposed to?
    Besides, when was the last time you seen Windows Update automatically install a new toolbar or whatever? The only thing I can think of in recent memory was the new Live search thing and I'm sure that was an OPTIONAL download anyway (and anyone that just ticks all the boxes and downloads anything they see without reading about what they're getting is just asking for trouble). Even IE7 is optional. Everything else is just security/program updates, with the exception of the odd service pack (which is what, once every 2 years?).
    Plus, it's not like modern Linux distributions don't have their own update programs within them, particularly those designed for the novice user. How are they going to know that their fancy new toolbar isn't just something linux has?

    Your advice to the above poster is possibly the worst advice you could ever give anyone - "Use this OS and you'll be safe!". That's a load of bull, it just takes one person to make a virus and/or Trojan targeting that OS and your complacency will be taken complete advantage of because "you're running linux - YOU'RE SAFE!". The best way to ensure your system doesn't get compromised is to be careful and vigilant, which is exactly what the OP is, then even the "few" script kiddies that actually do target you will be hard pushed to hax0r your b0x0r.
    Yes, it's a minor inconvenience, but it's the ONLY way to be absolutely sure you're safe. And yes, this even works on WINDOWS boxes. Shocking, I know.

    I hate defending Microsoft, but I hate it even more when people bash them for all the wrong reasons, or use feeble excuses - at least have a go at them for something genuine, it's not like you haven't got much to pick at them with.

    --
    +1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
  22. Re:Message to Google by Spy+der+Mann · · Score: 4, Insightful

    Your advice to the above poster is possibly the worst advice you could ever give anyone - "Use this OS and you'll be safe!". That's a load of bull, it just takes one person to make a virus and/or Trojan targeting that OS and your complacency will be taken complete advantage of because "you're running linux - YOU'RE SAFE!".

    Hmmm... right, and wrong.

    You (and also the GP poster) have fallen for the "Linux isn't hacked because it's not the majority" straw-man. Linux is much harder to hack because it provides a much better security than Windows. For starters, you can run your software as non-root! And for any installation you actually have to provide a password. Compared to the Vista "Cancel, Allow" prompts, this is much better, because people unconsciously hit allow because they get trained (by Vista) to do that. Also, GNU/Linux does not have unknown services enabled by default.

    Also, when the GP says that Linux users know something's wrong because they have an extra toolbar, he's right. If I have an extra toolbar on Firefox that I didn't install, i'm not just in trouble. I'm in DEEP trouble and I can almost guarantee that someone pwned my PC (or at least my user account). This is a question of knowledge, granted, but Windows users who have NO IDEA of what's going on inside their OS, just say "oh well, I'll just have to get accustomed to it". And the worst part: they DO get accustomed to it! It's like the battered wife syndrome, but with viruses.

    Also, Microsoft products are prone to have security holes because their software is not open source (many eyes make bugs shallow). Open Source software gets updated almost the day after when a vulnerability is discovered.

    Finally, MS products are also prone to have security holes because since the old MS Word days they keep mixing data with code. First there were the Word Viruses, then the Excel Viruses, then the e-mail viruses, and thanks to ActiveX, webpage viruses. And if that wasn't enough, we got WMV viruses, MP3 viruses (which are possible thanks to stupid security policies like not warning you when the filetype is actually different than the extension reported), and don't get me started with autorun.inf viruses in USB drives.

    They never learn!

    So, yes, GNU/Linux is more secure per-se than Microsoft Windows. That's a FACT. And yes, it's also more secure because GNU/Linux users are more careful.

  23. Re:Open standards, healthy competition, free softw by coredog64 · · Score: 3, Informative

    Mostly correct. Netscape made money selling their horrid web server in corporate environments. They were giving the browser away for free for non-commercial users. If the truth were told, back when Netscape was a relevant browser, most of my coworkers were grabbing the free, non-commercial version and installing it at work. And Netscape didn't really care, as they were giving away their browser in order to drive sales of their server. Netscape's server arm survived for a loooong time, finally becoming the basis for Sun's application server. IIRC, only the newest version of Sun's app server (i.e. 9.x aka GlassFish) doesn't directly trace it's roots to Netscape/iPlanet. And let's not forget Netscape Directory Server. Or, as it's known today, RedHat Directory Server. During the dot-com era, it was one of the better LDAP implementations.

  24. Re:Google... by jesser · · Score: 4, Insightful

    If the license is permissive (like the MIT license), Opera and IE can incorporate the new code just as easily as open-source browsers can. If the license if open-source but not especially permissive (like the GPL), Opera and IE can't use it, but neither can many other open-source projects.

    As it happens, V8 is BSD, Tracemonkey is LGPL+MPL+GPL, and SquirrelFish is LGPL+BSD. I believe BSD and MPL are both permissive enough for use in Opera and IE.

    --
    The shareholder is always right.
  25. Re:Open standards, healthy competition, free softw by Anonymous Coward · · Score: 3, Insightful

    > gave it away for free, at a massive loss to themselves,

    Microsoft had Spyglass write IE for them and the deal was that Spyglass would get $5.00 for every copy that MS sold. MS then gave it away and thus nothing was ever paid to Spyglass.

    There was certainly no "loss to themselves".

    They did also pay various OEMs $5.00 a time to _not_ install Netscape. Or specifically it was a $5.00 discount on the price of Windows if Netscape was not installed, so that was a cost to MS.

    The former was immoral, the latter was probably illegal.

  26. The E-Penis Measure by teko_teko · · Score: 5, Funny

    By using Chrome as your preferred browser, your E-Penis will increase by a whopping 74%.

  27. Re:Amazingly, everyone is faster than everyone els by BZ · · Score: 2, Insightful

    Bingo. What it comes down to is that the answer to "Is X faster than Y" will depend on two things:

    1) The benchmark
    2) The day of the week (or the exact, to the minute builds you're testing, if you prefer)

    The reason for the latter is that all three are in active development. Each one is doing measurements right after landing major changes, against whatever the current state of the other two is. That means that there is inherent bias there in favor of whoever is doing the measurements being fastest: they've just hopped a step up in performance while the other two engines are on the same step they were at 3 minutes ago.

    The same thing will happen with stable releases, for what it's worth. Safari 3 shipped a faster JS engine than Firefox 2. Then Firefox 3 shipped faster than Safari 3. We'll see what the ship dates for Safari 4 and Firefox 3.1 or whatever look like, but I suspect tat if things continue as they are each will be the fastest shipping stable thing at ship time.

    Which is more or less what you said, I guess. ;)

  28. Re:Small test by BZ · · Score: 2, Informative

    Yep. Sunspider is a pure JS benchmark, no DOM.

    By the way, expect Firefox 3.1 to have faster DOM access than Firefox 3. It's being pretty actively worked on.

  29. Why not use a JVM? by Montreal · · Score: 4, Interesting

    It's been possible to run JavaScript on a JVM for some time now (based on Mozilla's Rhino). Does anybody have any numbers as to how these recent in-browse JavaScript optimisations stack up against 10+ years of Sun work on general virtual machine optimisation? Could it be faster just to fire up the Sun JVM and use that as the JavaScript engine?

    1. Re:Why not use a JVM? by multipartmixed · · Score: 2, Informative

      I don't know what the current state of the art is, but last I looked Rhino was still the fastest javascript implementation, IF you discounted the JVM start up.

      IIRC, Rhino compiles JavaScript into native Java byte code, which then gets the JIT magic sprinkled on it by the JVM pixies.

      So the quality of the Java compiler is really not all that relevant, because the code compiled by the compiler only compiles the javascript code once, making the quality of the compiler effectively order(1)... and given sufficiently large N, nobody cares about k.

      Now, a javascript->x86 compiler.. that would be interesting. Although javascript->C or javascript->gcc-intermediate would be much nicer, because I don't live in x86-land.

      --

      Do daemons dream of electric sleep()?
  30. Apple have declared themselves evil too by David+Gerard · · Score: 2, Funny

    "Fuck it," said Steve Jobs to an audience of soul-mortgaged thralls, "we're evil. But our stuff is sooo good. You'll keep taking our abuse. You love it, you worm. Because our stuff is great. It's shiny and it works. It's not like you'll go back to a Windows Mobile phone. Ha! Ha!"

    Steve Ballmer of Microsoft was incensed at the news. "Our evil is better than anyone's evil! No-one sweats the details of evil like Microsoft! Where's your antitrust trial, you polo-necked bozo? We've worked hard on our evil! Our Zune's as evil as an iPod any day! I won't let my kids use a lesser evil! We're going to do an ad about that! I'll be in it! With Jerry Seinfeld! Beat that! Asshole."

    "Of course, we're still not evil," said Sergey Brin of Google. "You can trust us on this. Every bit of data about you, your life and the house you live in is strictly a secret between you and our marketing department. But, hypothetically, if we were evil, it's not like you're going to use Windows Live Search. Ha! Ha! I'm sorry, that's my 'spreading good cheer' laugh. Really."

    --
    http://rocknerd.co.uk
  31. As a standalone engine? by dwarfking · · Score: 2, Interesting

    Do any of the engines mentioned in these postings offer a clean way of using JavaScript as a standalone engine for non-browser applications?

    I don't want a Java based one (don't want the JVM). I'm trying to compile V8 alone but the code has issues right now if you don't use VC++. I've tried SpiderMonkey in the past but that code is just difficult to follow.

    Interestingly under windows the WSH (Windows Scripting Host) can work with either JavaScript of VB script. The engine allows the JavaScript code to access many of the Windows objects.

    I'd like to see a JavaScript engine with pluggable modules (sort of like TCL) and possibly a nice accessible GUI (like TK).

    Any suggestions on which engine is best to use as the standalone interpreter with the easiest extensibility?

    1. Re:As a standalone engine? by multipartmixed · · Score: 2, Informative

      I know nothing of WebKit, so I will not speak of it.

      It is currently possible to use SpiderMonkey at the level of ff3 for real work. There's a bit of a learning curve, but it's totally usable. In theory, anything you write for SpiderMonkey-trunk will be usable with the new tracing stuff they've built. That's not in CVS, it's in hg (mercurial), and I'm not sure what state it's in right now. I'm guessing it's probably usable, too. Oh, I think the tracing code also requires a C++ compiler, although I could be wrong.

      > I'd like to see a JavaScript engine with pluggable modules (sort of like TCL) and possibly a nice accessible GUI (like TK).

      I have been working on something like this, and will get back it to it sooner or later. Probably early november. Unfortunately, great swaths of it is closed (it wraps trade secret libraries), but the basic infrastructure and some of the classes are open. You use it basically like any other UNIX shell interpreter.

      When I get back to this project, I plan on more rigorously defining the module loading code to make it easier to extend. Right now, it's pretty easy to compile them in, but there is no good way to load DSOs and so forth. I also want to load JavaScript-language modules more elegantly.

      If you want to see my early work -- which is not really all that useful unless you're planning on writing more classes in C to expose whatever it is you want to work with -- go here: http://www.page.ca/~wes/opensource/

      As for GUI, I don't really know anything about GUI development, but I'd totally be up for a collaboration if somebody wanted to do simple widgets. I was thinking of ripping apart Dialog for X (nee cdialog) and cloning that functionality someday.

      As of right now, I _do_ have a trivial curses interface which can put windows on a terminal, scroll output through them, and so forth. (Not in the link -- insufficient polish). I used it to put together a simple debugging environment where I type JavaScript code and it prints the results in a different window. Basically, like the debug window pair that shipped with QuickBasic 4.5.

      Oh -- and the stuff I'm working on is UNIX only. Well, it should run under Cygwin.

      I have also played with wsh under Win32. There is a lot of cool stuff you can do, although learning the win32 api appears to be a large and daunting task. I used it to write a simple remote media player for my house, where I could drag a file icon to a JavaScript program on my desktop, which spooled it to a UNIX server in the basement for pickup by a windows box in my living room which in turn would play the content through my home theatre... via another JavaScript program, using the windows media player control.

      --

      Do daemons dream of electric sleep()?
  32. Don't use Noscript! by YA_Python_dev · · Score: 2, Insightful

    JavaScript in Firefox is (almost?) never the source of security problems in the real world. If Noscript stops something is only because an exploit in another component also uses JavaScript (and often only because the person writing the exploit code was lazy).

    Try disabling Java and deinstalling Flash and all the plugins (or at least using Flashblock) and Adblock Plus+Easylist. You will achieve exactly the same results.

    I'm a web developer and I'm asking to please don't disable JavaScript. It's not a security problem per-se if you keep your browser updated and in fact makes the web *less* safe because encourages legitimate web developers to use much worse alternatives, like Flash.

    --
    There's a hidden treasure in Python 3.x: __prepare__()
  33. i did some number-crunch tests - it's a lot faster by cathector · · Score: 2, Informative

    i have a page which does some numerical simulation in javascript,
    essentially an O(N^2) finding-nearest-neighbors-in-two-dimensions thing,
    and here are some trials w/ 2000 points, on an x86 windows machine:

    Safari 3.1.2          - ~50 seconds, maybe more
    Safari 3.1.2 + Webkit - ~10 seconds
    Firefox 3.0.2         - ~22 seconds
    Chrome 0.2.149.30     - ~19 seconds