Lex Fridman has completed many lengthy interviews on his common 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’s one thing Fridman says, offhand, that actually justifies the prolonged run time: “I think that if we’re living in a simulation, it’s written in JavaScript.”
To evaluate: JavaScript is what makes static net pages “dynamic.” Without it, the web would resemble nothing a lot as an after-hours arcade, lifeless and darkish. These days, the language is utilized in each front- and backend growth for a complete host of cell platforms and apps, together with Slack and Discord. And the principle factor to grasp about it, within the context of Fridman’s nerdy koan, is that this: For any self-respecting programmer, admitting to truly 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. Originally 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 12 months. (Asked the distinction between Java and JavaScript, a programmer is more likely to joke: “Java is to JavaScript what car is to carpet.”) To this present day, few individuals contemplate JavaScript a very well-designed language, least of all Eich. “I perpetrated JavaScript in 1995,” he as soon as stated, “and I’ve been making up for it ever since.”
What was his crime, precisely? You 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.” Imagine, 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, whenever you ask them for the conjugation of eat, who might blame them for answering eat/eated? Similarly, the “Wat” discuss is a blooper reel of JavaScript’s quirks and unpredictable behaviors. Let’s say you wish to kind an inventory of numbers: [50, 100, 1, 10, 9, 5]. Calling the built-in kind operate in any sane language returns the record 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-about bigger than 5. Why? Because JavaScript interprets every quantity as a string kind and does lexical sorting, not numerical sorting. Total 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 saying, with a sigh, that contemplating the sorry state of the planet, the Universal Declaration of Human Rights will need to have been written in Comic Sans.
At this level, I ought to confess that whereas JavaScript shouldn’t be my favourite language, I prefer it. Adore it, in truth. So I can’t assist however really feel a flare of disapproval each time a sure fraternity of programmers polemicizes in opposition to it. Often they concentrate on flaws that had been handled years in the past. To dwell on JavaScript’s authentic 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.