What is D?

Abdulhaq alynch4047 at gmail.com
Sun Apr 7 11:39:01 UTC 2019


What is D?
Where is the gap in the language market?
What is the future of D?

It's a quiet Sunday, Andrei and Walter have got me thinking, time 
for some thoughts to go down an interpipe.

What is D?

D is, or should be, well I'd like it to be:

  (1) A systems language
  (2) A safe language
  (3) A simple language (yes, really) that also has powerful 
constructs
  (4) A fast (at runtime) language

Where is the gap?

The above language, if it really existed, fills a gap in the 
current language market. The new boys on the block make claims to 
some of the above but I don't believe any of them really fill it. 
Could D?

What is the future of D?

The answers to my first question also answer this question:

   (1) D will be the go-to systems language
   (2) D needs to get _safer_. It needs to be obviously safe to 
someone reading  D code, and it needs to fulfil the safety 
promises it makes
   (3) D needs to get _simpler_. Making it simple is the hard part
   (4) D is already fast. Keep it like that

Andrei's thrown the deck of cards in the air. Everyone is 
watching where they land. Which cards to grab? What is the 
direction to head in?

   (1) The ones that make D safer
   (2) The ones that make D simpler

Walter is right when he says that more and more we (homo sapiens) 
need a safe language. We all know why. Will that be D? D+/D3? or 
D-? Safety and simplicity go hand in hand. We must be able to 
reason about the code we write. We don't want 90% of our 
cognitive load to be if this template and these @s and these 
refs/ins/consts/inouts and these overloads and these memory 
allocators and these imports and these mixins, when blended 
together, will do what we expect them to do. Orthogonal features 
really should be orthogonal.

One judgement. I'm just a bystander, I could be totally wrong but 
I think my impressions probably reflect the impressions of many 
other well-wishing bystanders:

D is too complicated. Too many @this and @that. Too many leaky 
abstractions. Proof: sometimes clever people ask questions why 
something doesn't work and Jonathan D, Steve S or Adam R are the 
only people capable of answering them. That doesn't scale and 
it's counter to having a safe language. Old D hands love D's 
power because it's 'easy' to achieve an algorithm in a few lines 
of code. However, it is often not simple to reason about if the 
code will work and if it will be performant. Ref simple vs easy 
by Rich Hickey.




More information about the Digitalmars-d mailing list