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.
Notes:
Modern programming principles involve a great deal of delegation, resulting in code that is very hard to follow.
Folksonomies: programming computer science coding
Taxonomies:
/technology and computing/hardware/computer (0.574977)
/science/mathematics/geometry (0.569565)
/art and entertainment/music/singing (0.567179)
Keywords:
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))
Entities:
Ken Thompson:Person (0.979291 (positive:0.321606))
Concepts:
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