Andrei Alexandrescu wrote:
On 1/27/11 8:02 PM, Walter Bright wrote:
I was talking about this with Andrei the other day. D's focus on making
it easy to do things the right way has paid off handsomely, though this
is not at all obvious from reading a feature list. It only becomes clear
when you use it for a while, and then try to go back to the way you were
doing things before.
Although this might as well be true, I generally try to avoid such
arguments. The problem with it is it's non-falsifiable
(http://en.wikipedia.org/wiki/Falsifiability) so it has a certain stench
coming with it.
I've seen such a claim in Go fora: you know, once you get to really use
Go, you won't feel the need for generics. Meh.
I try to _never_ use such an argument. If I'm to convince anyone that D
rocks, it won't be by means of unfalsifiable statements.
I agree it's a worthless argument to use to try and convince people to give D a
try. But for experienced D users, it is an interesting point.
It will be by
showing code that knocks your socks off. The kind of code that makes you
think: "If I'm to write that in language X, I need to give away
desirable traits A, B, and C. Damn!"
I think one of the reasons DbC has not paid off is it still requires a
significant investment of effort by the programmer. It's too easy to not
bother.
One issue with DbC is that its only significant advantage is its
interplay with inheritance. Otherwise, scope() in conjunction with
assert works with less syntactic overhead. So DbC tends to shine with
large and deep hierarchies... but large and deep hierarchies are not
that a la mode anymore.
Yes, you might be right.