There is a meaningful HN thread once in a while, due to being populated by the actual ex-googlers and facebookers.

https://news.ycombinator.com/item?id=40818809

First of all, FB approach is “The Worse Is Better” all over again. If you write a quick crap to be replaced by something else very soon, the meme of “Move Fast and Break Things” (which is a polite name for “Just Pile Up more and more Crap, who cares LOL”) will “work” in the short run Otherwise it is guaranteed to accumulate all sorts of “technical debt” (a polite wording for “now costly or impossible to fix early quick idiotic and incompetent decisions”) – just look at Shittereum and ask shitalik – the champion of quick incompetent decisions.

Lets state this principle more clearly – random decisions will never result in a stable system, only “just right” (selected by an social (evolution-like) process of a trial-and-error), usually unique “thins” – this and only this “works”.

The DNA/RNA transcription machinery is the canonical example – it has been “selected” for millions of years, an once the “stable intermediate forms” emerged (“the decisions has been made”) there is no way to change this “technical debt”. There is, however, nothing “random” in there – everything else was less stable or energy efficient (plus other subtle constraints).

Now this idea about letting everyone to change anything (without code owners). This is a idiotic approach at so many levels, it requires a whole section to enumerate.

Dopamine

There is a famous experiment in the field of Psychology, when they put a cat in a box with a hidden lever (that opens the door and lets the cat out). At first cats are just literally bouncing around until they found the lever by a pure luck or a chance. Once they found the lever and realise the causality of pressing it causing the opening of the door, they, literally, became experts, and begin to act like the ones, never ever bouncing around again.

This is how every expert came up to be.

There is another quote from the famous physicist, which states (roughly) that an expert is one who have experienced all the pitfals out there and learned to avoid them, just like these cats.

We (humans and other animals) are “driven” by dopamine (and other neuromodulator) oscillations, not by something divine or rational. Due to this fact we tend to seem a quick and easy short-term dopamine spikes. This determines out social behaviour and, on an aggregate level, all the outcomes of social processes.

The another fundamental meme principle of “delayed gratification” has dopamine at its actual biological causality.

This has obvious implications on programming (as a social activity) – almost everything will be “optimised” for seeking an immediate (shortest term) social reward, which is the easiest (less effort) source of dopamine spikes. This is, of course, how emotionally charged idiotic content beats carefully worded rationality.

So, “moving fast” is another name for “lets get moar of these sopamine rewards right fucking now”. Lets push low-effort crap and get the social feedback – the crap just good enough not to crash and burn the whole thing and not to be ridiculed by others (members of society).

This, by the way, is the same social patterns behind all the sectarian formations, both in religion and in “sciences” – just pretend to be smart and busy (“sort-of competent”) so the others will become convinced of your “competence”.

Again, there is nothing arbitrary in this – it is just implications of dopamine spikes and corresponding lows.

Guy Steele’a talk

Very few people “emerged” (developed themselves with the help of a chance) to get their dopamine from doing the best possible quality stuff. The common “low effort crap” creates a strong aversion in them – the crap aversion.

Just having this is not enough, one has to daily practice this for years and then you could become another Guy Steele or Jay Sussman. If your are lucky.

So, the guy who spent at least a decade working with LISPs (the ancient crap-evasive tradition of carefully-spraking math-literate types) stated clearly what are the problems with the fucking Java (which is a monument to human stupidity and an insult to human intelligence) – they never looked at what LISP is and what makes it so special.

  • just a few special forms on top of a uniformity, so
  • the user-defined stuff will look exactly the same as “built-in”
  • generics aren’t just a fancy academic feature, but absolutely necessary
  • shitty, verbose, inconsistent syntax is a huge show-stopper.

Everyone else (ignorant narcissists) missed this – Stroustrup, Gosling, and even Rob Pike, so now we have what we have.

The take home message is that while everyone-can-change-anything is a pure lunacy, the “code owners” may be just too arrogant or plain stupid. Nothing new here – the leaders has to be worthy.

Linus, Guido and SPJ

There are the classic example of how adequate and competent “leaders” (code owners or guardians) produced the best quality craftwork. (The Guy Steel talk predicted this too).

No one wants a random incompetent low-effort literally-whos, driven by dopamine and urge for a quick social “recognition”, to rewrite something in LLVM (which, ironically, right now has a subtle bug which prevent the current Firefox from being compiled) or GHC or eve Python code.

Unless it is a webshit.

Again, only the low-quality stuff that is expected to be thrown away and being replaced by another quick low effort stuff (which is what Facebook actually do) can be written by a bunch or random nobodies without competent guardians or custodians.

Java (a brain-dead in charge)

This is, of course, the case study. The shit was so bad that both classic intellectual traditions, deeply grounded in math and attention to details (LISP and ML) came up with their own (incomparable superior) solutions for this fucking abomination (Kotlin is a low-effort crap).

One more time. The “Abstraction and Specification in Programming Languages” by B. Liskov, which basically solved the programming, came up in early 80s. (the Golden Age of programming). CLU, MacLisp and the early Scheme (the lambda papers) came out at the same time.

The first version of ClTL came out in 84. By this time Standard ML has already been an established language and the first working version of Erlang has been created.

All these language “designers” basically ignored this.

Now what?

There is no substitute for years of deliberate practice, even if it is mostly bouncing around (familiarity with the ancient intellectual traditions – Math, LISP, ML – helps a lot).

“Going fast and breaking things” will end up like Shittereum, with unboxed 256bit integers (as design decisions) and an imperative spaghetti in general. Never forget PHP 3 – the fractal of bad design (why, yes, Java is everywhere too).

What are the best codebases?

  • Ocaml stdlib (NOT the Jane Street stuff)
  • Haskell stdlib (comes with GHC)
  • MIT Scheme (yay!)
  • Clojure (1.10+, already polished)
  • Arc (arc3.1.tar)
  • Scala3 immutable collections
  • nginx
  • Scalatest (some other DSLs, cats?)
  • Go stdlib (given an idiotic lack of generics)
  • etc.

What do they have in common? Being heavily math-aware, principle-guided, focused on quality (doing things “just right”), attention to details, crap-aversion.

But, just as Guy Steele professed, no one would ever wait for a craftsmanship to emerge, and will use cheap crappy low-effort junk-food, in software in media, in printed books, literally everywhere. Easy and cheap dopamine will beat everything.

Last but not least, the biological notion of a “Honest and Costly Signals” (actually impossible to fake or imitate) is what distinguish a true quality (of a genetic phenotype). There is a lot in this emergent universal principle.

The hosnest and costly signal of Google’a actual (non a wishful thinking) superiority is that its monorepo and its Chromium just work.