
The Night Watch (2013) [pdf] - Manishearth
http://research.microsoft.com/en-us/people/mickens/thenightwatch.pdf
======
weland
> The systems programmer has written drivers for buggy devices whose firmware
> was implemented by a drunken child or a sober goldfish

This accurately describes my experience lately.

I _knew_ those goldfish weren't to be trusted.

Edit:

> “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.

This accurately describes my experience every time I click on a HN topic about
Rust.

~~~
kibwen

      > This accurately describes my experience every time I 
      > click on a HN topic about Rust.
    

Hm? Rust doesn't have garbage collection, let alone free massages. It does
have pointers and it does have raw memory access. Like C++14, it's thoroughly
a systems language with a few functional niceties floating around.

~~~
weland
THANK YOU!

I'm in the Go camp myself (largely because I speak Unix and with Pike being
involved it was inevitable) but I've read a lot on Rust and have been
procrastinating learning it for about two years now.

It's a very interesting language. Has a lot of helpful constructs. I'm quite
convinced it's a better systems language than C++.

However, every time something about Rust or Heartbleed hits the net, people
flock around and dream of a world of Rust where Bad Stuff can't happen because
Rust doesn't let you write programs that do Bad Stuff.

Indeed, Rust doesn't let you write C++-branded Bad Stuff in Rust. Real life,
however, leads me to believe that Rust-branded Bad Stuff will be trivial to
write in Rust, and it is not the panacea that everyone hopes it is.

It won't just magically make systems programming better and safer. People
somehow managed to have buffer overflows in firmware written in that hideous
form of Pascal that had the length of the array as part of the type, so
foo(int x[10]) only compiled if you passed it an array of ten ints. They'll
manage to write shitty, unsafe code in Rust, too.

Edit:

> let alone free massages.

If you know of a language with free massages please share that information
with me because I definitely want to learn it :-).

I'm not nitpicking, it's just _such_ a funny typo!

~~~
phonon
Umm, he was quoting "and free massages after lunch?" Not a typo :-)

~~~
weland
Oh. Crap. Joke's on me.

------
rhgraysonii
I've always enjoyed his papers. They carry their own brand of
absurdity/hilarity. Here are some others I've seen posted in the past [pdf
warning]:

[http://research.microsoft.com/en-
us/people/mickens/nestofhor...](http://research.microsoft.com/en-
us/people/mickens/nestofhornets.pdf)

[http://research.microsoft.com/en-
us/people/mickens/thisworld...](http://research.microsoft.com/en-
us/people/mickens/thisworldofours.pdf)

[http://research.microsoft.com/en-
us/people/mickens/thesaddes...](http://research.microsoft.com/en-
us/people/mickens/thesaddestmoment.pdf)

------
ahomescu1
He has written 6 of these and they're all available on his page (scroll down
to the line on the USENIX online magazine): [http://research.microsoft.com/en-
us/people/mickens/](http://research.microsoft.com/en-us/people/mickens/)

------
xiaq
I have seen this reposted a lot of times, but I reread it every time. It is
simply amazing.

------
joslin01
Very witty and fun read on the importance of system engineers. If I had to
choose a tl;dr:

    
    
      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. But I live 
      here, and I live now, and in my neighborhood, people are 
      dying in the streets. It’s like, French is a great idea, but 
      nobody is going to invent French if they’re constantly being
      attacked by bears. Do you see? SYSTEMS HACKERS SOLVE THE 
      BEAR MENACE.

------
zorbadgreek
James recently announced he is leaving Microsoft Research to be a professor at
Harvard. I can't wait to see what the Harvard University Press thinks of him.

~~~
seanmcdirmid
He will be missed.

------
Animats
That's so 1970s systems programming. We've made progress since then. For one
thing, now you usually have enough computers to have a test environment.

------
kelvin0
Can't stop laughing... this guy synthesizes pure comedy gold with a touch of
absurdity and a lot of cynicism.

------
cbsmith
Read this with high "NoSQL Bane" expectations...

...was still overwhelmed.

~~~
angersock
I'd totally support a Patreon for Mickens to do recorded readings of his
papers.

------
lechuga
_slightly_ over the top but awesome.

