tl;dr DON'T PANIC

At RacketCon today, after summarizing the state of work on Racket CS, I
recommended that we next explore the possibly of changing to an
infix-oriented syntax in "Racket2".

You can find the recording here:

 https://www.youtube.com/watch?v=dnz6y5U0tFs

Start at 32:27 for the part about what Racket2 could be.

I'll produce a text version of the rationale soon. For now, I'd like to
offer a few clarifications:

 * There is no specific proposal for a new syntax, yet. Our next step
   will be creating a process to explore a possible new syntax.

 * The talk does include some initial constraints that might guide the
   choice of a syntax. Even that meta level (i.e., the set of
   constraints) remains subject to a community process.

 * `#lang racket` is not going away and will always have its current
   parenthesis-oriented syntax. In the same way that Racket still
   supports `#lang scheme` and `#lang mzscheme` and even `(module
   <name> mzscheme ....)` and even top-level programs, the Racket
   compiler and runtime system will always support `#lang racket`
   programs. We believe that Racket's `#lang`-based ecosystem makes it
   uniquely positioned for trying new language variants while
   preserving and building on our past investments.

 * Any new syntax must specifically preserve Racket-style
   language-oriented programming, which means everything from defining
   simple pattern-based macros to building whole new `#lang`s with a
   smooth path in between. Again, our current macro technology must be
   an enabler for a new surface syntax, not a casualty.

As I hope comes across in the talk, I like the current Racket syntax
--- and how could I not, after 24 years of helping to define it? ---
and I am aware of many potential technical and social pitfalls that
this kind of shift could create. Still, in addition to keeping the core
Racket implementation running, I feel obliged to recommend changes that
I think would be good for the Racket language and community. We've been
lining up some technical solutions for a while. I don't know where the
community discussion will lead, but I'm pretty sure it's time to start
the conversation.

Whether or not we eventually decide on a different syntax, the design
of Racket2 will require community input and participation. If you want
to know more about how we're thinking about that process, see the
keynote by Aaron Turon:

      https://www.youtube.com/watch?v=xSjk2PdQm5k

(We'll have professionally edited videos of all talks available soon.)

Thanks,
Matthew

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/5d2be52a.1c69fb81.f77b6.e393SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to