Essays from the funniest man in Microsoft Research
blogs.msdn.com
blogs.msdn.com
"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.
I know what... five of those are...
THIS DOES NOT RAISE PROPERTY VALUES IN TOKYO!
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>>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.
inventing “a thing that you could do” is a low bar for human achievementBemused frustration is such an entertaining writing style. Alas, my attempts tend to end up as incoherent raging. Maybe switching to bourbon would help.
(I write dadhacker.com, but haven't written much in the last year or so because I've been pretty happy since leaving Microsoft. Sorry! :-) ).
Thanks for all your posts.
Mind you, the title only states he's the funniest man in Microsoft Research, not that he would be considered funny in the general population, and, therefore, a lot is left open to interpretation.,
Incidentally, I look forward to the day when Lebron James is called the James Mickens of Basketball.
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).
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.
That said, some classic stories of his:
"In order to demonstrate our superior intellect, we will now ask you a question you cannot answer."
http://blogs.msdn.com/b/oldnewthing/archive/2004/04/26/12019...
and
"Don't let Marketing mess with your slides":
http://blogs.msdn.com/b/oldnewthing/archive/2003/10/17/55345...
http://blogs.msdn.com/b/oldnewthing/archive/2007/11/29/65884...
1. Loudly declare that theory is useless.
2. Ignore any tool that is not "serious" -- i.e. so larded with other people's complexity that all theory is useless.
3. Justify (2) by claiming that "ordinary" programmers are too stupid: only the brilliant can understand a tool so simple that theory is not useless.
4. Pension!
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.
http://research.microsoft.com/en-us/people/mickens/thenightw...
Note that Wirth is currently writing a new edition of Project Oberon, with a new FPGA-based computer.
Start here: http://www.inf.ethz.ch/personal/wirth/ProjectOberon/index.ht...
But I'm pretty sure the specifics of the FPGA he's running on are not well documented yet. I would be happy to be corrected on that point.
In any case, it's a super cool project.
"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."
My cynical self was caught off guard and laughed to tears on at least 4 occasions reading these essays. Priceless.
Last time I laughed so hard was while watching a Dave Chapelle Show...