Aha! moments
- From: Zach Beane <xach@xxxxxxxx>
- Date: 27 Sep 2006 17:12:44 -0400
Here are a few things that triggered major Aha! moments for me, in no
particular order.
- reading the source of cl-ppcre, which illustrated
- run-time compilation (to chains of closures) without using
COMPILE or COMPILE-FILE
- parsing regular expression strings, with nice error-reporting
via conditions
- that Lisp solutions to practical problems can be concise,
comprehensible, and *fast*
- reading Keene's CLOS book
- finding an application of continuable errors; it replaced a
convoluted scheme of checking return values at multiple levels
with a simple handler-bind wrapper.
- realizing that file formats and communication protocols are just
bits on disk or on a wire or sometimes even in memory, and Lisp
is pretty good at generating the right bits and octets; inspired
by (among other stuff):
- learning that CLX is a Lisp program, not a binding to the C xlib
- learning that Marc's CL-PDF is a Lisp program
- learning about Frode's binary-types
- reading Peter's chapters on parsing binary files
- reading Will Hartung's "Guerilla Lisp Opus"
- realizing that most Common Lisp implementations are mostly
written in Common Lisp
A few themes:
- Despite conceptually understanding how tools like CLOS and
closures and conditions work, it took a tricky problem solved
neatly by the tool to really make an Aha! moment
- Aha! moments have made complicated tasks simpler and
unapproachable tasks approachable (given the right amount of time
and effort). They take the magic out of things. (Philip Greenspun
used to say that his course would teach undergrads how to build
Amazon in a semester; despite the hyperbole, it really did take
the mystery out of how useful web applications can be
constructed.)
Advice:
- Be actively curious about how interesting things work ("how can
cl-ppcre be faster than Perl?")
- Be broadly aware of the tools available, and don't worry about
immediate application
- Don't settle for tedium (it's hard to have a breakthrough if you
have resigned yourself to something that feels substandard)
- People who write one interesting thing usually keep it up; find
and watch interesting people (trickle-down Aha! effect?)
Minor delights:
- format tricks (~v and ~{~^~} specifically)
- inspecting a GF object in slime
What are some of the things that triggered your own Aha! moments? What
sort of stuff delighted you when you discovered it? What advice would
you give people who want to have more Aha! moments?
Zach
.
- Follow-Ups:
- Re: Aha! moments
- From: Thomas Stenhaug
- Re: Aha! moments
- From: mark.hoemmen@xxxxxxxxx
- Re: Aha! moments
- From: GP lisper
- Re: Aha! moments
- From: Rob Warnock
- Re: Aha! moments
- From: K.S.Sreeram
- Re: Aha! moments
- From: Jack Unrue
- Re: Aha! moments
- From: Zach Beane
- Re: Aha! moments
- Prev by Date: Re: [CLOS] Ensuring a method exists
- Next by Date: Re: Java inline classes in lisp/clos
- Previous by thread: Lisp/Python/AJAX programmers wanted
- Next by thread: Re: Aha! moments
- Index(es):
Relevant Pages
|
|