[racket] Why isn't at-exp the default?

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sat Nov 16 20:27:00 EST 2013

Back when we introduced `#lang racket`, we could have included
@-notation by default, but I think we were focused on making `#lang
racket` a small shift from `#lang scheme`. And `#lang scheme` was too
long ago.

Backward compatibility rules out adding @-notation to `#lang racket`,
but I agree that it would be better to include @-notation in future
languages.

At Wed, 13 Nov 2013 22:06:11 -0500, Greg Hendershott wrote:
> Lately my appreciation for `#lang at-exp ...` has grown. I've even
> started to write things like:
> 
> (printf "The ~a and the ~a and the ~a\n" x y z)
> 
> instead as:
> 
> (displayln @~a{The @x and the @y and the @z})
> 
> When there's more than one or two items, this is a lot easier to write
> (and change later). No more need to keep two lists in the same order.
> 
> Although I'm aware Ruby has something similar, I haven't pined for it.
> It's just one example. Another is multi-line text fragments. In
> general:
> 
> (define x @~a{One
>               Two
>               Three})
> 
> is waaaay nicer -- and editor indent friendly -- than reader "here"
> strings like:
> 
> (define x #<<EOF
> One
> Two
> Three
> EOF
> )
> 
> And there are more examples.
> 
> I'm not complaining about the need to type "at-exp".
> 
> But my question is, why hasn't at-exp at some point been made the
> default reader for Racket?
> 
> Is it solely due to backward compatibility, the risk that existing
> programs use @ in identifiers, like `(define @var)`?
> 
> Or is there some hidden cost or additional gotcha I should keep in mind?
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.