November 20, 2015
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.
November 20, 2015
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'm sorry, if I'm not always politically correct and I'm the first one to understand the needs of programming novices, because we've all been there (as you pointed out). My point is that for D you will need a deeper understanding of things, and Ali's book provides this. 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.
November 20, 2015
On Friday, 20 November 2015 at 16:59:30 UTC, Chris wrote:


> Have you been able to learn D? Yes or no? I'm sorry, if I'm not always politically correct and I'm the first one to understand the needs of programming novices, because we've all been there (as you pointed out). My point is that for D you will need a deeper understanding of things, and Ali's book provides this. 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.


Maybe the community (20 or so ppl) to write some quick tutorials on common tasks like socket programming, file system stuff, memory, etc... and we just combine them in a common format on the D site (wiki maybe) and refer learners to that.   Alot of ground could be covered if we just organize that and get it done.  We really would need to create a section and decide on what topics to cover and get on it.


November 20, 2015
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.

It seems clear that there are a variety of different types of people who would want to learn the language. Maybe split up the Getting Started page to a few sections, like "new programmers", "intermediate programmers", "expert programmers".
November 20, 2015
On Friday, 20 November 2015 at 15:12:13 UTC, Andrei Alexandrescu wrote:
>
> One thing we need to do is deemphasize the "Language Reference" entry in the left menu and promote Ali's book to top level. -- Andrei

In that case, if he were willing, might it be worthwhile to host it for him?  Maybe apply the usual dlang.org styling to it, as well?

I'm not sure how common it really is for the "officially-blessed" tutorial to live on an entirely different domain, but it seems like something that would be viewed as "less professional".

-Wyatt
November 20, 2015
On Friday, 20 November 2015 at 17:06:52 UTC, David DeWitt wrote:
> On Friday, 20 November 2015 at 16:59:30 UTC, Chris wrote:
>
>
>> Have you been able to learn D? Yes or no? I'm sorry, if I'm not always politically correct and I'm the first one to understand the needs of programming novices, because we've all been there (as you pointed out). My point is that for D you will need a deeper understanding of things, and Ali's book provides this. 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.
>
>
> Maybe the community (20 or so ppl) to write some quick tutorials on common tasks like socket programming, file system stuff, memory, etc... and we just combine them in a common format on the D site (wiki maybe) and refer learners to that.   Alot of ground could be covered if we just organize that and get it done.  We really would need to create a section and decide on what topics to cover and get on it.

That's a good idea. We should ask people what they need most urgently. String manipulation is one. Then arrays, sockets, concurrency? ... please continue. Let's make a thread about "how do want to use D and what are the most urgent things for you?"
November 20, 2015
On Friday, 20 November 2015 at 17:26:40 UTC, jmh530 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.
>
> It seems clear that there are a variety of different types of people who would want to learn the language. Maybe split up the Getting Started page to a few sections, like "new programmers", "intermediate programmers", "expert programmers".

IMO, it's not a good idea to classify people like that, because even a beginner might need advanced stuff and they might ignore the "advanced" section. Also, people might rate themselves as "intermediate" while they actually do pretty advanced stuff. Let's order by topic. It should come up when someone types "dlang set up socket", and so on.
November 20, 2015
On Friday, 20 November 2015 at 17:57:06 UTC, Chris wrote:

>>
>> It seems clear that there are a variety of different types of people who would want to learn the language. Maybe split up the Getting Started page to a few sections, like "new programmers", "intermediate programmers", "expert programmers".
>
> IMO, it's not a good idea to classify people like that, because even a beginner might need advanced stuff and they might ignore the "advanced" section. Also, people might rate themselves as "intermediate" while they actually do pretty advanced stuff. Let's order by topic. It should come up when someone types "dlang set up socket", and so on.

One important thing is to direct people to the right library modules. This is something that really confuses people. std.algorithm covers a lot of stuff that people would expect elsewhere. I think std.string already tells people to go to std.algorithm, but an overview would be nice.

Strings

std.string, std.algorithm (std.ascii etc) with a short explanation.

Arrays

etc.

Basically a "Get sh*t done" page.
November 20, 2015
On Friday, 20 November 2015 at 18:11:41 UTC, Chris wrote:
> On Friday, 20 November 2015 at 17:57:06 UTC, Chris wrote:
>
>>>
>>> It seems clear that there are a variety of different types of people who would want to learn the language. Maybe split up the Getting Started page to a few sections, like "new programmers", "intermediate programmers", "expert programmers".
>>
>> IMO, it's not a good idea to classify people like that, because even a beginner might need advanced stuff and they might ignore the "advanced" section. Also, people might rate themselves as "intermediate" while they actually do pretty advanced stuff. Let's order by topic. It should come up when someone types "dlang set up socket", and so on.
>
> One important thing is to direct people to the right library modules. This is something that really confuses people. std.algorithm covers a lot of stuff that people would expect elsewhere. I think std.string already tells people to go to std.algorithm, but an overview would be nice.
>
> Strings
>
> std.string, std.algorithm (std.ascii etc) with a short explanation.
>
> Arrays
>
> etc.
>
> Basically a "Get sh*t done" page.

To be clear with this I don't mean what's in the library section now like

"std.string 	Algorithms that work specifically with strings."

but something more practical, strings: wanna find a string in a string? Do this ...
November 20, 2015
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.

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'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.

> 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.

> 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. 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.

> 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.