[External] : Re: Question about circular references
Ron Pressler
ron.pressler at oracle.com
Thu Jul 6 20:21:09 UTC 2023
> On 6 Jul 2023, at 20:34, David Alayachew <davidalayachew at gmail.com> wrote:
>
> We need to make sure not to forget to add the Shotgun branch to our static initialization block. That's a problem.
Yes, but is it a big one? How often is it encountered and how hard is it to detect and solve?
Having the language solve every problem that the language can solve is one approach to language design, but it rarely yields popular languages. Such languages tend to grow quickly.
The challenge of language design is exercising judgment in picking which problems are worth addressing. Every feature needs to “carry its weight”: the magnitude of the problem it solves needs to be bigger than the complexity it adds to the language. Much if not most of the time we spend thinking about features is spent on answering the question: is the problem big enough to justify complicating the language (or even spending time thinking about a solution)? That’s also where most ideas, including those that are raised internally, are dropped; yes, they solve a problem, but not one that’s big enough to justify a language change.
Maybe there’s a way to extend definite assignment in a way that covers sufficiently many more interesting cases that aren’t currently covered without adding too much complexity, but my gut instinct is that the cost/benefit here is more questionable than other features we’re working on, and so isn’t a high priority. In other words, given the likely-non-trivial nature of a feature that would cover this use case, the magnitude of the problem, as presented, is not big enough to merit immediate attention (although sometimes we need to address a smaller problem when we discover it stands in the way of addressing a bigger problem).
But that’s just my opinion. Maybe when others return from their vacation they would want to offer a different perspective.
— Ron
More information about the amber-dev
mailing list