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.