
Ken Thompson quotes - tosh
https://en.wikiquote.org/wiki/Ken_Thompson
======
nappy-doo
Years ago, I started at Google, and was in Charlie's cafe, eating alone. I'm
sitting there, and up walks Ken Thompson. He sits down, introduces himself as
Ken, and asks me what I work on. We sat there for a good 40 minutes just
chatting.

One of my coolest memories of working at Google was that time. He was so down
to earth, never bothered to talk up about who he was (even though I knew). I
really appreciated that.

~~~
pk2200
I have a similar Google lunch story. A guy sat down, introduced himself as
Rob, and told me it was his first day at Google. We had a nice chat, and later
I told my office mate that the new guy seemed really smart. He laughed and
told me I'd just had lunch with Rob Pike. :)

------
DonHopkins
"You can't trust code that you did not totally create yourself. (Especially
code from companies that employ people like me.) No amount of source-level
verification or scrutiny will protect you from using untrusted code." -Ken
Thompson

Reminds me of Theo de Raadt's quote about ESR's "many eyes" argument:

"My favorite part of the "many eyes" argument is how few bugs were found by
the two eyes of Eric (the originator of the statement). All the many eyes are
apparently attached to a lot of hands that type lots of words about many eyes,
and never actually audit code."

~~~
neilsimp1
Given enough eyeballs, all bugs are shallow. \- Linus Torvalds

~~~
DonHopkins
Actually, that quote was "formulated" by Eric S Raymond (to whom Theo was
referring as "the originator of the statement"), and is only deceptively named
"Linux's Law" [1] in "honor" of Linus Torvalds, which is ironic because it
actually dishonors him by being invalid.

The point that Theo was making is that ESR talks and talks and types and types
about many eyeballs looking at code, but when it comes down to actually
auditing code, he never actually bothers, and neither do most other of his
minions who are so quick to parrot his ill-conceived "Linux's Law".

Neither "enough eyeballs" nor "the right eyeballs" are a GIVEN, even for open
source software. Google "Heartbleed".

"Not enough eyeballs" (or "ZERO eyeballs" as he loves to claim) are NOT a
GIVEN for proprietary software, because you can license much proprietary
source code, and some proprietary source code is available for you to read and
audit for free, under licenses like Microsoft's "Shared Source" license.

