Hmm, I filled out this Lisp survey a while ago and now I'm in the top ten list.
I guess it is pretty funny how they kept pulling the rug from under us in high school, switching languages no less than 3 times for the comp sci curriculum. We were probably the last generation to have learned Pascal as our first language and I still have fond memories of it.
Still, the best memories I have are how quickly me and my friend gobbled up C++ syntax and felt like we were on top of the programming world. Then my teacher decided to throw a curve ball at us and nudged us into learning Scheme. He handed me this ancient book, dog-eared with the cover hanging off loose pieces of masking tape. I still remember the first conversation about it:
Teacher: Here, you should try and learn Scheme, they teach it in first year at UBC and I had a pretty tough time learning it. It'll help you if you get a headstart. It's what they teach at MIT too.
Me: Scheme?
Teacher: A dialect of LISP--ever heard of it? Lots of irritating superfluous parentheses. *chuckle* Just kidding.
Later, me and my friend, who really thought we'd be able to grasp anything in CS looked at it and were completely dumbfounded.
Her: What the hell? Why is everything backwards? (prefix notation isn't quite backwards, but hey, this is highschool.)
Me: I don't know? It's like they went out of their way to do everything different. But at least this way you never need to worry about order of operations.
Her: Oh yeah, but why would they do that?
Me: *shrug* There's something else too. He [the teacher] says there's no real loops in Scheme. He keeps laughing and saying "just use recursion".
Her: She looks at me like I'm undergoing self-torture.
Me: Yeah I know, I don't get it either.
In retrospect, I'm really glad he exposed us to it. It seemed to have humbled us and broadened our horizons a bit. Although later on she went into engineering and never did any programming beyond some assembly, some C and some Java, and I ended up at a university intent on being practical and teaching Java, then C and C++....
I now realize I neglected to mention one thing in the survey. Perl. I picked up the syntax quickly and worked my way through the camel book. What stood out was how Larry Wall would draw parallels between his language and natural languages. But the syntax was undeniably terse and oftentimes unreadable, which makes you wonder... how can he justify his design choices through natural languages when there's no language you or I speak that's incomprehensible and confusing to another native speaker? Or where you write something and can't read it a month down the road?
The bad taste it left in my mouth ended up being one of the reasons I went off to learn Lisp again.
// posted at 18:37. permalink comments
Starts out a little cheesy, but ends in a very nice surprise ending--The Parable of the Languages.
LISP would have spoken, but it had caught a glimpse of itself in the pond and fell in when it tried to meet itself coming. And Java was too busy trying to clean a bag out of Babbling Creek.
// posted at 05:36. permalink comments