In my experience, the heaviness of Racket doesn't come from words like
"define", etc.  It comes in certain categories of programs that deal
extensively with strings, vectors, and structured data.  For example,

initials = person[i].firstname[0] + person[i].lastname[0]

This is very readable and useful.  It can be written quickly and is
read and understood easily The overloading of "+" (or your operator of
choice) and the implicit coercion of characters to strings is exactly
what is wanted here.  Even evaluating person[i] more than once doesn't
clutter up the expression.

Compare this to the equivalent Racket:

(define initials
  (string-append (string (string-ref (id-firstname (vector-ref person i)) 0))
                 (string (string-ref (id-lastname (vector-ref person i)) 0))))

For this sort of thing, the Racket version is much harder to write,
read, and verify.  It would be nice to have something akin to
at-expressions that would allow such expressions to be written more
clearly.

Justin

On Thu, May 10, 2012 at 4:00 PM, Matthias Felleisen
<matth...@ccs.neu.edu> wrote:
>
> I will assert something about readability:
>
>  Racket programs look heavy when compared with Haskell programs.
>
> This is probably true for Python instead of Haskell, too. It is also true for 
> ML. I conjecture that part of that heaviness comes from wide lines, long 
> names, deep nesting. Who knows. I don't even know how to measure this kind of 
> property.
>
> At this point, I can express certain ideas more easily in Racket than in 
> Haskell, Python, ML or whatever, which is why I am fine. But if this 
> advantage ever disappeared, heaviness would definitely be a factor to weigh.
>
> -- Matthias
>
>
>
>
>
>
> On May 10, 2012, at 3:49 PM, ozzloy-racket-users wrote:
>
>> i didn't assert that word length has nothing to do with readability, just 
>> that word frequency has more impact on reading time than word length.
>>
>> On Thu, May 10, 2012 at 3:39 PM, Luke Vilnis <lvil...@gmail.com> wrote:
>> I can only speak for myself but I think it's a bit much to assert that word 
>> length has nothing to do with readability. Heck, maybe that's even true for 
>> you, but not for everyone. I have certainly felt it to be an issue. If the 
>> "define" keyword was 50 letters long it would definitely have an impact on 
>> my ability to read code - it seems to be an issue of degree, not existence.
>>
>> On Thu, May 10, 2012 at 3:26 PM, ozzloy-racket-users 
>> <ozzloy+users_racket-lang_...@gmail.com> wrote:
>> am i the only one that thinks not having abbreviated names for anything is 
>> good?
>> i like not having "def".  especially if it's going to be redundant.
>> i see this as a slippery slope i don't want to go down.
>> it annoys me when switching to other languages to have to ask: which way of 
>> shortening "function" does this language go with?  was it "fn"? maybe "fun"?
>> if the language has a strict policy of not using short versions of words, i 
>> don't have to guess.
>>
>> as for "def" being easier to read than "define", that's not true.  word 
>> frequency has more impact on reading time than word length for normal 
>> reading.  having more aliases makes both less frequent, so adding "def" 
>> could plausibly make reading both take longer.  most people read whole words 
>> at a time, rather than letter-by-letter.
>>
>>
>> On Thu, May 10, 2012 at 2:56 PM, Grant Rettke <gret...@acm.org> wrote:
>> There is always pretty mode in Emacs.
>>
>> On Thu, May 10, 2012 at 1:45 PM, Ray Racine <ray.rac...@gmail.com> wrote:
>> > FYI for those who may not know.  Racket supports λ as an alias for lambda.
>> >  ctrl-\ in DrRacket.
>> >
>> >
>> > On Thu, May 10, 2012 at 1:59 PM, Nikita B. Zuev <nikit...@gmail.com> wrote:
>> >>
>> >> +1 for `def' as alias for `define'.
>> >> May I also suggest `fun' for `lambda' alias?
>> >> Three letter names are the best =)
>> >>
>> >> (well one can always do it with require rename-in)
>> >>
>> >> --
>> >> Regards,
>> >> Nikita B. Zuev
>> >> ____________________
>> >>  Racket Users list:
>> >>  http://lists.racket-lang.org/users
>> >
>> >
>> >
>> > ____________________
>> >  Racket Users list:
>> >  http://lists.racket-lang.org/users
>> >
>>
>>
>>
>> --
>> http://www.wisdomandwonder.com/
>> ACM, AMA, COG, IEEE
>>
>> ____________________
>>  Racket Users list:
>>  http://lists.racket-lang.org/users
>>
>>
>> ____________________
>>  Racket Users list:
>>  http://lists.racket-lang.org/users
>>
>>
>>
>> ____________________
>>  Racket Users list:
>>  http://lists.racket-lang.org/users
>
>
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to