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.

--
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to