Javascript and English
JavaScript is the undisputed king of the web and there is no competitor in sight1. You can love it or hate it, but you can’t deny it’s indispensability when it comes to modern web. This despite the fact that JS lacks features present in languages like Haskell, Python, Swift etc. E.g. It supports neither static typing nor strong typing ala Haskell, a gap partially filled by TypeScript. It doesn’t have the first class support for multithreading like Java or Swift has, which WebWorkers are trying to fulfill. The quirks of JS and it’s ecosystem are the source of the infamous JS-fatigue2, but it’s popularity shows no sign of waning. When it comes to quirks, popularity, and standing, the only language it can be compared to is English.
Just like JavaScript rules the WorldWideWeb, English is the engine on which the globalized world runs. Notwithstanding it’s spread through brutal imperialism, it has truly become the foremost language for international discourse, law, science and technology. English has a quirky phonology and learners have to memorize cumbersome trivia in order to be proficient. It lacks the formalized grammar & algebraic nature of Sanskrit3 or the expressivity of German. But where English really shines is in it’s loose word order and ability to assimilate phonology and vocabulary from different languages. It freely borrowed from Indo-European, Semitic, Dravidian, Turkic languages and continues to form new innovative structures each year. English remains the only language with a spelling bee, and perhaps only language with a word-of-the-year ceremony.
So why did these languages became the front runners in their domains? The answer could lie in a cognitive heuristics that humans use to arrive at decisions, called Satisficing. Satisficing4 is the process of choosing a solution because it’s satisfactory, not because it will bring about perfect results. It’s a portmanteau of “satisfying” and “suffice”, coined by Herbert Simon who won Nobel prize in economics and best known for his theory of bounded rationality. The theory states that humans are more likely to make decisions based on time constraints and available information at hand. Satisficing is pragmatic and saves cost and time. JavaScript and English both are perfect examples of how satisficing led to their dominance. Were there better languages available? Yes, but the users love path of least resistance and stayed with JS/English. Both languages are omnipresent and easy to get started with; all it takes is a computer and a browser5 6. Both of them are extensible, people create new slang and a new JS framework with each passing day. Lastly they have an attractive culture attached to it. It literally pays to be use these 2 languages and both offer least resistance compared to the more “scientific” languages.
Both JavaScript and English have shown us that design-by-committee decisions aren’t organic, and humans tend favor pragmatic solutions that get them to the end goal fast. Are these the best languages to do the job? Probably not, and the internet is overflowing with memes about how crazy English and JS are. But they have definitely brought us all this far and keep chugging forward. After all ‘good enough’ is the enemy of ‘perfect’7.
-
Ok, There’s WASM but it’ll be a force-multiplier to JS and will not replace JS. ↩︎
-
https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4#.prcj59904 ↩︎
-
https://blogs.scientificamerican.com/roots-of-unity/a-feat-of-mathematical-eponymy/ ↩︎
-
https://developer.mozilla.org/en-US/docs/Learn/JavaScript ↩︎