To me, I’m just not that excited about the “maybe direction.” I guess I’m one of the parentheses clutchers who loves parediting in emacs. I’m sure the transition toward some other syntax will be cautious and careful, and that the resulting preferred #lang will be a fine one.
It just sounds like the center of mass for the Racket community won’t be quite what I was looking for when I came to Racket. I’ve got plenty of experience in at least one language, R, that started as a Scheme and then syntaxed itself to something less than Scheme (the language I mean, not the libraries—I'd kill for a #lang racket with R’s libraries).
Maybe Racket2 will be the bland syntax that succeeds in not obscuring the Music of the Spheres. If anyone can do it, this community will. On the other hand, I’ve got a healthy skepticism, uninformed by any deep understanding of the issues. I’m not sure what the benefits of sticking it out to see are.
The proposed change has anti-network effects in that Greg is already signaled his departure, and I’d already stopped reaching for Racket as the answer to “what lisp should I learn?” I simply don’t have a good answer to that question where I felt like I did a month or so ago.
But I’d be disappointed if Racket changed direction based on opinions of people like me. It’s not like I have any grand contributions to the community that are going away! I’m a dilettante who writes a little bit of Racket to scratch a personal itch once in a while. My primary takeaway from my one in-person RacketCon (Seattle) was, “woah, I don’t understand anything but these people are smaaaart.” I am not the right person to cater a language to.
If you were drawn to Racket, but want to look around a bit, there are a few other Schemes I find especially interesting, including: Guile, Chicken, Gambit, and Scheme48. Guile is in pre-release of some nice new JIT work, including instant startup from native code caches, and has an active community. If the bulk of your code can be written in RnRS, and you avoid mutating lists, you should be able to move around between the various Schemes and Racket reasonably easily. Of course, there's also CL and Clojure, but those are pretty different.
I didn't know that R had some Scheme ancestry. (For one client, I made an interface to call R from Racket, for a data science system.) I think one of the things Racket was heading towards, around the time of the math modules work, was for Racket to become a newer R. And perhaps have a `#lang r`, as another way of bringing in some of the wealth of R libraries and programmers (and also a similar situation with Fortran). I'm pretty sure we couldn't get Fortran performance with anything other than a native Fortran compiler, and I don't know the state of R performance, but Racket could've had closer to one of the main selling points of Python today (i.e., a wealth of data science libraries are available easily through it).
"Do not use #lang scheme to start new projects; #lang racket is the preferred language."
If #lang racket could go the way of #lang scheme, then it is harder for me to justify investing my time in #lang racket now.
The reason is: I think it's become glaringly obvious, to everyone, that a large percentage of Racketeers (including some of the educators) have no interest in any non-sexp language. If it were forced, the community would fork, in some way.
Matthew Flatt, for example, is a really first-rate developer, and of goodwill, and has some understanding of this.
I speculate it could take a month before any new discussion. People on academic calendars might be getting in a little vacation after the summer conference schedule, and then ramping up the new school year in a few weeks.
Racket actually has a couple-decade history of very good stability, other than a couple oopses that might've helped prompt the current attempt at greater community involvement in decisions.
The history is too long to summarize here, but some quick evidence you can look at is, when the language evolution really wants to change an interface or how something works, the old way either still remains in the main language/library, or is preserved in a legacy language or module, which you can see at the bottom of the page: https://docs.racket-lang.org/
For further evidence that's fairly easy to find, you can also look at the very careful and conservative process for introducing the new Chez-based backend.