August 25th, 2008

device

Massive Javascript performance improvements on the horizon

Web programmers should take a look at this article in Ars Technica, which talks about a radical enhancement that will be coming to Mozilla soon.

Summary: they're about to integrate trace optimization into the Spidermonkey Javascript engine. The underlying concept of this technique (assuming that I'm understanding it correctly) is essentially that it learns as it goes, making the program faster as it figures out how it really works in practice. This notion isn't quite as new as they make it sound, but this would be the widest deployment of it that I've heard about so far. In principle, it could eventually allow some Javascript programs to run *faster* than compiled code, because trace optimization can accomplish some speedups that compilers can't.

From the numbers they show, it looks like the new Javascript engine performs something like twice as fast in ordinary conditions, and up to 20-40 times faster in some cases. (Probably involving key loops that can be optimized well.) While that doesn't totally change the world yet, it's another key step in turning Javascript from an annoying and clunky toy into a language capable of serious work. And it means that, at least in Firefox, some complex web apps are about to get a speedup without having to do a thing. (It also means that the browser itself is likely to speed up in many places, because much of it is written in Javascript...)
  • Current Music
    INXS - Shine Like It Does
  • Tags
device

The joys of open source

I'm finally getting started on the LiveJournal integration, now that CommYou's IM capabilities are beginning to hum fairly nicely. First step is making OpenID work.

In theory, this is straightforward: as so often, there's already a fairly complete-looking Java library for OpenID out there, under an Apache License that I can work with. So I installed that Friday, set things up very similarly to the example code -- and not only does it not work, it fails really badly and strangely.

Fortunately, after tearing my hair out for a few hours, I came across a message from Thursday on the related Google Group, from someone else who is about two days ahead of me on the hair-pulling. This got a response of, essentially, "Oh, yeah, the sample code in the release is totally broken. Go get the current version from SVN instead."

On the one hand, I appreciate the prompt response, and I have reasonable hope that it will get me past my mysteries. OTOH, I do, once again, find myself longing slightly for libraries that come from places with persnickety QA departments. Say what you will about Microsoft (and heaven knows I can tell my share of MS horror stories), I don't think I've ever gotten anything quite *that* broken from them. Open source is lovely, and usually way ahead of the curve in terms of functionality, but the implied "use at your own risk" is biting me on the ass fairly often on this project...
  • Current Music
    Heart - Fallen From Grace
  • Tags
device

(no subject)

Reminder to self: when xkcd talks about Googling something, actually doing so can lead to more information than you really wanted to know...

ETA: Following the resulting Google link to Wikipedia is merely informative and nasty. I gather that following links further than that are not merely not-work-safe, but likely to produce actual psychic trauma...
  • Current Music
    Heart - I Love You