Lex Fridman has carried out many lengthy interviews on his well-liked podcast. Even so, the episode with the legendary programmer John Carmack has an unhinged director’s-cut really feel to it. Over 5 hours, Carmack dishes on the whole lot from vector operations to Doom. But it surely’s one thing Fridman says, offhand, that actually justifies the prolonged run time: “I feel that if we’re dwelling in a simulation, it’s written in JavaScript.”
To overview: JavaScript is what makes static internet pages “dynamic.” With out it, the web would resemble nothing a lot as an after-hours arcade, lifeless and darkish. Today, the language is utilized in each front- and backend improvement for a complete host of cellular platforms and apps, together with Slack and Discord. And the principle factor to know about it, within the context of Fridman’s nerdy koan, is that this: For any self-respecting programmer, admitting to really liking JavaScript is one thing of a fake pas—very like an art-house filmmaker confessing to Marvel fandom.
I suppose this has one thing to do with the truth that JavaScript was created in much less time than it takes to home-brew a jar of kombucha: 10 days. In 1995, Netscape employed a programmer named Brendan Eich to create a language to embed in its browser, Netscape Navigator. Initially known as LiveScript, the language was renamed JavaScript to piggyback on the hype round an unrelated language known as Java, which had been launched earlier that yr. (Requested the distinction between Java and JavaScript, a programmer is prone to joke: “Java is to JavaScript what automotive is to carpet.”) To this present day, few folks contemplate JavaScript a very well-designed language, least of all Eich. “I perpetrated JavaScript in 1995,” he as soon as mentioned, “and I’ve been making up for it ever since.”
What was his crime, precisely? You may simply discover scads of weblog posts, memes, and Reddit threads sandbagging JavaScript, however my favourite is a four-minute speak by software program engineer Gary Bernhardt titled “Wat.” Think about, for starters, displaying a gaggle of non-English audio system the current and previous types of verbs like boil (boil/boiled) and chew (chew/chewed). Then, if you ask them for the conjugation of eat, who may blame them for answering eat/eated? Equally, the “Wat” speak is a blooper reel of JavaScript’s quirks and unpredictable behaviors. Let’s say you need to kind an inventory of numbers: [50, 100, 1, 10, 9, 5]. Calling the built-in kind operate in any sane language returns the checklist in numerically ascending order: [1, 5, 9, 10, 50, 100]. Doing so in JavaScript returns [1, 10, 100, 5, 50, 9], the place 10 and 100 are thought of bigger than 5. Why? As a result of JavaScript interprets every quantity as a string sort and does lexical sorting, not numerical sorting. Whole madness.
When Fridman says JavaScript runs the world, in different phrases, what he means is that our world is, just like the underlying supply code, massively screwed up and incomprehensible. It’s the equal of announcing, with a sigh, that contemplating the sorry state of the planet, the Common Declaration of Human Rights should have been written in Comedian Sans.
At this level, I ought to confess that whereas JavaScript just isn’t my favourite language, I prefer it. Adore it, in truth. So I can’t assist however really feel a flare of disapproval at any time when a sure fraternity of programmers polemicizes towards it. Typically they give attention to flaws that have been handled years in the past. To dwell on JavaScript’s unique shortcomings is to miss the truth that any piece of software program—and each programming language is, in essence, a collection of software program—is amenable to revision and enchancment.