Ken Thompson on Obfuscation in Modern Code

Suppose someone describing something to me from postulates like. "Here's a computer and here are the op codes." I can visualize the structure of programs and how things are efficient or inefficient based on those op codes, by seeing the bottom and imagining the hierarchy. And i can see the same thing with programs. If someone shows me library routines or basic bottom-level things, I can see how you can build that into different programs and what's missing—the kinds of programs that would still be I hard to write. So I can envision that pyramid, and the problem is to try and decompose it and get get the bottom pieces.

Modern programming scares me in many respects, where they will just build layer after layer after layer that does nothing except translate. It confuses me to read a program which you must read top-down, It says "do something." I go find "something." And you read it and it says, "do something else" and you go find something else" and it goes back to the top maybe. And nothing gets done. It's just relegating to a deeper and deeper level. I can't keep it in my mind--I can't understand it.


Modern programming principles involve a great deal of delegation, resulting in code that is very hard to follow.

Folksonomies: programming computer science coding

/technology and computing/hardware/computer (0.574977)
/science/mathematics/geometry (0.569565)
/art and entertainment/music/singing (0.567179)

op codes (0.960277 (negative:-0.106366)), Modern programming principles (0.877352 (positive:0.321606)), basic bottom-level things (0.841019 (neutral:0.000000)), Modern programming scares (0.831656 (positive:0.430930)), Ken Thompson (0.692307 (positive:0.321606)), great deal (0.688395 (positive:0.321606)), deeper level (0.675318 (neutral:0.000000)), library routines (0.660743 (neutral:0.000000)), different programs (0.628277 (neutral:0.000000)), layer (0.571205 (neutral:0.000000)), postulates (0.489013 (negative:-0.653951)), Obfuscation (0.479873 (positive:0.321606)), delegation (0.469271 (positive:0.321606)), respects (0.468203 (positive:0.430930)), hierarchy (0.460774 (neutral:0.000000)), translate (0.457747 (neutral:0.000000)), pyramid (0.454903 (positive:0.516380)), kinds (0.450983 (neutral:0.000000)), structure (0.449522 (positive:0.228827)), problem (0.448282 (negative:-0.267588))

Ken Thompson:Person (0.979291 (positive:0.321606))

Computer program (0.963074): dbpedia | freebase
Source code (0.591919): dbpedia | freebase | opencyc
Language (0.558537): dbpedia | freebase | opencyc
Split Enz (0.542929): dbpedia | freebase | yago | musicBrainz
2008 albums (0.540119): dbpedia
Code (0.533042): dbpedia | freebase
Thing (0.532817): dbpedia
Ken Thompson (0.532586): dbpedia | freebase | yago

 Coders at Work: Reflections on the Craft of Programming
Books, Brochures, and Chapters>Book:  Seibel , Peter (2009-09-16), Coders at Work: Reflections on the Craft of Programming, Apress, Retrieved on 2011-04-21
  • Source Material []
  • Folksonomies: information technology programming computer science