?

Log in

No account? Create an account
What's so great about Scheme? - Lindsey Kuper [entries|archive|friends|userinfo]
Lindsey Kuper

[ website | composition.al ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

What's so great about Scheme? [Jun. 14th, 2009|10:09 pm]
Lindsey Kuper

So, there's this guy who was my classmate this year in both B521 and B621. He seems to spend a lot of time at the IU library, just like I do. In fact, on any given trip to the library, it's even odds I'll see him there -- often enough that I've come to expect it, anyway. Every time this happens, we end up getting into a conversation, which is quite nice.

The last time it happened, which was two days ago, it occurred to me that every time, the core of our conversation has been some variation on "What's so great about Scheme?"

This isn't apropos of nothing. We've been taking Scheme courses together for a year, so it's reasonable that we might talk about it at least some of the time. But it surprises me that he keeps asking me what's so great about Scheme, because I don't know.

What's so great about Scheme? Well, there are a lot of things I could name: it gives you a handle on the continuation, it's extensible with macros, it optimizes tail calls, there's hardly any syntax to learn, and so on. And I dutifully list them off for him. But I feel a little deceitful doing it, because none of those things are why I like Scheme -- at least, not in a conscious way. My tastes are unsophisticated: I like Scheme because it feels good. Maybe it feels good because it's a great programming language, but how would I know? It's entirely possible that it just feels good because it's familiar.

To me, the thing that's especially mind-blowing about this person is that he's spending all these nights in the library trying to like Scheme. It's not just homework he's doing -- he's working on his own projects, experimenting, trying to figure out what the secret sauce is that makes other people so excited about Scheme. This amazes me. If I had to work that hard at liking something, I think I'd probably just give up and not like it.

LinkReply

Comments:
[User Picture]From: lindseykuper
2009-06-15 05:45 am (UTC)
I can imagine this really appealing to someone who asks "why" all the time.

Yeah. With Scheme, you can figure out Why, if you want to. The answer isn't just "Because, dammit."

Or we can trade it for neither of these things...

Heh. Actually, I've been reading the Tanenbaum operating systems book, and, appallingly, it's making me want to write Java. Because of synchronized.

Promise not to tell.
(Reply) (Parent) (Thread)
[User Picture]From: pmb
2009-06-15 05:51 am (UTC)
Synchronized is good (very good, actually) but not enough. Try Smalltalk! It has Scheme's consistency with the power of synchronized and threads and stuff like that. It's syntax is funky, but if you can deal with Scheme, you should be fine.
(Reply) (Parent) (Thread)
[User Picture]From: lindseykuper
2009-06-15 08:42 am (UTC)
Or Erlang, even!
(Reply) (Parent) (Thread)
[User Picture]From: floydcollins
2009-06-15 03:49 pm (UTC)
Wow, does Erlang have *really really* ugly syntax. Superior concurrency, but not much else feels good, in my experience.
(Reply) (Parent) (Thread)