On Tuesday, 29 September 2015 at 17:33:04 UTC, Chris wrote:
This is not my impression. Even "geeks" don't touch D (I know
this from personal experience), even when there's no risk
involved, e.g. when writing a small internal tool. As soon as
they hear they have to learn about ranges and map!(a =>
to!string(a)) and the like, they lose interest. Fear or plain
laziness ("couldn't be ar*sed"), one of the two. "I certainly
won't learn D" is a comment I've heard myself.
But that does what is happening here, when people who have
invested time in D complain. Also generators, iterators and
functional style programming (D ranges) is something many
languages provide one way or the other. In my experience that is
of limited use and more often than not explicit loops are more
transparent and maintainable. Although if a language offers
comprehensions I use those.
And yes, I know what Phobos offers and how people who publish
Phobos-centric code write their D code. There is nothing
particularly surprising about Phobos.
Projecting "fear" onto professional decision making is just a
way to make excuses for D's shortcomings.
The shortcomings D has wouldn't even interest the majority of
those who reject D. They wouldn't get deep enough in their
daily tasks to find out.
Then we perceive reality quite differently. What I see is that
people do try D, like qualities like syntactical familiarity and
flexibility and then get disappointed. So basically people play
with D, realize it is not where they expect it to be at, leave,
then some time later they download D again, same shortcomings,
leave... etc. Then at some point they share their frustration.
You've said it again. Java's design is orthodox, so IBM
embraced it. Again, people prefer simple set menus, rules and
strict guidelines. It's more of a psychological thing than
objective risk aversion.
D isn't particularly novel either, lots of Simula67/C++
influence, so I don't really see how this works. IBM did it for
competitive reasons.
One example that come immediately to mind is data processing in
Python. A lot of it is parsing and counting which is much
faster and often easier to do in D/Phobos.
D can work as a replacement solution for parts of Python's
domain. IMO Python "replaced/complemented"
sed/awk/perl/bash/php/etc, so that would be a rather small
portion of Python usage. And that is the primary reason for
Python's adoption, I think, it replaced not a single tool, but
people got to use one tool instead of multiple tools.
I think it is. It took me a while to realize this. Why is there
this passionate hostility towards D? I don't go to a Go or Rust
forum to tell them that I don't like this or that feature and
that it's all crap. I've decided they're not the right tools
for what I need and that's it.
Ok, but this is actual D users complaining, not Go and Rust users.
The reason is much more likely that the expectations are set at a
level where D does not deliver. If you want a production
environment to be judged favourably it is a good idea to set the
expectations one notch below what you deliver. There is a bit too
much hubris in how D is portrayed and therefore you get a
backlash, from actual D users.
People also complain in Go fora, and certainly in C++ fora (lots
of sulking over accumulated syntax bloat), but with Go they know
that the language is set in stone because the language designers
are very clear in their communication. So the complaints is more
along the lines of "Go is kinda boring, but I can use it for XYZ,
then use other languages for W".
In Rust the moderation is quite harsh and the language is also
too new for users to "give up" on it.