Lost a new commercial user this week :(

Wyatt via Digitalmars-d digitalmars-d at puremagic.com
Thu Dec 18 08:34:13 PST 2014


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


More information about the Digitalmars-d mailing list