Correct Arity

When someone wants a feature omitted by a simple language, the correct response is "find another language", which is hard to say nicely

Languages that want to stay small like Go and Gleam must omit features people want, some of which may be perfectly good ideas, especially for certain projects or people. So people can ask for legitimately useful features such as magic json serialization and still have the true and correct response be to find another language. Again this is not to say that these are bad features; just that these features don't fit with specific choices or goals, and adding them defeats the point of a simple language.

Simplicity is easy to sympathize with in the abstract, but maybe harder when it axes your essential features, "but that's my ox getting gored!" Suddenly omitting features is not simple but simplistic, the world is complicated and the language should reflect that, etc etc...

I think everyone needs the idea of a no fault language divorce as context for the suggestion to find another language.

more comments

long email thread

It's hard to suggest finding another language without giving offense:

  1. programming languages are part of people's identity, criticism can feel like a personal attack
  2. even for languages with narrow goals people assume they are the intended audience, especially because programming languages are generally general purpose
  3. parting ways sounds like a failure somewhere, there must have been a party at fault, the language or the user
  4. parting ways sounds corny, how can you say this amicably and not sound like you're AI or human resources
  5. often these discussions happen on the Internet, where it's hard to convey cordiality

Frankly, I don't think any particularly nice phrasing is even possible. I mean you can try to keep these challenges in mind and say it in a friendly way but I just don't see it. A better solution imo is everyone coming to the discussion bearing in mind that a language not working for someone is not a failure of either the language or the user. Especially for a simple language, since there are plenty of legitimate goals that are not the language's goals.

Another challenge might be the claim that a language has the wrong goals, or fails on its stated goals, and it seems easy for this to be said rudely; language designers probably need very thick skin. Of course the criticism might be correct! That said imo of

  1. objectively wrong about how feature works in langauge
  2. correct language lacks feature, but it would go against language designer's goals
  3. correct language lacks feature, but compatibility with a lot of existing code would be awkward
  4. correct language lacks feature, and language designers don't realize how feature fits language's goal
  5. correct language lacks feature, and language designers don't realize language should adopt feature's goal

Often criticism will be at least partially wrong, or pedantically correct but ultimately not so important, which makes it difficult to untangle constructive vs useless criticism. Setting the record straight on points that have quick objective answers is a good start, but it gets harder once comments get into things features that make a lot of sense but don't fit a certain language.

Again imo the real solution is for everyone in the discussion to understand finding/making another language as successfully prioritizing simplicity.