On Tuesday, 11 February 2014 at 05:03:29 UTC, Mike Parker wrote:
You're greatly underestimating just how easy dub makes
developing with D.
I have to say that dub is a great tool. I remember the times when
I had to copy files to /usr/bin/ etc. and would still wonder why
the compiler complained. I started using dub a few months ago
(when I started a vibe.d project) and it helps me a lot. I moved
the project to a new machine, just ran $ dub and it compiled and
ran, out of the box.
Back to the original point, i.e. what's important for newbies
(some of it has already been said):
1. ease of use:
download, install, type away.
2. tutorials:
a. show how things work in D, the most common cases first
(e.g. string handling, (assoc) arrays, saving to file, useful
real world examples)
b. show how things should be done correctly (there's nothing
worse than having to figure out yourself and then refactor your
code, because nobody told you how to do it correctly or in an
optimized way).
c. the newbie should be able to get going and be productive
without an in depth understanding of the philosophy behind every
language feature. That comes later, more or less automatically.
3. documentation:
More examples. The Cocoa API reference is very good in this
respect. It shows trivial things like opening a file dialog.
Trivial but it's good to have something you can just copy for
starters, without having to figure out what else to import and
all that kind of stuff that only holds you up.
I cannot say anything about IDE support, because I haven't used
D+IDE yet. But some analyzing tools would be nice, e.g. "variable
declaration is shadowing global variable", "unused import".
The most important thing for newbies, either new to the language
or new to programming, is "instant gratification". If it compiles
and works, people are more likely to be enthusiastic about it.
Give them useful examples and use cases and they will begin to
see how useful programming is and start thinking about
applications, however trivial they may be, they can write
themselves for their own personal use (a little clock, a
calculator for VAT ...) In this way they will start to think as
both developer and user, add features, go ever deeper into
programming. Creating useful things, that's what it's all about,
isn't it?