On Wednesday, 17 December 2014 at 17:36:50 UTC, Wyatt wrote:
<snip>
Bull. D isn't magic and expecting that people need to set
aside a chunk of time to "learn" it is really silly.
i hope such people will never adopt D.
It's too late; we're already here. With a niche language like
this (I hate to admit it, but that's how it is) that's probably
most of the people that pick it up.
But it's not as silly as the idea that you don't learn the
language by diving in.
using the tools you never used before, without training, to
solve production tasks. this is what seems to be silly for me.
And over here, in reality, not every situation is optimal and
we often find ourselves doing just-in-time learning. Learn how
to learn by doing and accept that you're going to exercise that
skill. A lot. If you need a bunch of training up front just
to get things done, you're probably in the wrong field.
<snip>
-Wyatt
I think two things have been mixed up here. First, as a
programmer you can of course make sense of and use languages you
don't know, if needs be, simply because all languages share the
same underlying logic (arrays, assoc arrays, functions etc.) In
this respect, you can use and learn any language "on the fly".
The only way to learn a language is to use it, of course.
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.
There is simply no other way for a complex, feature rich language
like D. Look at D.learn. People who post there are often
experienced programmers, yet they still have to ask questions
about the best way to do something in D and the like. This
doesn't mean that you cannot use D straight away as a newcomer,
in fact, I could use it straight away and make sense of the
documentation when the page background was still blue. But to
throw a complex framework like vibed at people who have no
experience with D whatsoever is not a good idea, even if (or
because) they are all C++ guys.