Corey's Tumblr Ramblings RSS

Archive

Dec
26th
Fri
permalink

Overheard

Guess where I heard this:

Question: What does this…decision-making through abstraction layers do to the maxim of do all your design before you write any of your code?

Lecturer: Well… that’s someone’s axiom, and I bet that’s the axiom of someone who hasn’t implemented very large computer systems very much.

Me: Oh, Snap!


Yup, Structure and Interpretation of Computer Programs (SICP), with Ableson delivering the smackdown. I’m sad (on many levels), because I’m finding that all of my really cool ideas are encapsulated in the following quote (Greenspun’s 10th Rule):

Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp.


Except, replace “C or Fortran program” with “Corey’s Super Sweet Designs.” :)


Why am I sad?

I would think I would be sad because none of the stuff I had done was really new. However, on the other hand, this means that I’ve worked myself (through putting bunches of other ideas together) to make my way toward the ideas contained in LISP. That’s pretty awesome, if you ask me. Sure, it was informally-specified, not even close to half and probably buggy, but it was stuff I had fused together.

No, the real reason I am sad is that the SICP lectures are over 25 years old. Okay, they probably weren’t available digitally for a while, but the ideas must have been floating around in book, article and lecture form for many years before these videos were recorded. They have to have been, since the ideas are so well-formed. And, it isn’t just about big design up front; a ton of other ‘new’ ideas are in this stuff.

Okay, I wasn’t around back then, but I know a bunch of people who were. I’m going to find out what people’s opinions on this are. I’m going to people who were heavy LISP people and heavy FORTRAN people to find out where we lost this secret knowledge; lost it to the point where we are just discovering it again, rather than being introduced to it early.

And, as usual, I’m going to preemptively blame C++, as I do for most things.