[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Parens Shock (was Re: bindings and assignments)

Michael Vanier <mvanier@cs.caltech.edu> writes:
> I agree that saying "people who don't use lisp are stupid" is, well,
> stupid.  For one thing, I can well understand someone preferring the more
> statically-typed world view of java to the more dynamically-typed world
> view of lisp.  What bothers me is when people take one look at lisp, go
> "oh, no, look at all those parentheses!" and run screaming.  Yes, these are
> perhaps social issues, but it's surprising how much of peoples' preferences
> are based on what to me are very superficial issues like this.

It isn't superficial. When you're 15 or 16, you can learn any new
programming language in hours. When you're, say, 25 or 35 or 45, the
brain starts to slow down, habits become entrenched, and things are
not remembered with the sponge-like rapidity that you used to
have. You also don't have as much spare time -- your wife doesn't like
you staring all night at a text when you could be paying attention to
her, your friends call you up to go and have a beer with them, the
kids are screaming, etc.

As a result, the investment in learning a new notation gets higher and
higher with time, and requires more and more practice to set into
mental cement. If you don't see a very good reason to make the
investment, it can become hard to get yourself to actually make
it. Then, of course, if you don't know the new notation, you're
unlikely to push it on your next project at work.

Keep in mind that using a notation every day really does make an
enormous difference in readability. I have trouble going through old
texts that use Pascal-style notation for explaining algorithms even
though maybe 20 years ago I used Pascal every day. I've been going
through Appel's "Compiling with Continuations" recently, and although
the ML syntax isn't hard it is certainly slowing me down dramatically
because I'm not astoundingly familiar with it.

So, for people who didn't learn Lisp when they were very young the way
I did, it doesn't necessarily feel natural off the bat, and the
investment needed to get comfortable needs high justification to
them. This isn't stupid -- this is them being SMART.  There are dozens
of programming languages that claim cult followings (even, to this
day, APL), and if they let themselves be persuaded easily, they'd be
learning language after language rather than doing other things with
their lives (including writing real programs). Not joining cults is
part of the brain's memetic immune system -- don't disparage people
for having functioning defense mechanisms.

We shouldn't think of these people as "stupid" or "obstinate" because
they're just defending their time effectively. What we should do is go
out there, recruit our army of those who already know and love Lisp,
and demonstrate that the benefits of using it are so high that there
is a good reason for people who don't know it yet to jump on the
bandwagon with us.

That means, by the way, spending more time writing good tools and
libraries, and less time wondering why the fools (who are often top
grade hackers, by the way) don't all use Lisp. That also means having
the courage of your convictions and pushing Lisp for projects you have
involvement with, of course carefully selling the merits and doing
small targeted demos so people don't have to take it on faith.

Incidently, the prospects for Lisp are better than they have ever been
before. There are now generations of programmers who used SICP in
their intro to computer science texts and then forgot about Lisp
thereafter. We can get them back on board pretty quickly if we give
them reason to join.

Just one more thing: the golden age never was. Most programmers back
before the AI Winter never saw Lisp in their whole careers -- they
wrote in languages that are now too horrible to remember let alone
mention. Symbolics machines were like jet fighter planes -- incredibly
expensive toys that cost a multiple of an engineer's annual salary
which only a privileged few ever got to use.  Compiler technology and
the language itself are far better now, use of the language is far
more economical now than ever before, and a far larger number of
people have had exposure to it than ever before. This is not a time to
be lamenting what might have been -- this is finally a time to seize
the day.

Perry E. Metzger		perry@piermont.com