D's tail

Brian Tiffin btiffin at gnu.org
Tue Aug 10 00:53:29 UTC 2021


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.


More information about the Digitalmars-d mailing list