Many of todayâs programmersâexcuse me, software engineersâconsider themselves âcreatives.â Artists of a sort. They are given to ostentatious personal websites with cleverly hidden Easter eggs and parallax scrolling; they confer upon themselves multihyphenate job titles (âex-Amazon-engineer-investor-authorâ) and crowd their laptops with identity-signaling vinyl stickers. Some regard themselves as literary sophisticates. Consider the references smashed into certain product names: Apache Kafka, ScyllaDB, Claude 3.5 Sonnet.
Much of that, I admit, applies to me. The difference is Iâm a tad short on talents to hyphenate, and my toy projectsâwith names like âNabokovâ (I know, I know)âare better off staying on my laptop. I entered this world pretty much the moment software engineering overtook banking as the most reviled profession. Thereâs a lot of hatred, and self-hatred, to contend with.
Perhaps this is why I see the ethos behind the programming language Go as both a rebuke and a potential corrective to my generation of strivers. Its creators hail from an era when programmers had smaller egos and fewer commercial ambitions, and it is, for my money, the premier general-purpose language of the new millenniumânot the best at any one thing, but nearly the best at nearly everything. A model for our flashy times.
If I were to categorize programming languages like art movements, there would be mid-century utilitarianism (Fortran, COBOL), high-theory formalism (Haskell, Agda), Americorporate pragmatism (C#, Java), grassroots communitarianism (Python, Ruby), and esoteric hedonism (Befunge, Brainfuck). And Iâd say Go, often described as âC for the 21st century,â represents neoclassicism: not so much a revolution as a throwback.
Back in 2007, three programmers at Google came together around the shared sense that standard languages like C++ and Java had become hard to use and poorly adapted to the current, more cloud-oriented computing environment. One was Ken Thompson, formerly of Bell Labs and a recipient of the Turing Award for his work on Unix, the mitochondrial Eve of operating systems. (These days, OS people donât mess with programming languagesâdoing both is akin to an Olympic high jumper also qualifying for the marathon.) Joining him was Rob Pike, another Bell Labs alum who, along with Thompson, created the Unicode encoding standard UTF-8. You can thank them for your emoji.
Watching these doyens of programming create Go was like seeing Scorsese, De Niro, and Pesci reunite for The Irishman. Even its flippantly SEO-unfriendly name could be forgiven. I mean, the sheer chutzpah of it. A move only the reigning search engine king would dare.
The language quickly gained traction. The prestige of Google mustâve helped, but I assume there was an unmet hunger for novelty. By 2009, the year of Goâs debut, the youngest of mainstream languages were mostly still from 1995âa true annus mirabilis, when Ruby, PHP, Java, and JavaScript all came out.
It wasnât that advancements in programming language design had stalled. Language designers are a magnificently brainy bunch, many with a reformist zeal for dislodging the status quo. But what they end up building can sometimes resemble a starchitectâs high-design marvel that turns out to have drainage problems. Most new languages never overcome basic performance issues.
But from the get-go, Go was (sorry) ready to go. I once wrote a small search engine in Python for sifting through my notes and documents, but it was unusably sluggish. Rewritten in Go, my pitiful serpent grew wings and took off, running 30 times faster. As some astute readers might have guessed, this program was my âNabokov.â
+ There are no comments
Add yours