D is dead

Laeeth Isharc laeeth at laeeth.com
Thu Aug 23 20:52:23 UTC 2018


On Thursday, 23 August 2018 at 07:27:56 UTC, JN wrote:
> On Thursday, 23 August 2018 at 06:34:01 UTC, nkm1 wrote:
>> The only real problem with D is that it's a language designed 
>> with
>> GC in mind, yet there are numerous attempts to use it without 
>> GC.
>> Also, supporting GC-less programming gets in the way of 
>> improving
>> D's GC (which is pretty damn bad by modern standards).
>> That's the only real technical problem.
>
> I think a large part is defining what kind of users D wants to 
> attract. There are two main groups of programmers, and there is 
> a vast rift between those groups. One group is people who are 
> closer to OOP programming and languages such as Java, C#, 
> Javascript. These people are OK with things like garbage 
> collectors and in cases where it matters, have learned to work 
> around it (avoid allocations in hot loops, etc.). I feel like 
> D1 was attractive for these people for having the convenience 
> they are used to from their languages (batteries included 
> standard library, automatic memory management), with additional 
> features that their language/environments struggle with (C 
> interop, native binaries), everything packed
> with a very clean syntax.
>
> The second group are the C/C++ programmers, the 'zero cost 
> abstraction' group. For this group of programmers, any overhead 
> is a disadvantage, garbage collector is unusable for most 
> usecases (whether true or not, that's the perception). D1 
> appealed to those people, for having a clean syntax and the 
> features they know without having to include the monster that 
> is Boost. Battlefield was different back then too. Around D2 
> came the competition, be it Rust, Go, or C++17. Go is appealing 
> more to the first group of programmers, since it has a GC, and 
> mostly sticks to webservice usage. Rust is heavily appealing to 
> the zero-cost abstraction group and C++17 obviously appeals to 
> C++ folks.
>
> Is it possible to make a language that both groups would be 
> happy to use? Perhaps, or perhaps the gap is too wide. Is 
> adding features like dip1000 and betterC spreading ourselves 
> too thin? Perhaps. Perhaps there are features that aren't 
> really used, and should be reworked or cut from the language 
> instead (has anyone ever used contracts?).
>
> D's not UNIX (DNU?), but the first rule of UNIX philosophy is 
> "Make each program do one thing well. To do a new job, build 
> afresh rather than complicate old programs by adding new 
> 'features'.". It may or may not be relevant here.
>
>
> BTW. on the offtopic note - the thread title doesn't look too 
> good. Imagine being a newcomer, and the first thread you see on 
> the forum is titled "D is dead".

Not sure about your taxonomy.  There are quite a few people 
involved in D who are native code C/C++ developers spiritually 
and by prior work focus who moved to D and don't mind, in fact 
maybe relish the GC.  One might include Walter and Andrei in 
this. I don't want to speak for Atila but I would like to see his 
face if you tell him that he is deep down a Java programmer at 
heart, as I don't believe that's quite right.  I don't think he 
despises the GC even though he has written libraries that make it 
easier not to use it.

It's silly to think that languages are in a death match 
competition against each other in some zero-sum game because 
there's no justification for it.  There have never been so many 
programmers in the world as today, and in twenty years i doubt 
there will be fewer.  There have also never been as many 
practitioners who write code as part of their job doing something 
else as today.  Furthermore the amount of code written depends on 
the extent to which one can express ones ideas efficiently in 
code.  I personally would have programmed much less since 2014 if 
I had to write in a language I didn't find agreeable, and I would 
have hired fewer programmers too - quite a lot of code exists now 
that simply wouldn't exist without D.

How can you possibly form an opinion on the different sorts of 
programmer ?  Most programmers aren't active on social media and 
don't work for companies that talk in public about their work.

Go for example just isn't a relevant alternative to what I am 
doing except perhaps for DevOps.  It solves a different kind of 
problem and is intended to be used by a different sort of person 
- Google hire a lot of programmers without much experience and 
have to find a way to get useful work out off them.  That's 
different from my own challenges.

For me the relevant alternatives might be Julia and Python.  And 
even then they aren't very close substitutes.

Implicitly D is even a competitor for VBA because our little DSL 
written in D solves many of the problems VBA and Excel are used 
for in a much better way.  One could have done that in many other 
languages too, but it is in D because it was originally written 
for another purpose and turns out it solves this problem too.

There's a chap here with a family business where its PHP versus D.

For Bastian it was a modern Pascal dialect Vs D versus Ada.

Most code is written in business and academe.  The beautiful 
thing about being up and coming is you don't need to take on the 
contender.  You just need to find a few more adherents from 
divers sources.  It's absolutely by no means what you want to be 
thought of as a threat until it's too late.  You want most people 
to write you off whilst having a very high appeal to those to 
whom you do appeal.

Does D have a very high appeal to certain kinds of programmer?  
"So I can work from home and write D?  Sounds good, when should I 
start?".  Another guy. "What are your compensation expectations?" 
"I earn X but if it's working in D then we can talk about it - I 
could take a pay cut".  These aren't callow youth filled with 
unrealistic ideas about what it's like to be a programmer or what 
it's like working in D.

I think the niche of D is defined differently from conventional 
categories that people have come up with.  It's especially suited 
to some domains yes (these happen to be rapidly growing domains - 
they should make an ETF based on the share prices of companies 
using D if only they were public) but I think the appeal is based 
on values, taste and virtues.  As regards the latter you have to 
be able to endure a bit of discomfort to get very far with D.  So 
for what I am doing personally the very things that people 
grumble about on Reddit are net positives for me.  I need people 
who know how to learn and can figure things out without being 
instructed step by step what to do.

Many businesses are quite different from each other, particularly 
SMEs that create the jobs.  Even in my little part of the world 
there's a massive difference between companies in the sector and 
they do things in quite different ways because they have 
different problems, goals and people.

The world of social media is a very different place from the 
world of principals making decisions about how to solve their 
business challenges.  And I tell you that faced with an 
understanding of these problems the same people that might write 
on media about the problems of D may have a different assessment 
when it comes to the practical question of whether D is indeed a 
good answer to the practical commercial problem you face.

It's very hard to generalise.  If one is in the business of 
making predictions one ought to make them concrete and back them 
with money as a wager.  Otherwise it's just talk.  And beyond 
talk I don't think concrete actions are more interesting.  In 
open source more even than business sometimes problems are also 
opportunities and it's not deluded happy talk to suggest there's 
some benefit in trying to be the change in the world that you 
wish to see.






More information about the Digitalmars-d mailing list