On Thursday, 18 December 2014 at 16:34:15 UTC, Wyatt wrote:
Wow, uh...I didn't think I was saying anything particularly
controversial, but I won a wall of text anyway. But it's cool;
turns out I've got one I can spare to reimburse you! :P I
don't think we fundamentally disagree, but I do think our
differing experience has informed our view of the issue.
On Wednesday, 17 December 2014 at 22:47:21 UTC, Chris wrote:
However, and this is the second point, if you want to use a
language _properly_ and efficiently, you have to learn it in
depth, no matter how advanced your skills as programmer are.
You have to learn the concepts and ways that are peculiar to
the language. Are you telling me that you never read TDPL or
Ali's tutorial and that you grasped everything from templates
and ranges to what you can do with D's structs immediately? If
so, I doff my hat. I for my part had to ponder on the more
advanced features of D and go back and rewrite some parts of
my code in a better, more D-like style.
See, when I started learning D, neither of those existed. ;)
No, really though: most of what I've learned has been from the
docs, trying things to see what works, and the odd example
snippet where I learn new tricks for things I already use or
never noticed or have seen and then forgotten. There weren't
well-established idioms then or, in a lot of ways, now; the
language to express the ones we think we want isn't even
complete. Whatever "proper" D is is all in a flux of
multiparadigm soup (and by god, it's beautiful). (In the now,
I've skimmed sections of TDPL and use Ali's book a decent
amount to refresh things I've forgotten.)
Sure, there are concepts that won't (didn't) come
"immediately"; they take a little bit to think about and a bit
more to play with and get the basics (a couple hours or so).
And then we apply what we've learned. This is how learning
works. Later, when we've learned more, we might come back to
something we wrote in the past and chide ourselves for all the
"mistakes"; that's all normal. But it worked then. It works
now. And with a tweak there and a simple rewrite here...it
works better than ever. Great! That's what growth looks like.
Feels amazing.
We work in a discipline where no one ever writes gold on their
first attempt, even in languages they've been using for a
decade.
And our understanding of how features of the language can be
used continues to grow, too, so it's not like there's a
definitive point at which you "know" D (or any language).
Because of these factors, I take serious issue with this
attitude that you require a certain level of achievement before
you're allowed to be productive (or even read the
documentation).
And given the pitch for D, I think "you must be this tall to
ride" is pretty much the antithesis of what we're after anyway.
Realistically, people can and will use Google and they'll find
what they need to get the job done, and then they will do the
job. (And this is a valuable trait because an engineer that
won't sully themselves with doing work is kind of worthless.)
So it's a dangerous sort of hubris to assume that because
they're "not for" the "basic" user that they won't be used.
(I want to be clear: if you're in a situation where you can
dedicate even a moderate chunk of time to learning a new
language or experimenting when there's work to do, more power
to you! I encourage you to treasure that privilege, because
it's not common and it could be snatched away at any moment by
a shift in the power structure of your firm. Seriously, that's
awesome; I'm pretty jealous.)
Better?
-Wyatt
I completely agree, that's how we all learn new languages. That's
how I've done it over the years. I never said that you're not
allowed to write, unless you're an expert. I started straight
away, like you, before there was TDPL (however, the book
clarified a lot of things for me later). This also means that the
doc can't be that bad after all!
"you must be this tall to ride" was never my attitude, else I
would never have touched D. What I took issue with was that the
developers where lead straight into the jungle (vibed :-) without
ever being told which animals live there and how to handle them.
But that is irrelevant now, because the posts above made clear
that there were far more things at play than the (perceived) bad
tooling.