Anyone Who Tells You Language Doesn't Matter is a Lying Dumbass

by Mike Levin

Tuesday, May 10, 2022

You know, I pretty much missed the entire Full Web Stack revolution based on the Google V8 JavaScript extraction from Chrome known as NodeJS. It’s the one-ring to rule them all, an idea I very much believed in long ago when I was researching what would be the last primary (“native”, if you will) programming language I would have to learn. Had JavaScript been on the server there between the demise of Microsoft Active Server Page and the rise of NodeJS, I would probably be a JavaScript programmer and advocate, slowly having my soul poisoned by ECMA convolutions trying to it anywhere near the neighborhood of as pleasant and practical to use as Python.

I dodged a bullet. Python is my vibe. I am superpowered today because of Python. Well, technically because of Linux, Python, vim & git (LPvg), but Python plays perhaps the largest role. Or maybe vim does. More on that later. In either case, making your “native” language, the programming language that you primarily think in as you would your native spoken language, is important beyond comprehension. Those dumbasses that tell you that your language choice doesn’t really matter because what you can do in one language can be done in any other language should go learn the ancient Aztec language Nahuatl, have their brain wiped of their born-language and come back to society and get along.

Language matters. Language matters for all the same reasons that the kind of nuance and subtlety that dipshits who hate you downplay as “merely details” matter. Nuance, subtlety and detail are actually everything. English is an island-nation language designed to keep the king king and peasants peasants. Language is laden with subtlety and nuance that influences and effects anything you try to do with it. This is true of any tool. Gödel proved this with his incompleteness theorems, and you can use this either as an excuse for everything to be shit, with an attitude like: everything always was shit, everything is shit, and everything will forever be shit, and just sort of clock-out as an ineffectual lump of wasted matter.

Or you can embrace whatever language or tool you find yourself having to use and determine to find the loveworthy bits. The very thing that clued me onto the concept of loveworthy bits was in fact a JavaScript book. It was called JavaScript: The Good Parts, a.k.a, the O’Reilly moth book. JavaScript is channeling many of the good and interesting parts of the LISP programming language, and LISP has a lot about it to love. LISP is a language that’s used to slam out other languages, each of which is progressively more specialized (or “keyed”) to a particular application, challenge or “problem domain”.

Now while JavaScript is not actually a LISP derivative (or “dialect”) language, it does have that feeling. It’s keyed very specifically for being built into object-like things to control them. There are other languages like this such as TCL and LUA which are also very fine languages. But JavaScript was the one chosen by Netscape to be built into browsers back in the day, and consequently JavaScript “won” the one-language-to-rule-them-all contest. And therefore, one simply must find the loveworthy bits. There is no choice. One can not hide one’s head in the sand from JavaScript.

LISP lets you write sub-languages that layer-up and work together to solve some specific class of problem… such as Web publishing! And so even though HTML, CSS and JavaScript are not each actually derivative languages of LISP, the way the work together, each handling its own part of the web publishing dance, they might as well be. It is very LISP-like in design and nature. And hating one or the other of these technologies (such as I do) is about the same as hating the carburetor of a car… oh, wait! Carburetors suck. Fuel-injection systems, woot! And that’s actually a good lesson there. Pieces can be pulled out and exchanged with equivalent pieces…

Unless it’s JavaScript in the browser. For whatever reason, even though Python and any other language that compiles to the great interoperable abstract syntax tree (AST) should be easily supportable by web browsers with some sort of plugin syntax, the powers that be keep it locked-down tight to just JavaScript, forcing the Web to be an always JavaScript game. And thus the only reason JavaScript is the one language to rule them all is a browser vendor and governance issue. It’s approximately like saying that all business must be conducted in English or you can’t conduct business at all.