Quake Shows JavaScript is Slow, Not Fast

Quake 2 has been made to run in a browser using JavaScript. Old news, granted, but for reasons I cannot fathom, hordes of webdev kiddies have been holding it up ever since as evidence that JavaScript somehow isn't slow as shit.

Years later and that still chafes my ass.

Look, fifteen years ago, my 200MHz Pentium 1 (which was more than twice minimum spec) was running Quake 2 at fully playable speed, using purely software rendering. Not long after, I tossed in a 1998 Voodoo2 card, and had it running a full 60 frames per second at what today would be considered HD resolution. (Yea, I used to be a hardware whore, believe it or not.)

"Oh look how much processing Quake 2 shows JavaScript can do! JavaScript is therefore plenty fast!"

Are you shitting me?

You can squawk all you want about "good enough UI speed": But what Quake-2-in-a-browser demonstrates (aside from the browser window being a shitty way to play a game), is that JavaScript and the "web is for applications!" nutjobs pushing it have all taken your 64-bit multi-core gigs of RAM machine, skewered it by the balls, and turned it into a damn Pentium 1.

Oh, and what exactly do you think all that computational masturbation is doing to your battery life?

So...how much exactly did you pay for that shiny new 2012-model Pentium 1 of yours? Congratulations, you got yourself shafted. You must be proud.

Ok, but wait, there's also WebGL Quake 3. Hmm, yea, running the CPU-side of a GPU-bounded program in JS really proves your quad-core isn't getting castrated into a battery-guzzling Pentium 2.

So, web 2.0 clouds-for-brains, how about writing an HD video transcoder in JS that actually compares to real software? Or hell, a JS version of any native code that actually requires a CPU from this fucking decade. Basically what we're looking for is a "JS isn't slow" demonstration that's not constructed out of strawmen. Do that, dear web crowd, and then I'll accept that you ignorant assholes aren't ruining technology.

Actually, no I won't. Because JavaScript is still a shit language regardless of speed.

4 comments for "Quake Shows JavaScript is Slow, Not Fast"

  1. (Guest) j7n
    2014-11-11 11:20

    Finally someone with a sensible attitude. The slow web widget apps that make modern web function drive me crazy with the sluggishness.

    GLQuake indeed ran very well on modest hardware of the time. I've not played Q2, but better games like Half-Life also ran well in both software and hardware mode. I tried to play the Quake 2 JS port in Opera 19 and it didn't even start after writing 110 MB of data to the browser's directory. Those files never got deleted.

  2. (Guest) guest
    2015-01-19 19:27

    You sound mad about something. Perhaps you need a nap, or maybe a hug, or some laxatives for those constipation cramps. No one cares if a language is fast or not, unless you're building compression/decompression software, operating systems, or AAA games. I'm quite sure you're important enough to be doing all three.

  3. 2015-01-20 10:50

    "No one cares if a language is fast or not"

    That's true - And that's exactly why most software has become bloated garbage that throws away all the power (and battery life) out of otherwise high-end hardware (and throwing the money you paid for it down the drain), just to do things that normally wouldn't even tax a decade-old budget machine. Congratulations.

  4. (Guest) wingus
    2015-07-18 00:30

    "No one cares if a language is fast or not"

    That's exactly the type of attitude that reveals why there are so many shit 'programmers' out there these days, and exactly why web devs are usually far from software engineers. "So what it's slow? Algor-what? Let's just ask for more CPU."

    JavaScript has loads of problems as a language, but I'll blame the slowness on the browser's implementation. As far as I know, each browser (company) implements the parser as it wants. Syntax is still sketchy, and there's plenty of gotchas and WTFs, but since it's just a scripting language, I normally wouldn't be too hard on it. However, you need to rely on this hack of a language to build application level frontends, and it sucks. Any large-ish code base in js is unmanageable, and good luck trying to find that one bug in that one obscure file thanks to that nice big global namespace everything lives in. Utter crap.

Leave a comment