Bob Heffernan wrote on 08/16/2018 12:43 PM:
>
> When it comes to nesting (which, I guess, means the use of let) vs
> internal defines: is this purely an aesthetic thing?
I think, practically, you could call it only aesthetic, since the PLT
developers are invested in making internal `define` work as well as `let`.
Early in the evolution of Racket, it was PLT Scheme. Early on, one
could often see instantly that a bit of code was written by a PLT
person, because only Matthias and his students (many now professors)
would do things like use square brackets.
One way to look at things like square brackets and internal `define` are
like a charming accent on a language that you also speak. And maybe
yours is a charming accent, to them.
An accent doesn't have to be a big barrier to communication; your ear
quickly learns to adapt. And, most importantly, an accent tends to come
along with a very valuable diversity of ideas.
In the case of seeing PLT Scheme from the outside, some of us could see
some other value separate from the accent, and we decided to go live in
PortLanTia. (I can hear the groans even before I click Send.)
Many of us in PortLanTia have our own unique and evolving accents. I
think that's a good thing, helping to keep the collective intellectually
fresh and open, and not get too insular. You can speak however you like
in PortLanTia. "
https://docs.racket-lang.org/style/" is only the style
guide for official government (i.e., Git commits to code of core Racket
itself). The newspapers, novelists, and businesses have their own
styles, and the government doesn't dictate how they speak.
Now, if you're new to the language of PortLanTia, and you don't yet know
what your accent will be, you might start by trying to speak according
to the style of the official government documents. It's conveniently
written up, you don't yet know how the important subtleties differ from
things you already know from elsewhere, and this style was prescribed by
those who knew some of the subtleties well. Over time, as you know
more, your own style will emerge, influenced by your background,
linguistic style that you happened to think about, experiment with, etc.
PortLanTia also happens to be extremely supportive of linguistic
extension and research/experimenting. This is not irreconcilable with
more prescription for a given purpose, such as style conventions for the
code of core Racket. In engineering and elsewhere, we often make
practical decisions with complex tradeoffs that we know we can't fully
measure or understand, and one thing we tend to do is to limit the
scope. Limiting scope lets us make a decision about fuzzy balances for
one class of situations, without the difficulty, costs, and risks of
making it for a much larger set of situations. And we very often get
spreading influence behavior outside the scope for that decision,
including a decision for a different scope explicitly referencing or
delegating to that other decision, with or without modification. But
there's no overwhelming pressure to defer to precedent, and PortLanTia's
effort into `#lang` and other features are practically begging you to
also try numerous very different things than the founders could foresee.