On Tuesday, July 16, 2019 at 5:18:24 PM UTC-7, Alexis King wrote: > > So instead of thinking about all the ways Matthew’s proposed syntax is a > compromise that necessarily comes with certain downsides, think of it as a > challenge: how do we take all the lovely things we’ve come to enjoy and > take for granted in #lang racket and do them in a language with a less > regular syntactic structure? How do we make writing great macros as easy in > #lang racket2 as it already is in #lang racket? >
I know parts of this are sort of a response to the group, but I appreciate you reminding me of the pie-in-the-sky aspect. I've long wanted to see some more comprehensive reforms of the core language, and I'm excited about some of the other topics being surfaced in the RFCs repo issues. It would be so good if more Racket #langs could intermix, and how better to do that than to have a single language where even infix syntaxes are convenient to access? It's just that the usual kind of wish list I have for Racket is for it to get a more regular syntactic structure. So many things in Racket are ad hoc groupings of parentheses, keywords, and DSL-specific mixfix syntaxes, when I believe having prefix syntax in their place would be slightly more conducive to people who need to recreate big chunks of the language. The harder it is to recreate the language, the more it's like a building with no fire exits. Eventually some leadership (if not today's leadership, then someday's) will make some mistake or some harmful decision, and the users will have to scramble out of a two-story window with whatever codebases they can gather. Will there be a particular catastrophic inflection point like that someday? Maybe, I dunno. I think it's more of a long-running catastrophe that isn't evenly distributed, and we're the survivors. Will prefix really help that much? ... I don't know. It was my "Hey, I can build that!" entrypoint into writing my first several languages, I've seen it serve the same role for many people, and it's now my refuge from all the mountains of parentheses in my CPS JS code. Among those other experiences, the Sofware Freedom Conservancy talk has led me to think that it's not just me who finds it seriously important that Racket has inspired and equipped people to make their first several languages. But I don't really know beyond a rule of thumb. Regardless, this one change to Racket isn't really inviting catastrophe all by itself. I use Racket precisely because it's the most exitable language I know. It has oodles of extension points, it's open source, there are established ways to compile Racket to alternative languages when the need arises, there are even paths to port code to other languages without even leaving behind Racket compatibility... It's good stuff. Racket isn't a building with no exit doors, just a building where one of the most prominent doors is being converted to a fancy automatic door and I'm fretting about whether it's the kind of door that can be pushed open in case the mechanism isn't working. :-p Again, yes, thank you for reminding me that there are a lot more exciting improvements on the table than just this, and that this is quite an opportunity. Something I'm looking forward to is that if this opportunity is played well -- yes even this infix syntax opportunity -- it's a chance to bring together a lot of the community's fantastic developments into a single well-polished combination. :) -Nia -- 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/1cbd30e5-ec4d-49e6-a149-7838d713913f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.