lingo.lol is one of the many independent Mastodon servers you can use to participate in the fediverse.
A place for linguists, philologists, and other lovers of languages.

Server stats:

65
active users

#LanguageDesign

0 posts0 participants0 posts today
screwlisp<p>Despite ample evidence to the contrary, <a href="https://mastodon.sdf.org/tags/Ilive" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Ilive</span></a> (hmm, if I were also <a href="https://mastodon.sdf.org/tags/evil" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>evil</span></a>, that would be a pallindrome as well as a visual collision)<br>Fascinating (if I do say so) <a href="https://mastodon.sdf.org/tags/lispgames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>lispgames</span></a> <a href="https://mastodon.sdf.org/tags/gamejam" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>gamejam</span></a> <a href="https://mastodon.sdf.org/tags/gamedev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>gamedev</span></a> <a href="https://mastodon.sdf.org/tags/retrospective" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrospective</span></a> on <a href="https://mastodon.sdf.org/tags/itch_io" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>itch_io</span></a> <br><a href="https://lispy-gopher-show.itch.io/lispmoo2/devlog/834615/princess-revisited" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">lispy-gopher-show.itch.io/lisp</span><span class="invisible">moo2/devlog/834615/princess-revisited</span></a><br>I am enormously happy with the <br>{ verb [ dobj [ prep iobj ] ] } x<br>language dynamic, and how it shares your <a href="https://mastodon.sdf.org/tags/lisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>lisp</span></a> <a href="https://mastodon.sdf.org/tags/repl" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>repl</span></a>, and their concerns are just... Different so they don't collide.<br>I guess I get my <a href="https://mastodon.sdf.org/tags/languageDesign" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>languageDesign</span></a> friends a little better now.<br>Thoughts?</p>
soc<p><span class="h-card" translate="no"><a href="https://mastodon.social/@mcc" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>mcc</span></a></span> <span class="h-card" translate="no"><a href="https://social.noyu.me/@hikari" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>hikari</span></a></span> I have been doing language design for 15 years, and I still love talking about every aspect involved in it.</p><p>But I literally never want to deal with Rust people ever again.<br>Seemingly their only motivation in language design discussions is to defend Rust and to assume that anyone not cloning Rust's approach 100% verbatim just means he/she haven't been crabsplained enough.</p><p><a href="https://chaos.social/tags/LanguageDesign" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LanguageDesign</span></a> <a href="https://chaos.social/tags/rust" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>rust</span></a></p>
Brian Davis<p>I've alluded to my big project of 2023, a homebrewed programming language I'm calling Dyn. Today I published my first article in a series discussing the design choices I've been exploring. This one is about syntax. I don't expect this series will be interesting to many people but writing something intended for public consumption is helpful for my thought process. And if anyone does want to discuss, that would be delightful.</p><p><a href="https://vmst.io/tags/programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programming</span></a> <a href="https://vmst.io/tags/languagedesign" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>languagedesign</span></a></p><p><a href="https://fadedbluesky.com/tech/DynSyntax.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">fadedbluesky.com/tech/DynSynta</span><span class="invisible">x.html</span></a></p>
Kent Pitman<p><span class="h-card" translate="no"><a href="https://mastodon.sdf.org/@screwtape" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwtape</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.sdf.org/@pkw" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>pkw</span></a></span> <span class="h-card" translate="no"><a href="https://hachyderm.io/@mnl" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>mnl</span></a></span> </p><p>As I think I mentioned recently (in my LispNYC talk?), McCarthy, at least by time of the standards, wanted there not to be any single dialect of Lisp that claimed the unadorned name Lisp. So there was syntactic room for dialects to compete.</p><p>There was discussion in design of EuLisp, an influence on ISLISP, about layers. EuLisp had 3 layers, I think. That layering didn't make it into ISLISP. I don't recall it being proposed for CL, though I might be forgetting at this point.</p><p>It was never clear to me, though I was not part of their community, whether the underlying language was a subset of, or just an implementation language for, the surface language.</p><p>My only very concrete memory was that someone wanted some transform T such that L1 = T(L0) to be applied at some point. Maybe this came up in the CL macros committee. I was pretty adamant that CL did not need macro "hygiene" like Scheme has. </p><p>The urgency of that is due to Scheme's choice of being what I called a Lisp1 (the names Lisp1 and Lisp2 in this context are no relation to versioning you referred to in reference to Lisp 1.5, but are abstract categories that address how many variable namespaces are in the language). </p><p>Various characteristics of CL, including but not limited to being a Lisp2, helped insulate it from name collisions in the macro system, so the macro system didn't need to have formal hygiene like in scheme, or so I claimed. </p><p>I don't think the CL community wanted to change its macro system. Indeed I'd go so far as to say the easy writing of macros is strongly correlated with the rapid success of the family of Lisps that became CL. Breaking something that was succeeding wildly seemed ill-advised, or at least that's how I perceived things. Obviously this was a community discussion.</p><p>The fact of a package system rather than a lexical module system was also relevant to this. It's a subtle issue, but important. Scheme is a language defined by its programs' texts. In Common Lisp, the language semantics is on objects. </p><p>Speaking only very approximately here for brevity, the compiler operates on lists made of conses and symbols, not text made of parens and alphanumeric tokens. So there need be no source text in CL. Gensyms can easily be created by macros for variable names in CL, something you can't do in Scheme without help of a hygienic macro system to do rewrites for you. The use of gensyms further insulates macros from name collisions that would be routine in scheme if it had a CL-style macro system.</p><p>I think the way in which the package system, the macro system, and the namespacing form a kind of ecosystem is ill-understood by most users, even though they're comfortable with the effect. It only matters to understand it if someone suggests changing one of these without changing the others. </p><p>It's sometimes hard for someone from the Scheme community to understand why macro hygiene isn't needed in CL if they don't get how packages are fundamentally different than lexical namespacing. So they propose isolated changes thinking it will solve a problem that isn't really there. It's also hard for them to get why CL users see such proposals as adding complexity rather than removing it.</p><p>Goung one level meta, it's worth observing that there are not good language features and bad language features, but good within a context or bad within a context. People sometimes get a feature they like and want to impose it on other languages, not seeing that's harmonious in some and not others. </p><p>Context matters in assessing abstracts like goodness. It's the harmony of the ecosystem that matters. Adopting change, even well-meaning change, can be very disruptive, sometimes causing unexpected cascade effects (and community cost in both dollars and happiness) one doesn't realize will be needed.</p><p>Some of this is covered in the paper Gabriel and I wrote called Technical Issues of Separation in Function Cells and Value Cells. We were tasked by X3J13 to write such a thing because we disagreed on how things should go and between the two of us would likely hit all the issues. :) If you read carefully, you'll see the paper is a kind of debate between us where one would say something and the other would say "yeah, but.." and inject counterpoint. (This is the origin of the namespacing categories Lisp1/Lisp2. Also, the original paper, titled just Issues of Separation in Function Cells and Value Cells was longer and more X3J13-specific. We tightened it up for journal publication, mostly at Gabriel's insistence, as "Technical Issues..." to emphasize some dropped politics.) <a href="https://www.nhplace.com/kent/Papers/Technical-Issues.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">nhplace.com/kent/Papers/Techni</span><span class="invisible">cal-Issues.html</span></a></p><p>I may be far afield and I have no idea if that answers your question or just creates more questions, so I'll stop. :)</p><p><a href="https://climatejustice.social/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a> <a href="https://climatejustice.social/tags/EuLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>EuLisp</span></a> <a href="https://climatejustice.social/tags/ISLISP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ISLISP</span></a> <a href="https://climatejustice.social/tags/Lisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Lisp</span></a> <a href="https://climatejustice.social/tags/Macros" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Macros</span></a> <a href="https://climatejustice.social/tags/HygienicMacros" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>HygienicMacros</span></a> <a href="https://climatejustice.social/tags/LanguageDesign" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LanguageDesign</span></a> <a href="https://climatejustice.social/tags/Standardization" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Standardization</span></a></p>