On Tuesday, 14 November 2023 at 17:57:36 UTC, Steven
Schveighoffer wrote:
On Tuesday, 14 November 2023 at 16:07:26 UTC, Mike Parker wrote:
[...]
What do we want the first experience with D to be like?
A person trying out D, who writes a one-file simple application
using phobos *does not care* that a lib abandoned in 2018 still
compiles. So why should they be the ones paying the penalty?
I get that we want to stop breaking builds. But the answer
there is simple -- provide a way to do it by attributing the
files, or by telling the compiler "these files are edition X"
or whatever. And once you attribute it, it never breaks again.
Sounds like a reasonable cost to me for those who want
long-lasting code!
There are other options here. Like use the filesystem to
identify the edition either via config or filenames.
[...]
That's not any better. If you have to opt-in to the language as
it exists, people are going to quit immediately. I'm not joking
about this. Imagine spending 2 hours trying to figure out why
your app that is trying out some new feature doesn't compile,
only to find out after posting online that it was looking at
some ancient version of phobos.
-Steve
Ergonomically it potentially doesn't have to be quite so binary
e.g. a C++ compiler will tell you to opt-in to a new language
version rather than just erroring.
But, if you have the logic to do that, you can also infer an
*older* edition to keep the abandonware working even though by
default you get the most recent one.