On Saturday, 29 September 2012 at 12:09:35 UTC, Thiez wrote:
Would you agree D would be better if it had those features?
Maybe. Maybe not. It's irrelevant.
How about we rephrase to something less inflammatory:
[Go programmer]: I prefer not to use D because it doesn't have
channels.
[Lisp programmer]: I prefer not to use D because it doesn't
have homoiconicity.
[Haskell programer]: I prefer not to use D because it doesn't
have full type inference.
Suddenly they all seem like perfectly acceptable arguments. If
a person really likes/needs a certain language feature, then
surely that is a good reason to reject a language that does not
have this feature?
If the person has not even tried the language then no, I still do
not think those are valid reasons to reject a language.
Many people like generics. Go doesn't have them. So why get
angry if these people reject Go?
I like ice cream. Vegetables don't contain ice cream. So why get
angry if I don't try vegetables?
Ok, so there's no reason to get angry, but I'd be an idiot to
follow that logic.
The parallel is that I would consider it unhealthy to dismiss a
language without trying it just because it lacks a feature that
you happen to like. It may have something else that you like even
more, or you may even find that the *lack* of a feature actually
makes the language simpler and more expressive in ways you
couldn't imagine (e.g. D's lack on inner struct pointers makes
things significantly simpler).