On Friday, 20 November 2015 at 11:44:02 UTC, Chris wrote:
On Friday, 20 November 2015 at 08:51:13 UTC, Warwick wrote:

This example makes no sense to a programming novice:

// Sort lines
import std.stdio;
import std.array;
import std.algorithm;

void main()
{
    stdin
        .byLine(KeepTerminator.yes)
        .map!(a => a.idup)
        .array
        .sort
        .copy(
            stdout.lockingTextWriter());
}

But programming novices are taught programming in a bad way. A lot of programming books are full of "step by step" code which doesn't make sense in the real world and only spoils people for the rest of their programming life.

I think the most important thing is to teach people the concepts behind D. Not just 'writeln("Hello, world!");' and be happy code.

The example above illustrates chained programming with ranges and components. A > B > C = D!. This is what we have to explain first. People will expect "Hello, world!", but if we want people to use D, we'll have to teach the concepts as well, and explain why D has those concepts. This is the hardest bit. People prefer rules to explanations.

Reply via email to