Lex Fridman has finished many lengthy interviews on his widespread 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 every little thing from vector operations to Doom. But it surely’s one thing Fridman says, offhand, that basically justifies the prolonged run time: “I believe that if we’re residing in a simulation, it’s written in JavaScript.”
To evaluation: JavaScript is what makes static net pages “dynamic.” With out it, the web would resemble nothing a lot as an after-hours arcade, lifeless and darkish. Lately, the language is utilized in each front- and backend improvement for an entire host of cell platforms and apps, together with Slack and Discord. And the primary factor to grasp 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 more likely to joke: “Java is to JavaScript what automotive is to carpet.”) To at the present time, few individuals 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 possibly can simply discover scads of weblog posts, memes, and Reddit threads sandbagging JavaScript, however my favourite is a four-minute discuss by software program engineer Gary Bernhardt titled “Wat.” Think about, for starters, exhibiting a gaggle of non-English audio system the current and previous types of verbs like boil (boil/boiled) and chew (chew/chewed). Then, while you ask them for the conjugation of eat, who might blame them for answering eat/eated? Equally, the “Wat” discuss 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 isn’t my favourite language, I prefer it. Adore it, the truth is. So I can’t assist however really feel a flare of disapproval each time a sure fraternity of programmers polemicizes in opposition to it. Typically they concentrate on 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.