On Friday, 15 January 2016 at 08:12:03 UTC, Russel Winder wrote:
"several versions behind" might be a better way if putting
this. The release cycles of DMD (basically unconstrained),
LDC (basically unconstrained), and GDC (heavily constrained),
mean that "out of date" is a bad marketing phrase.
I wasn't trying to market D; I was simply offering my advice to
the OP.
I think D is a fantastic language, but I'm not going to downplay
what I perceive to be its shortcomings.
I find this the wrong view of progress, yet one that remains
embedded in far too many organizations. It comes in two parts:
1. If a product has changed at all in the last six months,
other than trivial bug fixes, it isn't stable enough to use in
production.
2. Once we have stuff out in production, nothing may be changed
until end of life.
Clearly the opposite extreme of "we must use the very latest of
every early-access version we can get out hands on" is equally
dangerous in production. There is a middle ground. Keep
everything as up to date with formally released versions as
possible, taking on a continuous change and evolution strategy.
In this mindset D is certainly stable enough for production, it
is not beta software. DMD is the playground compiler, GDC the
conservative but solid one, and LDC the core production tool.
That is not my mindset.
I consider D beta-quality because whenever I program in D, I
encounter bugs (both new and old) in the compiler and/or standard
library on almost a daily basis. This has not been my experience
with other languages that have more money behind them, like Java
(never hit a bug in my life, that I'm aware of), C# (once?), or
C++ (so byzantine that I'm not sure I would notice - that's why I
prefer D :-) ).
None of the bugs I've hit recently has been too difficult to
diagnose and work around, which is why I no longer consider D
alpha-quality. I, personally, would be comfortable using D in
production - but that's because I have a high tolerance for the
kinds of minor issues beta software brings with it; not everyone
does.
And to be clear - I think GDC is awesome. But I also think that
someone with a low tolerance for issues like the one the OP
complained about will be happier using DMD or LDC, as I find the
newer front-ends noticeably less buggy in day-to-day use.
Horses for courses.