On Tuesday, 28 July 2015 at 05:49:40 UTC, Jonathan M Davis wrote:
On Monday, 27 July 2015 at 22:47:05 UTC, jmh530 wrote:
On Monday, 27 July 2015 at 21:54:23 UTC, Jonathan M Davis
wrote:
On Monday, 27 July 2015 at 20:49:54 UTC, Andrei Alexandrescu
wrote:
I'll do my best to limit my participation in emotional
debates, and suggest other D luminaries to do the same.
LOL. That's why I was originally planning to not say anything
in this thread...
- Jonathan M Davis
Your comments were very clear and much appreciated, but I see
the point.
Well, I ended up commenting, because there were some very
import points relevant to what we do with D that needed
clarifying. What I wanted to avoid (and mostly did) was arguing
over Rust vs D. For instance, I'd hate to lose the ternary
operator in favor of the expression if-else blocks that were
being suggested, but there's no point in arguing over it,
because we're not going to lose the the ternary operator, and
we're not going to make it so that if-else blocks can be used
as expressions. Arguing about it at this point just creates
contention. And it's far too easy to come at that sort of
discussion from an emotional point of view that D is better
because I really like it and am invested in it, and what's
being suggested is alien to me or doesn't fit with my
aesthetics or whatever. Sometimes what another language has
_is_ better, but often, it's a trade-off or even completely
subjective, and regardless, it generally isn't going to have
any effect on D at this point. Rather, it's just going to make
emotions flare. So, at this point, I'd prefer to generally
avoid discussions of D vs any other language. I got into a
really nasty argument about ranges vs iterators the other day
on reddit, and I just don't want to be doing that sort of thing
anymore.
However, what we _do_ stand to learn from is what's work
welling for other languages (like Rust) in terms of process and
the things that they do that don't necessarily have to do with
the language itself which help them succeed, particularly,
since even though we're generally pretty strong on the language
front (not perfect, but we definitely have a very strong
offering), we tend to have problems with marketing, getting
folks to contribute, getting those contributions merged in in a
timely manner, getting releases out, etc. We've definitely
improved on that front, but it's probably our weakest point,
whereas the language itself is pretty fantastic.
But I would like to avoid arguments over which language is
better or which feature in which language is better or anything
like that, particularly since we're unlikely to add anything to
D at this point because of such discussions. Rather, we need to
finish what we have and make it solid.
- Jonathan M Davis
Very wise. More often than not it is useless and irrelevant to
discuss features other languages have. This does not mean that we
shouldn't get inspiration from other languages. However, D's
reality is different from Rust's or Go's and features don't
necessarily translate directly into D (or even make sense in D).
Another thing is, as I pointed out earlier, that a lot of "new"
features other languages have are not yet tested well enough to
be able to say whether or not they are really that good[1]. After
all we are still experimenting with features and fixing things
here and there after using them in the real world.
There is a tendency to think that any feature we don't have
absolutely soooo has to be incorporated, else D will never take
off. I beg to differ. The question should not be "Why doesn't D
have this feature?", but "How do I get the same effect in D?".
Often we don't have to introduce a new feature, we merely have to
use the tools we have to get the same effect. And we do have a
lot of tools.
[1] I wonder what kind of bugs will be introduced, when if-else
is used as an expression.