My personal favorite passage (no comment on HN's favorite obsessions at all)
"GUIs are useful. Spell-checkers are useful. I’m glad that people are working on new kinds of bouncing icons because they believe that humanity has solved cancer and homelessness and now lives in a consequence-free world of immersive sprites. That’s exciting, and I wish that I could join those people in the 27th century."
Similar to the Necronomicon, a C++ source code file is a wicked, obscure document that’s filled with cryptic incantations and forbidden knowledge. When it’s 3 A.M., and you’ve been debugging for 12 hours and you encounter a virtual static friend protected volatile templated function pointer, you want to go into hibernation and awake as a werewolf and then find the people who wrote the C++ standard and bring ruin to the things that they love.
You can however have a static function pointer to a virtual function (although it wouldn't be a template, it could be part of a template). They do in fact work like virtual functions still. So that particular thing could exist, and be useful, and probably does exist somewhere in boost.
That being said, if you find yourself drinking a martini
and writing programs in garbage-collected, object-oriented
Esperanto, be aware that the only reason that the Esperanto
runtime works is because there are systems people who have
exchanged any hope of losing their virginity for the exciting
opportunity to think about hex numbers and their relationships
with the operating system, the hardware, and ancient blood
rituals that Bjarne Stroustrup performed at Stonehenge.
John began to attend The Church of the Impending Power
Catastrophe. He sat in the pew and he heard the cautionary tales, and he was afraid. John learned about the new hyperthreaded processor from AMD that ran so hot that it burned a hole to the center of the earth, yelled “I’ve come to rejoin my people!”, discovered that magma people are extremely bigoted against processor people, and then created the Processor Liberation Front to wage a decades-long, hilariously futile War to Burn the intrinsically OK-With-Being-Burnt Magma People.
I could at least understand if you found him too over-the-top. There are some parts that seem to be trying too hard. The general "throw random references in a blender" style of humor might not amuse everyone. That said, I do find him hilarious.
I concur. While I've never met him, he's almost certainly got that thousand-yard stare that pierces through to the heart of your crazy ideas (from "Let's spend several billion dollars on a company that does crappy sales software!" to "Why don't we put a Turing-equivalent cartoon paperclip on the bottom right hand corner of everyone's screen?"). This guy has Been Around the Fucking Block and deserves a shot at Microsoft CEO, he's in research and he's psychic about bullshit.
I would pay folding money to buy a ringside seat at the single combat that finally decides who gets to run Microsoft, because there's just no other way it's going to happen without causing a mass exodus of everyone who's still good working there. I would also put a significant side-bet on this guy, because he's not a biz guy or a sales guy or a marketroid, he's in research and knows how to fight dirty.
Imagine if Microsoft did install a crazy smart creative person to lead them. They can always keep business school twerps to do silly things like manage their existing lines of business. The CEO doesn't have to be a chair lunatic. They should be a CS lunatic.
Microsoft could be a thing to be feared again. Instead of innovating once every 10-15 years then milking their few products dry (and in 20 SKUs for each individual product), they can build out a 90% greenfield engineering business unit to tackle larger problems in the world. (Yes, that would require not including most current employees who have had their brains rotted and can't think in any other ways except Big Corp Big Process Patterns).
In case you're claiming the original author thinks either theory in general or LISP in particular is useless I urge you to read the essay. He's very much for high level languages, theory included, it's just that as a systems guy he's not in a position to use them.
How you got that from the essay, I don't know, if you see that quote in context he is not saying that at all, he is saying that the low level stuff is neccessary to allow the high level stuff to get built:
You might ask, “Why would someone write code in a grotesque language that exposes raw memory addresses? Why not use a modern language with garbage collection and functional programming and free massages after lunch?” Here’s the answer: Pointers are real. They’re what the hardware understands. Somebody has to deal with them. You can’t just place a LISP book on top of an x86 chip and hope that the hardware learns about lambda calculus by osmosis.
Denying the existence of pointers is like living in ancient Greece and denying the existence of Krackens and then being confused about why none of your ships ever make it to Morocco, or Ur-Morocco, or whatever Morocco was called back then. Pointers are like Krackens—real, living things that must be dealt with so that polite society can exist.
Make no mistake, I don’t want to write systems software in a language like C++. Similar to the Necronomicon, a C++ source code file is a wicked, obscure document that’s filled with cryptic incantations and forbidden knowledge. When it’s 3 A.M., and you’ve been debugging for 12 hours, and you encounter a virtual static friend protected volatile templated function pointer, you want to go into hibernation and awake as a werewolf and then find the people who wrote the C++ standard and bring ruin to the things that they love.
The C++ STL, with its dyslexia-inducing syntax blizzard of colons and angle brackets, guarantees that if you try to declare any reasonable data structure, your first seven attempts will result in compiler errors of Wagnerian fierceness:
Syntax error: unmatched thing in thing from std::nonstd::__ map<_Cyrillic, _$$$dollars>const basic_string< epic_ mystery,mongoose_traits < char>, __default_alloc_<casual_ Fridays = maybe>>
One time I tried to create a list<map<int>>, and my syntax errors caused the dead to walk among the living. Such things are clearly unfortunate. Thus, I fully support high-level languages in which pointers are hidden and types are strong and the declaration of data structures does not require you to solve a syntactical puzzle generated by a malevolent extraterrestrial species.
That being said, if you find yourself drinking a martini and writing programs in garbage-collected, object-oriented Esperanto, be aware that the only reason that the Esperanto runtime works is because there are systems people who have exchanged any hope of losing their virginity for the exciting opportunity to think about hex numbers and their relationships with the operating system, the hardware, and ancient blood rituals that Bjarne Stroustrup performed at Stonehenge.
Of course, you could also try writing system software in a language like Oberon, where two guys could create a language, a compiler, a GUI, an OS, and the hardware to run it on, in a couple of years, while teaching.
Note that Wirth is currently writing a new edition of Project Oberon, with a new FPGA-based computer.
"As it turns out, Ted the Poorly Paid Datacenter Operator will not send 15 cryptographically signed messages before he accidentally spills coffee on the air conditioning unit and then overwrites your tape backups with bootleg recordings of Nickelback. Ted will just do these things and then go home, because that’s what Ted does. His extensive home collection of “Thundercats” cartoons will not watch itself. Ted is needed, and Ted will heed the call of duty."