Here's looking at you, kid

Chris via Digitalmars-d digitalmars-d at puremagic.com
Sun Nov 22 10:44:20 PST 2015


On Friday, 20 November 2015 at 20:02:34 UTC, Chris Wright wrote:
> On Fri, 20 Nov 2015 16:59:28 +0000, Chris wrote:
>
>> On Friday, 20 November 2015 at 16:39:52 UTC, Chris Wright 
>> wrote:
>>> On Fri, 20 Nov 2015 14:41:04 +0000, Chris wrote:
>>>> Yep, what can one say.
>>>> 
>>>> 1. Who goes to the language reference, when they want to 
>>>> _learn_ a language?
>>>
>>> It's the obvious place if you're familiar with other 
>>> programming languages. Tutorials tend to be geared toward 
>>> people who have little to no programming experience, who view 
>>> learning a new language (even in a paradigm they're used to) 
>>> as a large thing.
>>>
>>> We were all there once, but we're not all there now. When I 
>>> learn a new language, I want typically 20-30 lines of example 
>>> code and a language reference. I can start writing code after 
>>> reading a short example, and I can use the language reference 
>>> to fill in the remaining gaps. The language reference is 
>>> usually both denser and better categorized for my needs.
>>>
>>>> 2. If you really want to learn a language, you will learn 
>>>> it. There are enough resources for D now, there's room for 
>>>> improvement, but there always is.
>>>
>>> I was choosing between programming languages a while ago, 
>>> most of which I hadn't used before. For each of them, it 
>>> wasn't the case that I wanted to learn them, but I knew I 
>>> probably wanted to use one of them.
>>>
>>> If any of them were as obtuse to learn as D, I would have 
>>> skipped past them post haste.
>>>
>>> If I'm evaluating a programming language to start using at 
>>> work, I will evaluate it on how easy it is for me to 
>>> accomplish things in that language and how easy it will be 
>>> for my coworkers to start using the language. My coworkers 
>>> mostly know Ruby and are just tentatively switching to Java. 
>>> Moving to Haskell probably isn't an option despite the 
>>> existence of decent tutorials, but D is similar enough that 
>>> they could learn -- assuming there are good tutorials readily 
>>> available.
>>>
>>>> I know, catering for the "one second attention span" crowd 
>>>> is a recipe for success, if you deal with PHP or JS. But D 
>>>> is not in that league. Even if you cater for them, they will 
>>>> soon be frustrated anyway, because for D you'll need a 
>>>> deeper understanding of things, sooner or later.
>>>
>>> You were contemptuous toward PHP and JavaScript, and now you 
>>> are being contemptuous toward people who are potentially 
>>> interested in learning D. Please be more respectful.
>> 
>> Have you been able to learn D? Yes or no?
>
> I have an unusually large tolerance for pain in technical 
> terms. It tends to take me a long time to realize that it's 
> hard to use a programming language. Recently, for instance, I 
> tried using Nim. I spent several months on it before I realized 
> that I was debugging library errors and was about to dive into 
> the compiler's semantic analysis code to fix a problem and it 
> was stopping me from writing the code I wanted to write. That 
> sort of tolerance, that sort of ignorance about the painfulness 
> of a situation, let me learn D ten years ago.
>
> I also spent a fair bit of time learning D. It was my own time, 
> no one else's. I was free to spend months learning the 
> language, if that was what it took.

Fair play to you.

> And again, I learned probably 4-5 programming languages last 
> year. My coworkers, some of them, were having issues switching 
> from Ruby to Java. They're quite competent at what they do, and 
> they might be better at Ruby than I ever will be, but they 
> won't quickly switch in the best case. With the existing 
> tutorials, it'd be far worse.
>
> This alone would suffice to make D not be a viable option for 
> my employer. Of course, we also have to contend with the poor 
> library situation.

I have the feeling that unlike you, people don't really try. I 
know that people often look at D, but don't pay much attention to 
what the page says, because it's not a "fancy". I remember that 
Ruby was hyped and it was indeed a "hipster" language (which is 
not a comment on its quality or merits). So there are other 
factors at work here. D is in a difficult position, because it's 
so advanced that it is of interest to people coming from C++, at 
the same time things can be done in D as easily as in Python or 
Ruby.

The problem is that the latter crowd (scripting people) will 
sooner or later be disappointed with D, if they have no 
experience with more low level stuff and programming theory, 
because at a certain point D gets demanding and it takes a while 
to grasp all the concepts.

>> I'm sorry, if
>
> If your apology starts with "I'm sorry if", it's not an 
> apology, and most of the time you're better off omitting the 
> statement entirely.

You're right, it wasn't an apology, because I don't feel I have 
anything to apologize for. If people take offense when I bash a 
language or say that D is a bit more demanding than Javascript, 
it is not my problem. I find it rather weird that people identify 
with a certain language or technology. That's not how we should 
look at technology, most certainly not.

>> I'm not always politically correct
>
> Most of the time, "politically correct" means being respectful 
> to others, except the speaker intends to indicate that that is 
> a bad thing.

Political correctness tries to censor the free expression of 
thoughts and has nothing to do with being respectful or not. 
Being politically correct means to censor one's own thoughts out 
of fear of being told off. It is often only a way to dismiss 
arguments and opinions in order not to have to deal with them.

>> and I'm the first one to understand the needs of
>> programming novices, because we've all been there (as you 
>> pointed out).
>
> Which gives you no special advantage over anyone else, so I'm 
> having a hard time seeing how you're "the first one to 
> understand the needs of programming novices", especially since 
> you seem to be advocating against making more tutorials and 
> making them easier to find.
>
>> My point is that for D you will need a deeper understanding of 
>> things, and Ali's book provides this.
>
> Before you seemed to be saying that the language reference 
> provides this.

Where did I say this?

> Ali's book is much heavier in prose and provides much more 
> guidance than the language reference.
>
> Making Ali's book much more prominent, and especially more 
> prominent than the language reference, would be awesome. 
> Python, for instance, has a language reference, but it 
> recommends tutorials for you first, and while it shows you the 
> language reference, it warns that it can be rather dry.

Let's do that.

>> D is not like Javscript where type
>> "alert('Hello, world!');" and go "Yeah!". One cannot always 
>> blame D and
>> its community for mistakes and/or bad choices people make.
>
> And this has nothing to do with the quality of tutorials or how 
> hard it would be to get my coworkers to start using D.




More information about the Digitalmars-d mailing list