On Sunday, 26 August 2018 at 13:40:17 UTC, Chris wrote:
On Sunday, 26 August 2018 at 08:40:32 UTC, Andre Pany wrote:
[...]
No. Nobody forces you to use the latest version that may have
an improved GC, new library functions or bug fixes. In fact,
why bother with improving the language at all? But how do you
feel about code that you've been compiling with, say dmd
2.071.2 for years now - including workarounds for compiler
bugs? Doesn't the thought of having to upgrade it one day
bother you at all? What if your customer said that 2.08++ had
better features asking you to use them?
The burden of finding paths to handle deprecations etc. is on
the user, not the language developers. And this is where the
psychological factor that Laeeth was talking about comes in. If
you're constantly programming thinking "Whatever I write today
might break tomorrow, uh, and what about the code I wrote in
2016? Well, I'll have to upgrade it one day, when I have time.
I'll just keep on using an older version of dmd for now. Yeah,
no, I cannot benefit from the latest improvements but at least
it compiles with dmd2.st0neage. But why worry, I'll just have
to get used to the fact that I have different code for
different versions, for now...and forever."
You can get used to anything until you find out that it doesn't
need to be this way. You write unexciting Java code and hey, it
works and it always will. It took me a while to understand why
Java has been so successful, but now I know. It's not write
once, run everywhere. It's write once, run forever. Stability,
predictability. And maybe that's why Java, Go and once C++
prefer a slower pace.
I just don't understand why it is so hard to understand the
points I and others have made. It's not rocket science, but
maybe this is the problem, because I already see, the point to
take home is: There are no real problems, we are just imagining
them. Real world experience doesn't count, because we just
don't see the bigger picture which is the eternal glory of
academic discussions about half baked features of an eternally
unfinished language that keeps changing randomly. Not
practical, but intellectually satisfying.
I reaĺly like new features, for new projects I also consider to
use the latest stable dmd version (2.xx.1 or 2.xx.2) if there
aren't any known issues.
For legacy coding I do the math: does the new features, gc
improvements,... worth the time = money. I can also decide to
upgrade every 5 releases, but only if it worth the investment.
I want to stress, the upgrade is fully in the hand of the
developer and the decision can be made on costs and benefits.
My opinion might be very optimistic, but I feel some opinions in
this thread are rather pessimistic.
Kind regards
Andre