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