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.
