3 ms·
I was at Racketcon when Matthew first brought this up publicly. While it is a good way to kill a LISP, it is important to keep in mind that Racket is really an
by slaymaker1907 7y ago
I was at Racketcon when Matthew first brought this up publicly. While it is a good way to kill a LISP, it is important to keep in mind that Racket is really an amazing workbench for creating new languages which interact with each other and being a LISP is mostly for the sake of making this easier.
In addition to that goal, Racket was originally created as a teaching language and continues to be used as such. Some people in the community see the odd syntax of LISP as a barrier to entry and would like to see if it would be possible to use a more Algol-like syntax for ease of learning while also preserving the properties which make it easy to extend and define new languages in.
Currently, there is already a distinction between parsing into s-exp and module-begin (i.e. all the interesting parts of your language) and this tech is already used to support languages which are based on s-exp and those which do fancier parsing such as the Datalog language.
Personally, I would rather keep Racket with s-exp and focus on cleaning up the weird stuff that is a holdover from scheme such as not having a consistent interface for comparators like there is for equal?, adding in growable arrays as part of the standard library, and not insisting upon an enormous block of end parents all on the same line (this is largely a product of the API for extending DrRacket being somewhat obtuse for indentation).
- neilv 7y agoRegarding Racket being a teaching language, I'd like to make what I think is an important distinction... I don't consider Racket a teaching language. It was created (when it was called PLT Scheme) as a very practical and powerful implementation of Scheme, for at least 3 purposes: * implement multiple teaching languages (for incrementally introducing language complexity as a beginner learns); * implement an in-some-ways powerful IDE that would run on all desktop/laptop computers students might have access to; * be a programming languages research platform. I have an interest in education, but am not interested in using educational languages myself. I've always used Racket as a practical language, for industry production, university research, and personal techie learning/experimenting.