My choice to pick Go over D ( and Rust ), mostly non-technical

Laeeth Isharc laeeth at laeeth.com
Mon Feb 5 05:34:55 UTC 2018


On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:

> You want to produce Excel's? Excel-d but it faces the same 
> issue as being the only native project. What if the author ...

Since you mention this, there isn't just single author of 
excel-d.  If something happened to me, most likely Atila would 
want to and continue to be paid to work on it.  If Atila decided 
he wanted to work from an office and write modern C++ instead of 
D (approximately snowball hell survival chance), we would 
certainly have someone else take over.  And Ilya Yaroshenko 
understands at least enough of it to have made pull requests (and 
I imagine he understands it all rather well, but limiting myself 
to saying what I am certain of). It's also not rocket science, 
the Excel API, and Microsoft can't afford to move quickly and 
break the API given their user base.

> What is D even targeting?

You’re attributing an intent and plan to a decentralised open 
source project.  It doesn't work like that.  It's like saying who 
should Britain target in trading post Brexit.  There's no central 
plan, because in Britain we don't have central planning that much 
for such things.  Who we end up trading with will be the result 
of many dispersed decisions made by people acting on the basis of 
local knowledge.

Well at least our Prime Minister can pretend that she is 
directing things in that way.  Andrei and Walter can't order 
anyone to do anything, for the most part.  They have significant 
influence, and can attract people to work on things but I don't 
see why you think there is a central plan for D.

These categories you mention, they don't capture real world 
organising principles from what I've seen.  When you don't have 
an enormous market share it's pretty easy to grow it.  You don't 
need to have a high appeal to everyone.  You just have to have a 
high enough appeal to just incrementally  more people wherever 
they may be found.

So it's not relevant whether most C++ developers are receptive to 
D or not (Ethan Watson says the games industry is an industry in 
search of salvation... from C++, and if every thing were hunky 
dory why the excitement about Jai, for example).  You don't need 
to appeal to most people to grow, just a few more.

Read the Innovators Dilemma if you are serious about 
understanding how this works.

" It feels like D does not even know who its targeting."
How can it? Why should it? At this point all that's necessary is 
to do more of what's working, which is something that's happening 
with the passage of time.  The way to grow is to appeal a bit 
more to your best customers or to those who are really close, 
using your for some things but are held back by some small 
impediments.  For example Remedy Games with Quantum Break.

"In my opinion the focus
> seems to be with C++ developers with most not giving a darn 
> about D."

If most C++ developers were deeply familiar with D, it would be a 
very different conversation.  Since this isn't the case, and 
given the number of people using C++,  it's an advantage not a 
disadvantage what you point out.  The job of an innovative 
challenger is long term an easier one.  And strategically its by 
far the best if you get no respect until the last minute when 
it's too late for the challenger to respond.  Strategically you 
want a growing number of people to be finding D useful, but most 
people to be dismissive.  That happens to get the case though it 
was never planned.

Maybe D isn't for you right now.  That's okay - come back in a 
bit and maybe you will feel differently.  It doesn't need to 
appeal to everyone.

> Other languages have slogans, they have selling points.

Yeah, and some people don't like slogans and aren't influenced by 
them or find them irritating.  The unpolished aspect of the D 
world isn't a bad thing in this respect.

> When i hear D, you hear ... ... ... ...
>
> Advantages:
>
> D has a lot of advantages like CTFE, Generics, betterC etc over 
> Go. But the resources seem to be spread so much over so much 
> code, that information about how to properly use those Technics 
> is spread thin.

I skipped C++ because I didn't find it appealing when I learnt to 
program as a boy, and my career took me in a different direction. 
  I picked up programming again in Dec 2013 after a very long 
break, and I didn't know what generics were (sort of, but I had 
never written them), the only metaprogramming I had done was in a 
Forth clone I wrote in the 80s, and so on.  But if wasn't 
difficult to pick things up with D,and the documentation was 
worse then.  I agree it could still be better, and better 
organised, but it's not that bad.

> It makes D its learning curve also much higher.

Really? I found D easier to learn than Python (to be fair I 
already knew C well).  I started out writing it like C and 
progressively adopted language features.  I learnt from Stefan 
Koch and Adam Ruppe when they were helping me before, and I still 
learn from John Colvin, Atila, Jonathan Davis and Ilya about some 
more advanced language features, but I don't feel bad about not 
knowing them, and nor do I feel held back.

Your scorelist is a bit odd.  You mention the importance of 
Windows to you.  Does Crystal even work on Windows reliably yet?  
And then you talk about the need for being production ready and 
stable.  You have a different perspective on what that means than 
me.

In any case Go looks like a nice language.  I've thought about 
using it for us for devops type stuff when the alternatives are 
powershell, bash and Perl.

I don't see why the drama.  D isn't right for you right now.  No 
big deal, it's a big world, diversity is a good thing.  One can't 
be all things to all people.

Out of interest, because it's sort of relevant, how many SLOC 
would you guess you have written in D?


> The amount of issues that plague D go beyond the few i 
> mentioned here and frankly will take years with a lot of 
> manpower ( that D lacks ) to even sort out. I think D really 
> missed the boat years ago because if it had a influx of people 
> maybe 10 years ago, it will have been a whole different 
> ballgame now.

Maybe.  Things develop at their own pace, and can't be forced.  I 
personally disagree because an influx of people before a language 
is ready for it can be a disaster.  I wasn't around then but I 
read a fair number of old posts, and I don't think D was ready 
for it then.

Modern Western people are in so much of a hurry, but why? The 
stakes are so large it's better to get things right than do them 
quickly at any cost, which often means taking short cuts and 
mortgaging the future.

Things happen when the time is right and not before.  A natural 
sequencing too.  No point setting up a Foundation when there 
aren't enough corporate users ready to support the language.  The 
time is right and you set up the Foundation - that's a lot of 
work and now you have to figure out a strategy.   These things 
take time, but we have time.

> Is Go perfect? Hell no ... but one needs to way the positive 
> and negative. And to me it feels like Go has made more positive 
> decisions that actually help people develop, then D on doing 
> too much everywhere. Go is here to stay for the foreseeable 
> future, where as D... not sure and that is scary.

They are just very different languages that serve different 
purposes.  D isn't in general competing with Rust, any more than 
Go would have been a serious choice for Mozilla to write their 
browser engine in.  For some things, sure, but the set of use 
cases for a general purpose language is enormous.

I don't think D is going to go anywhere but continuing to grow 
organically. Life is risk.  Maybe we will have war with Russia.  
Or maybe rising rates will detonate the private market and big 
tech, with consequences for the market for programmers and some 
kinds of software.  These things are possible too.  I don't think 
D is going to drop off the face of the planet because quietly the 
use cases it serves very well are, quietly, growing rather 
quickly, and that's really all that matters in the bigger picture.


> I am sure there will be lots of opinions regarding this post 
> but its suffice to say that my decision to go with Go ( no pun 
> intended ) is finally. I hope this final post is some 
> indication of the issues that have plagued my decision process.

I hope it works out well for you. I'm sure it will.


Laeeth




More information about the Digitalmars-d mailing list