It is the year 2020: why should I use / learn D?

Laeeth Isharc laeeth at kaleidic.io
Thu Nov 22 22:04:36 UTC 2018


On Thursday, 22 November 2018 at 11:14:54 UTC, Chris wrote:
> On Thursday, 22 November 2018 at 04:07:32 UTC, Laeeth Isharc 
> wrote:
>
> [snip]
>
> By the way, you keep mentioning that you use D for your own 
> internal stuff, and as far as I can see a lot of companies that 
> use D do the same. They have their own in-house ecosystem, and 
> that's fine. Of course, for this kind of usage D might be OK 
> (apart from the facepalm flaws it still has) - or any language 
> for that matter.
>
> However, a lot of IT companies (small, medium and big) also 
> have to adapt to the market in terms of third party products 
> like Android and iOS and other technologies (including those 
> that do not yet exist). Once that's the case, D is one of the 
> worst choices possible.

D doesn't have the best GUI libraries, that's quite true.  JNI is 
not that bad so if you wanted everything but the front end in D 
would it be so tough?  You might be right about the situation on 
ios as I haven't heard of people doing much there in D - last I 
heard the hard work was done but the last stage - something 
relating to bitcode if I recall right.

> Everything takes years

True.  Why does it bother you? Did somebody suggest it would be 
otherwise? If one puts some energy behind making something happen 
it's not that bad, I think.  Eg autowrap for JNI shouldn't take 
more than a couple of months of work to be mostly useful I think.

> anything that is not directly related to (some specific 
> features of) the language is treated as lowest priority

Who is treating, and what is this word priority I keep hearing.

It's open source, ordered anarchy.  It's hard enough persuading a 
creative person that you pay to do something he doesn't want to 
do.  How do you suppose it is that Walter and Andrei can assign 
priorities more to your liking and make people work on what you 
would wish?   They cannot.

I think you're applying rules from your work domain to an 
environment where they don't apply.   That's simply not how 
volunteer open source works.

If there's a single corporate backer of course it's different if 
by solving their problems they solve yours too or if can 
influence them.  That's intrinsically not the kind of community D 
is, so if you want to achieve a generative result here then your 
means do not suit your ends.

, and a small or medium
> sized company may not be able "to roll its own" all the time,

Indeed, not unless they have fairly talented and creative 
programmers and the management is technical.

Most companies probabily shouldn't introduce D in a top down way. 
  They're just not cut out for it.

Elsewhere I called D a secret weapon that is only available to 
the few (because you have to have the culture, capabilities and 
will to be willing to trade off less easy today for more simple 
tomorrow).

That's okay, isn't it?  It's a big wide world and I think there 
won't be fewer people writing native code in a decade but rather 
more.

You don't need to appeal to everyone if you are the challenger 
and it is pointless to do so.

> especially if everything is still raw and has a lot of loose 
> ends as in the case of D. And you know what, customers don't 
> care about your problems. They simply go somewhere else, if you 
> can't deliver.

Yes.  For example if you have a storage system that is not 
performant or does not add features sufficiently quickly you will 
lose customers. Its tough having customers but I think its a 
matter of picking your poison after deciding what's important to 
you. If you don't want to use D, I wouldn't dream of trying to 
change your mind.  Maybe it's not for you, or not for you right 
now.

But really one must consider one's ends and pick means to serve 
those.  The means of complaining on the forum doesn't actually 
accomplish anything.  If there's something you want in D that you 
would use, then probably the most effective route will be to make 
a small beginning yourself and try to persuade others to be 
involved.  Or you could just pay for it yourself, or try to 
persuade others to club together to pay for it.

> So what you need is a language that provides adaptability out 
> of the box.

D notably is adaptable.  It just doesn't come ready adapted.

>this is why a lot of new languages
> invest in exactly this

Where do you think the money will come from to invest, exactly?  
Grumble enough on the forum until Google decide to sponsor the 
language and invest in the things you want?

I don't think it works like that.

Being an entrepreneur is quite difficult.  How does one create 
something from nothing?

In my experience when you are ready for it you figure out where 
you want to go, don't worry too much if your goal seems audacious 
or unrealistic, and make a humble little start and persist, 
correcting course along the way as new information arrives.

I think that's the way in general to push the world in a 
direction you think would be a good one.  An honest, thought 
through proposal by far beats complaining.  And working code 
beats a proposal.

>Only in
> this way they will be adopted by users.
That's not how it works for a language like D.  Read the 
innovators dilemma by Christensen as well as Thiel Zero to One.

Your "cosmos" is D and
> your own company. But most other people have to cater for third 
> party software as well and adapt to an ever changing market.

I don't have time to look but I'm curious.  My guess would be 
most software is written within the enterprise for internal use 
and then add software as a service and I should think that's a 
very significant chunk of the total market.  So maybe D isn't 
right for some users or not sufficiently mature in ecosystem and 
tooling right now. Okay. Do you find that especially surprising?


> I think this is a fact you're not really aware of. You can talk 
> all you like about the cosmos and the universe, but all you see 
> are your own needs for which D might be fine. But reality is 
> different for other people.

My impression is the opposite.  I don't doubt that D isn't right 
for many, but you seem to be suggesting that what you feel is 
true for you must inevitably be true for the whole world.  I 
think that's contradicted by observed experience.

And as far as my world goes, finance is quite a decent employer 
of programmers and market for technology.

If you're the challenger you really don't need to appeal to 
everyone to grow.  You just need to increase awareness and appeal 
a bit to people who are already poised on the edge.

It's better to not be taken seriously if you are the challenger 
and that camouflage may well be a matter of survival.  You do not 
want the dominant players to take you seriously and try to 
imitate your advantages or to fight dirty until you are more than 
ready for it.

Not that it's calculated, but it's how natural waves of adoption 
unfold.



More information about the Digitalmars-d mailing list