[racket] `def' ?

From: Luke Vilnis (lvilnis at gmail.com)
Date: Fri May 11 16:49:22 EDT 2012

Asserting that the keyword "def" would confuse beginners is a red herring.
Scheme is AFAIK the only language whose variable binding form is _not_ some
kind of an abbreviation. C#/JavaScript use "var". Heck, D and C++11 use
"auto", which is truly bizzare. "def" is a very common keyword to use for
this purpose (Clojure, Scala, Groovy, Java, Ruby - the list goes on).

There are valid arguments against introducing the syntax - Scheme
tradition, the abundance of other forms that all include "define", avoiding
redundancy, the fact that languages in general do not have a bunch of
equivalent keywords for binding variables. But
readability/familiarity/understandability is not one of them. I would be
flabbergasted if the words {"let", "var", "val", "def", ...} were confusing
to any beginner.

On Fri, May 11, 2012 at 4:27 PM, Jukka Tuominen <
jukka.tuominen at finndesign.fi> wrote:

>
> I can't say I like the idea for usability and compatibility reasons.
>
> Usability:
>  - Try this idea exaggerated: def lmbd cwcc cdr cond tgt gg param ...
>   Maybe for hard core pros, but this doesn't make the language
>   very approachable for the beginners. I made a few new ones so
>   even the pros could have a taste of it :)
>
> Compatibility:
>  - What if I'd like to run the code with a Racket a few
>   versions back? Or even dare to try it with another dialect of scheme?
>
> What about using key shortcuts, auto completion, personal mappings
> or other IDE means to end up having in all above cases identical and
> therefore compatible source code?
>
> br, jukka
>
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20120511/10902f4a/attachment-0001.html>

Posted on the users mailing list.