Rant after trying Rust a bit

Chris via Digitalmars-d digitalmars-d at puremagic.com
Tue Jul 28 02:29:27 PDT 2015


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.


More information about the Digitalmars-d mailing list