Being a COBOL guy (for fun), I have opinions on this, but I'll try and only let them leak out a little bit lot, as this is meant as a question, not a judgement.
How long do you expect your D programs to last?
How long do you think the D system should support your source code?
D is 20+ now, but how long is its tail? Meaning, if you found D code from 19 years ago, would you expect it to compile today, with a current compiler? How far back in time should D source age? The length of the tail.
Is it better to cut off the growing tail for progress, or should progress allow for long tailed source code and binaries?
To be fair, a 1.0 to 2.0 bump is major enough to warrant lopping off a tail. (Or is it?)
Being new to D, that seems to put D2 at 12-ish years old. Does anyone have 12 year old code that would recompile without touching the sources? Would you expect it to? Or is it ok to write programs with fixed (with a randomness factor) life expectancy?
The idea to ask this question came up from reading the std.datetime
article, and how it deprecated std.date
. Would it be reasonable to freeze code rather than deprecate and remove? Leave the tail, even though it may be wrinkled and dry at the ends, rather than lop it off?
On one hand, a long tail means hauling luggage, an ever growing, possibly useless (to most) pile of baggage. On that hand, a long tail would mean that D only accumulates, ever growing. On the other, D becomes a smaller in toto codebase that slides through time, leaving it's past behind as it pursues perfection.
Leaking bias; I'm amazed that sophisticated Report Writer code from 1969 (pre structured programming) still compiles in a 2020+1 COBOL compiler. Has that code been superseded by events? Not really, dollars are still dollars, pennies are still pennies, page breaks are still page breaks and sums are still sums. The output format is archaic, but the code is still useful, and cups-pdf will gladly convert a plain old text file to PDF.
But I also realize that IBM charged customers a high premium to advertise and maintain that backward compatibility. Maybe only Computer Business needs those kinds of timelines and guarantees. Perhaps Computer Science can slide, allowing old code to become worthless without surgery after a reasonably short life span, as Science evolves faster in general. Lots of life forms leave behind old shells behind to grow and mature.
So it's a question. What is a reasonable life expectancy for the projects I start in D today?
Have good, make well.