[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Parens Shock
> 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.
What an excellent analysis!
This is why I've been pouring over the computational linguistics
literature so I can make Clear look like the English transliteration of
the notation of your language of choice.
Ideally, it will resemble what you hear at conferences when the
speaker transliterates a screen of Haskell or Python or Scheme into the
CS-dialect of English.
Verbose - perhaps.
Ambiguous and Unparsable - not.
Manageable with a good editor supporting terse secondary notations
or Alice 2 style tiles - definitely.
Accessible to Programmers fluent in a range of languages who don't
have time to deal with yet another *symbolic* notation - yes and
critical to adoption.
Amenable to skinning over other languages - yes, treat it as a
literate programming environment rather than a language per se and use
known machine translation techniques to parse some existing language,
reduce its code to a logical form, and then paraphrase the parse tree in
the canonical CS-English dialect.
Usable by End Users - yes, when mediated through language levels a
la PLT Scheme.
Wide scale adoption strategy - follow the Newton Script model and
embed it in a new End User Computing Platform initially targeting
researchers who can afford to use non-standard tools and
students/faculty who could view the reference platform as a pedagogical
tool for learning CS. Then license it to industry as a secure
alternative to today's mess.