[https://en.wikipedia.org/wiki/Shared_source](https://en.wikipedia.org/wiki/Shared_source)

And qualified eyeballs are NOT FREE, and usually very busy being well paid to
look at much more interesting things than poorly written buggy code like
OpenSSL. I doubt that Eric Raymond has contributed any of the profits from his
books or VA Linux stocks to Theo De Raadt or anyone else who actually takes
the long time and tedious effort to actually audit code.

The one time ESR actually did try to audit some code didn't go so well:

The little experience Raymond DOES have auditing code has been a total fiasco
and embarrassing failure, since his understanding of the code was incompetent
and deeply tainted by his preconceived political ideology and conspiracy
theories about global warming, which was his only motivation for auditing the
code in the first place. His sole quest was to discredit the scientists who
warned about global warming. The code he found and highlighted was actually
COMMENTED OUT, and he never addressed the fact that the scientists were
vindicated.

[http://rationalwiki.org/wiki/Eric_S._Raymond](http://rationalwiki.org/wiki/Eric_S._Raymond)

>During the Climategate fiasco, Raymond's ability to read other peoples'
source code (or at least his honesty about it) was called into question when
he was caught quote-mining analysis software written by the CRU researchers,
presenting a commented-out section of source code used for analyzing
counterfactuals as evidence of deliberate data manipulation. When confronted
with the fact that scientists as a general rule are scrupulously honest,
Raymond claimed it was a case of an "error cascade," a concept that makes
sense in computer science and other places where all data goes through a
single potential failure point, but in areas where outside data and multiple
lines of evidence are used for verification, doesn't entirely make sense. (He
was curiously silent when all the researchers involved were exonerated of
scientific misconduct.)

[1]
[https://en.wikipedia.org/wiki/Linus%27s_Law](https://en.wikipedia.org/wiki/Linus%27s_Law)

Linus's Law is a claim about software development, named in honor of Linus
Torvalds and formulated by Eric S. Raymond in his essay and book [redacted].
[...]

Validity

In Facts and Fallacies about Software Engineering, Robert Glass refers to the
law as a "mantra" of the open source movement, but calls it a fallacy due to
the lack of supporting evidence and because research has indicated that the
rate at which additional bugs are uncovered does not scale linearly with the
number of reviewers; rather, there is a small maximum number of useful
reviewers, between two and four, and additional reviewers above this number
uncover bugs at a much lower rate. While closed-source practitioners also
promote stringent, independent code analysis during a software project's
development, they focus on in-depth review by a few and not primarily the
number of "eyeballs".

Although detection of even deliberately inserted flaws can be attributed to
Raymond's claim, the persistence of the Heartbleed security bug in a critical
piece of code for two years has been considered as a refutation of Raymond's
dictum. Larry Seltzer suspects that the availability of source code may cause
some developers and researchers to perform less extensive tests than they
would with closed source software, making it easier for bugs to remain. In
2015, the Linux Foundation's executive director Jim Zemlin argued that the
complexity of modern software has increased to such levels that specific
resource allocation is desirable to improve its security. Regarding some of
2014's largest global open source software vulnerabilities, he says, "In these
cases, the eyeballs weren't really looking". Large scale experiments or peer-
reviewed surveys to test how well the mantra holds in practice have not been
performed.

[https://www.datamation.com/open-source/does-heartbleed-
dispr...](https://www.datamation.com/open-source/does-heartbleed-disprove-
open-source-is-safer-1.html)

[https://www.esecurityplanet.com/open-source-security/why-
all...](https://www.esecurityplanet.com/open-source-security/why-all-linux-
security-bugs-arent-shallow.html)

~~~
countryslicker
That is a lot of words to say that it doesn't help to have access to the
source code if qualified people don't perform adequate audits.

In this regard, open source software is still better. Google "Heartbleed".

When a neglected piece of critical infrastructure code was finally examined,
it was shown to have serious flaws. Top talent immediately shifted their focus
and began sorely needed maintenance. Nobody asked permission. Nobody called
their lawyer. They just got to work to get-er-done. I think Theo was among
those to help resolve issues.

I am grateful for those eyeballs and those fingers.

------
dm319
Some gems:

> "I've seen [visual] editors like that, but I don't feel a need for them. I
> don't want to see the state of the file when I'm editing."

-Thompson on the superiority of ed to editors such as today's vi or emacs, as summarized by Peter Salus in A Quarter Century of UNIX (Addison-Wesley, 1994).

> The X server has to be the biggest program I've ever seen that doesn't do
> anything for you.

and I'm glad linux has come to meet his expectations over the years...

> Microsoft is really unreliable but Linux is worse. In a non-PC environment,
> it just won't hold up. If you're using it on a single box, that's one thing.
> But if you want to use Linux in firewalls, gateways, embedded systems, and
> so on, it has a long way to go.

-1999

>I run Linux. And I occasionally look at code, but rarely, so I can't really
tell whether the quality has gotten better or not [since 1999]. But certainly
the reliability has gotten better.

-2009

~~~
OskarS
That first one you quoted is pretty incredible. It's hard for me to even
imagine writing many thousands of lines of code in ed today.

~~~
Santosh83
I have no idea but perhaps in those days (60s & 70s), they wrote code on paper
first before feeding it into the computer? If so, then ed was probably
tolerable. It's nigh unthinkable these days of course.

~~~
Gracana
Line editors aren't so bad, and the Unix ed is pretty awesome. It's easy to
list and read through code, and it has powerful search-and-replace. You just
have to get used to using search or cursor movement commands for making edits.
The programming I've been doing lately has all been in CP/M, using its "ed",
which is a very simple line editor, and I still haven't felt the need to write
things out beforehand. I think you just get used to it.

~~~
kovek
With ed you can do cursor movements? How? I meant to ask people how they use
ed and compile an article, so that people would have a better idea of what's
possible and what is not with ed. Could we talk about how ed can be used?

~~~
Gracana
Oops, sorry to mislead you. I was wrong about Unix ed. I knew it had powerful
regex and line addressing, I figured it had character addressing/cursor
positioning too. CP/M ed has basic search and replace, but most work is done
with cursor movements.

~~~
DonHopkins
ITS Emacs has "glass tty" support that responded to keystrokes exactly as
normal, but only showed one current line by repainting it without using any
fancy control characters or escape codes, just backspace, carriage return and
line feed. (That's what it meant to be "glass".) So ^L would refresh just the
current line, and you could ^N down through a file to print it out line by
line.

[http://www.finseth.com/craft/#c2](http://www.finseth.com/craft/#c2)

~~~
kps
Vi likewise has ':open'.

------
dorfsmay
This was a huge surprise for me, making me experience a cognitive dissonance.

> I am a very bottom-up thinker. If you give me the right kind of Tinker Toys

I am a boitom-up thinker, I cannot imagine a house if I don't know about what
kind of bricks exist, which we use and why!

I have blamed that trait for the main reason for stagnating in my carreer
while idealising people like Thompson, due to their achievements.

~~~
Sacho
Huh, I feel exactly the same way. I've never been employed in a position where
the bottom-up approach was the one people were actually looking for, so I've
always felt guilty about my work ethic - I feel like I'm satisfying my own
curiosity on company time.

~~~
dorfsmay
I don't feel like not adding value: Being a bottom-up thinker means I can get
to the root cause of hard problems, or even warn and prevent bad solutions. My
problem is that I have always felt that only top-down thinkers can do
architecture and design. This article shows that this is not the case.

~~~
DonHopkins
And that's why I named my company:

[http://ground-up-software.com/](http://ground-up-software.com/)

------
chauhankiran
When I see devs are talking/fighting for tech trends or programming patterns
or frameworks, Ken's quote ( or message you say ) come in my mind always:

"Many if not most of the software we use is probably obsolete according to the
latest design criteria. Most users could probably care less if the internals
of the operating system they use is obsolete. They are rightly more interested
in its performance and capabilities at the user level."

From The Tanenbaum-Torvalds Debate[0]

[0].
[http://www.oreilly.com/openbook/opensources/book/appa.html](http://www.oreilly.com/openbook/opensources/book/appa.html)

~~~
metaobject
Of course users don't really care about the design principles used to organize
source code. They care about features. The design principles are a concern for
the developers, and if some standard isn't obeyed, then the users may not get
those new, stable features they're craving.

------
denzil_correa
> I must say the Linux community is a lot nicer than the Unix community. A
> negative comment on Unix would warrent death threats. With Linux, it is like
> stirring up a nest of butterflies.

Interesting comment on the Linux, UNIX communities.

~~~
DonHopkins
Death threats for negative comments on Unix??! Pththththt!

The Unix Haters Handbook [1] was dedicated to Ken and Dennis, and Dennis [2]
wrote the anti-forward [3].

[1] [http://simson.net/ref/ugh.pdf](http://simson.net/ref/ugh.pdf)

[2]
[http://www.donhopkins.com/home/images/DennisRitchiePthththth...](http://www.donhopkins.com/home/images/DennisRitchiePththththth.png)

[3]
[https://news.ycombinator.com/item?id=3106271](https://news.ycombinator.com/item?id=3106271)

    
    
        From: dmr@plan9.research.att.com
        Date: Tue, 15 Mar 1994 00:38:07 EST
        Subject: anti-foreword
    
        To the contributers to this book:
    
        I have succumbed to the temptation you offered in your preface: I do
        write you off as envious malcontents and romantic keepers of memories.
        The systems you remember so fondly (TOPS-20, ITS, Multics,
        Lisp Machine, Cedar/Mesa, the Dorado) are not just out to pasture,
        they are fertilizing it from below.
    
        Your judgments are not keen, they are intoxicated by metaphor. In
        the Preface you suffer first from heat, lice, and malnourishment, then
        become prisoners in a Gulag. In Chapter 1 you are in turn infected by
        a virus, racked by drug addiction, and addled by puffiness of the
        genome.
    
        Yet your prison without coherent design continues to imprison you.
        How can this be, if it has no strong places? The rational prisoner
        exploits the weak places, creates order from chaos: instead, collectives
        like the FSF vindicate their jailers by building cells almost com-
        patible with the existing ones, albeit with more features. The
        journalist with three undergraduate degrees from MIT, the researcher
        at Microsoft, and the senior scientist at Apple might volunteer a few
        words about the regulations of the prisons to which they have been
        transferred.
    
        Your sense of the possible is in no sense pure: sometimes you want
        the same thing you have, but wish you had done it yourselves; other
        times you want something different, but can't seem to get people to
        use it; sometimes one wonders why you just don't shut up and tell
        people to buy a PC with Windows or a Mac. No Gulag or lice, just a
        future whose intellectual tone and interaction style is set by Sonic the
        Hedgehog. You claim to seek progress, but you succeed mainly in
        whining.
    
        Here is my metaphor: your book is a pudding stuffed with apposite
        observations, many well-conceived. Like excrement, it contains
        enough undigested nuggets of nutrition to sustain life for some. But
        it is not a tasty pie: it reeks too much of contempt and of envy.
        Bon appetit!

~~~
craftyguy
> Pththththt

I've been trying to figure out what this is supposed to sound like.

~~~
combatentropy
[https://upload.wikimedia.org/wikipedia/commons/8/8b/Blowing_...](https://upload.wikimedia.org/wikipedia/commons/8/8b/Blowing_a_raspberry.ogv)

~~~
craftyguy
Excellent

------
Waterluvian
On his quote about educational value of UNIX and being so small you can go
through it line by line to lean what it does. Can someone recommend a version
appropriate for doing this?

~~~
AimHere
As well as Minix, which is intended as just such a teaching aid and comes with
a textbook, there's the Lions book, which is a complete annotated source
listing of an early Unix, and which was passed around as nerd Samizdat for a
while, until the Unix copyright status was changed.

[http://www.lemis.com/grog/Documentation/Lions/index.php](http://www.lemis.com/grog/Documentation/Lions/index.php)

~~~
Waterluvian
Thank you, and thank you everyone else for all these resources. My wife will
be rather displeased that I'm not playing Divinity 2 with her this holiday
weekend ;)

------
acqq
It seems this is a real story from the time Ken Thompson started to work at
Google:

"Q: I know Google has a policy where every new employee has to get checked out
on languages before they're allowed to check code in. Which means you had to
get checked out on C [which you co-created].

Thompson: Yeah, I haven't been.

Q. You haven't been! You're not allowed to check in code?

Thompson: I'm not allowed to check in code, no... I just haven't done it. I've
so far found no need to."

[https://www.theregister.co.uk/2010/04/21/ken_thompson_take_o...](https://www.theregister.co.uk/2010/04/21/ken_thompson_take_our_test/)

"So Mr Thompson, you say you have some programming skills..."

Does anybody have any update on that?

~~~
packetslave
If you don't have readability in a language, you just have to get a code
review from someone who does have readability. You can still check in your
code.

~~~
acqq
The topic was that apparently Google insisted on testing Ken Thompson if he
knows C, because policy.

Which if true means a stubborn bureaucracy running uncontrolled there.

It's like hiring Andrew Tanenbaum and then insisting on him taking a test to
check if he "knows" Linux.

My question was in sense, did anybody right the wrong, once even the media
recognized the absurdity of that particular case.

~~~
oxryly1
I think you meant Linus Torvalds.

~~~
acqq
Thompson created B, not C.

C didn't exist as he wrote the first code of what later was named Unix.

------
petercooper
If you like this sort of thing, we've been running a Twitter account for
several years dedicated to pithy programming related quotes:
[https://twitter.com/codewisdom](https://twitter.com/codewisdom)

~~~
vram22
Followed it.

iamdevloper (
[https://twitter.com/iamdevloper](https://twitter.com/iamdevloper) ) is good
too.

DEVOPS_BORAT (
[https://twitter.com/DEVOPS_BORAT](https://twitter.com/DEVOPS_BORAT) ), which
was often hilarious, seems to have stopped a while ago.

------
imglorp
An observation about

> The press, television, and movies make heroes of vandals by calling them
> whiz kids. ... There is obviously a cultural gap. The act of breaking into a
> computer system has to have the same social stigma as breaking into a
> neighbor's house. It should not matter that the neighbor's door is unlocked.

If only it was just kids now. What's changed in the decades since is we have
serious professionals beating on our doors now: state actors, mafia, miners,
spammers, malvertisers, id thieves. They're well funded and organized.
Amateurs don't stand a chance.

~~~
darkcube
well, those whiz kids had to grow up to be someone, someday...

------
CalChris
_When in doubt, use brute force._

The first time I read that it was in something about Belle playing Q v R
against Walter Browne. Belle had the R and Browne had to mate in 50 moves.
Seven piece tablebases are achievable now.

~~~
bgun
Also seems equivalent to pg's "Do things that don't scale" maxim.

------
henrik_w
Three quotes are from the book "Coders at Work". I can really recommend that
one, very interesting read. My review of it:
[https://www.amazon.com/gp/review/R2OV0TG7MJGXGL](https://www.amazon.com/gp/review/R2OV0TG7MJGXGL)

------
corpMaverick
> "I'd spell creat with an e."

:) My favorite. Implying that everything else is great.

~~~
m_sahaf
And he did spell it with an e afterall :)
[https://twitter.com/_rsc/status/897555509141794817](https://twitter.com/_rsc/status/897555509141794817)

------
gruturo
Took me a few moments of frantic checking the linked article, plus Google, to
make sure this wasn't an obituary.

~~~
gruturo
Mods - thanks for changing the subject, adding "quotes".

------
feelin_googley
"It's way too big, way too complex."

------
scriptproof
> I think the open software movement (and Linux in particular) is laudable.

~~~
OskarS
He didn't say "proprietary code is evil" or "property is theft", dude's not
Richard Stallman. Also, Google does plenty of open source stuff, including Go,
which Thompson works on.

~~~
scriptproof
I am more thinking to Steve Ballmer. But I should have been more explicit.

