Moving back to .NET
Laeeth Isharc via Digitalmars-d
digitalmars-d at puremagic.com
Fri Sep 25 09:15:44 PDT 2015
On Friday, 25 September 2015 at 13:54:40 UTC, Chris wrote:
> Having followed this forum for 2 or 3 years now, I doubt
> whether an IDE would attract people at this stage. If we had a
> full-fledged IDE, there would be other concerns (or excuses). D
> scares people away. It's too raw, too bare bones, everything is
> still moving like hot lava, and maybe people are intimidated by
> it, because they feel they might be considered bad programmers,
> if they don't know the ins and outs of it.
This is very insightful, and I think goes to the heart of things.
(Based on what I have observed, and my experience with working
with someone who had exactly this feeling).
I don't think it's true these days that programmers who depend on
an IDE and on a visual debugger are mediocre programmers[*], but
definitely mediocre programmers are scared of the command line,
and it is in the nature of things that there are more mediocre
programmers than not, if you have a generous definition of
programmer. And then because there are more of them and we live
in a democratic age that also shapes the culture to a certain
extent.
* I appreciate that for large projects it may become close to
necessary for refactorings etc (not that the command line
couldn't do it, but perhaps the tools aren't there yet because
the IDEs get the money).
See see here for a scientific broad study of the distribution of
ability across many professions:
https://www.evernote.com/shard/s37/sh/12b86414-ed93-472d-9a6f-db223087d869/62f13d679581134ef1d368d5b57cd2b7
> Yesterday someone said too me "You must know D inside out by
> now!" I replied "I know it well enough to know that I don't
> know it well enough." There's no end to D in terms of
> knowledge, in terms of learning about programming, and this
> scares people away.
Do you think it's true that there is no end to D, as far as the
language itself goes? I mean there is no end to C in terms of
learning about programming, but that's a different point. I
never even really wrote object-oriented code before a couple of
years back, let alone doing metaprogramming (unless you count
Forth). I've still got much to learn, but I don't feel held back
by the vast scope of the language or anything. Mostly if I pick
up someone else's source I can figure out what it's doing (some
of the template stuff goes slowly). That's after two years of
learning D, and after a long long break from programming. I'm
also 42, which means it starts to become slower to learn then 30
years ago.
Something that accelerated the curve for me, and I know has for
others is having top people who are very generous in sharing
their knowledge and code to learn from. That makes a tremendous
difference because you get stuck along the way, and if you stay
stuck then that journey is over. For example, Andy Smith had a
strange linker error, and Adam Ruppe helped him out, and actually
even rewrote his own code for him. Without that, probably he
wouldn't have used D at work (for one of the largest asset
management institutions of its sort).
Where I think we don't do such a good job is curating such
knowledge and presenting it in a form that's easy to digest for
newcomers. That's also a function of the kinds of people that
are here, because creative people don't like doing boring things
like write documentation. (And they have other higher-valued
demands on their time). I don't know what the answer is, but we
will have to find one over time.
> D openly shows what's going on under the hood, not just a nice
> facade. But nobody really wants to see that. The frequent
> demands for an IDE are a symptom of this.
Nobody = only a minority numerically, but perhaps the best
minority. You have to decide who you are and then who it is you
are naturally going to appeal to. If you have something of
intrinsic excellence (albeit imperfectly realised, as is always
the case), you'll do much better appealing to those who can see
through the building works to what you have, than trying, not to
put lipstick on a pig, but putting hair extensions, fake tan,
silicone lips, and enhancement in the female thoracic region on a
natural beauty.
The world isn't an egalitarian place. The people that matter,
both in making decisions about what to use, and in influencing
others are a tiny set. Vilfredo Pareto spoke about this, and so
did the Marxists in their vanguard political strategy. Modern
empirical work on power distributions finds the same. So you
have to make it easy for them to see the benefit - some of them
are technical people, but they aren't all such.
> They prefer a set menu, they want rules and strict guidelines.
> They want to feel comfortable and secure in what they're doing.
> Java, C# and Go cater for this. D doesn't, and that's why it
> has no traction
I'm a student of social trends and it's one of the ways I make
money. There's a mismatch between the speed at which things
intrinsically unfold, and our desire to see things happen
quickly. The credit crisis happened so slowly - it was obvious
what was going to happen, and what the policy response would be
back in 2004, but it was torture waiting for the world to catch
up. And this happens again and again, and not just in financial
markets and economics.
Similarly if you look at the development of a nation, there are
long periods where nothing much seems to be happening, but then
you hit various thresholds and things go wild. But this wasn't a
case of overnight success, but came out of the natural
consequences of compounding growth meeting non-linear dynamics.
(For example, until you have decent roads your internal
development will be held back. But you can't afford decent roads
until you have enough income to pay for the roads and for the
vehicles with fuel to go on them).
D isn't failing to gain traction. The broadly rising downloads,
rising media interest, and so on, are objective confirmation of
what I perceive. It's just not in a visibly explosive stage of
growth and people would like it to be because in 2015 we are all
impatient. No 1,000 years to build a cathedral for moderns. But
you can't get to that saliently explosive stage of growth
without the slow build before, which involves still more work
without so much gratification. That's the same with any project
- you have to pour in love for a long time, but it doesn't love
you back, and people around you ask what you are doing because
all they can see is appearances. Then when you succeed they
marvel at the overnight success, without realizing how far the
roots of this go back.
So if one wants D to succeed, the best way will be patiently
working on things in front of one that may help a little.
Self-criticism is a great thing (and intelligent people with high
standards are prone to complain when they can't see a better
alternative) provided it's also combined with a constructive
spirit. Little, kaizen, changes are great. They fit with the
resources we have for now, but also out of those small seeds much
bigger things can come.
More information about the Digitalmars-d
mailing list