[racket] `def' ?

From: jukka.tuominen at finndesign.fi (jukka.tuominen at finndesign.fi)
Date: Fri May 11 17:16:11 EDT 2012

My point was not so much about def in particular, or any single change.
Rather, one's personal or even collective development should not lead to
making the language gradually more difficult to beginners IMO.

br, jukka


> 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
>>
>



Posted on the users mailing list.