On Thursday, 28 August 2025 at 18:47:19 UTC, Brother Bill wrote:
It seems like 'templates' are the 'Achilles heel' of D.
Without starting a flame war, has D gotten to the point where
ordinary mortals have difficulty coding in D with 'templates'
such as 'cycle' requiring rewrites into 'myCycle'?
I don't think so.
It is true that template metaprogramming is more complex, slower
to compile and prone to compiler bugs than C or Java-style
programming, mostly thanks to templates repeating themselves
less. But still, for the standard use cases Phobos is still more
than stable and understandable enough. And so are at least some
of the other widely-used templated libraries, such as EMSI
containers and Vibe.D.
Generally, you just need a bit of humblety so you'll stop
yourself from doing anything too fancy with the templates once
you realise you have many strange problems popping up. Same as
with any language feature set.
Compared to C++ templates, it is still almost always easier to do
the same thing in D. I certainly prefer Phobos ranges over STL
iterators, Boost, or a dynamically dispatched object-oriented
solution like LINQ in .NET languages.
Does D now require 'deep' memory into layers of history and
workarounds?
Didn't understand that question.
Is D a general purpose language, suitable for Application
Programming, or does it have a more limited scope?
It is. I don't even know what that more limited scope would be if
D was not.