Hacker News new | ask | show | jobs
by ynniv 5012 days ago
I was very disappointed by whalesong. Instead of a source->source translator like parenscript, whalesong generates a bytecode level VM inside the browser. Doing so provides support for any racket language, but it does so at the cost of immense quantities of "pre-obfuscated" JavaScript.

The genesis of whalesong was to support "World"[1] games on the web, and to that end it seems successful. I don't think it makes a good general purpose tool. Perhaps someone wants to port parenscript to scheme?

[1 | http://world.cs.brown.edu/]

1 comments

How slow is whalesong though? I know people like to say that js is slow, but it's really only the DOM manipulation that makes it so.
Well, it's a 700k interpreter and runtime. It isn't slow for simple things, but only because JS is really fast now. Interpreters are usually 5 to 10 times slower than whatever they are running in.

http://hashcollision.org/whalesong/examples/raphael-demo/rap... isn't bad

http://hashcollision.org/whalesong/examples/boid/boid.html is a little slow compared to http://graphics.cs.wisc.edu/Courses/Games12/Tutorial1/Phase1...

Some of the low framerate could be frame timing (whalesong could be using setTimeout poorly), but they seem to use about the same CPU.

Huh, didn't know that. For some reason I thought it compiled to JS.
I don't know whalesong.

But if you include a giant runtime, the compilation and evaluation of it on every page load, and downloading it (there's evidence to show many hit CDNs with cold caches, probably screwed up firewalls or proxies that mess with caching) can make for a suboptimal experience that can't be optimized without rewriting in something that doesn't require a bytecode VM embedded in your JS.