
The D Language Front-End Merged Into GCC 9 - Ace17
https://www.phoronix.com/scan.php?page=news_item&px=GCC-9-Merges-D-Language
======
ilovecaching
I was sad that D never took off. I had high hopes that it would eventually
replace C++ for my professional development. D was a language that really
enabled functional programming, and I mean _real_ functional programming while
retaining the low level control of C.

We learned a lot from pushing D, and now I am working full time as a Rust
developer. Rust doesn't have everything D has, but it also has plenty that D
doesn't have and it's still in the same spirit of safer, more expressive C++
with the same efficiency. I hope that D developers will check out Rust and try
to push a single front, I think it has a better chance of knocking C++ off its
pedestal.

~~~
jake_the_third
The critical faults with D that prevented it from displacing C* were that it
relied on a GC by default and that it wasn't open source. Things might have
played out much differently had they addressed these issues early on.

* aside from inertia, but older languages also had inertia once.

~~~
WalterBright
It's been open source for 10 years now.

~~~
jake_the_third
And the BSDs have mostly moved passed the era of legal ambiguity that plagued
them early in their development. For better or worse, timing and initial
impressions count.

------
WalterBright
This is almost entirely due to the indefatigable work by Iain Buclaw.

~~~
jordigh
This has taken a long time! But also, it's just him working almost alone. I'm
so happy this finally happened, though! Yay, more D!

------
frabert
So what is the currently "best compiler" for D? Is it DMD or GCC or...?

~~~
WalterBright
Ain't it great to have a choice? Each has their strengths and weaknesses, and
have different feels. Just install all three, and see which one suits your
style best.

~~~
coldtea
> _Ain 't it great to have a choice?_

Not if the choice leads to duplication of effort, smaller community, feuds and
conflicts, decision fatigue, and so on.

~~~
hnbroseph
_> Ain't it great to have plenty of water to drink?_

Not if it leads to water intoxication.

~~~
coldtea
Only water intoxication is easy to avoid and 99.999% of the population manages
even with tons of water available.

Whereas the things I mentioned are endemic in many communities with such
choices between different implementations.

So not an apt counter-argument. An analogy doesn't just need to be somewhat
similar to the situation -- it needs to have similar ups and downs too.

------
pjmlp
It took longer than originally planned, but it finally happened!

Congratulations to everyone involved.

------
ChuckMcM
I hope the front end is called 'gcd' it makes for a great pun.

~~~
gnulinux
GNU Compiler, D?

~~~
ChuckMcM
GCD is the greatest common divisor, and D is the language with the greatest
common set of features relative to the set of languages that the gcc suite can
compile. So in many ways it is an equivalent to the GCD.

------
philonoist
So this would mean we can write D in GCC implementation? But would this
increase the user base of D?

~~~
chrisseaton
> So this would mean we can write D in GCC implementation?

No it doesn't mean that. GCC coding standards require (old, portable) C or
C++.

~~~
gnulinux
Uhh no, not really, GNU doesn't "require C or C++". First of all GNU coding
standard says C is the most recommended language, not C or C++. It even
suggests Java before C++ (but I suspect that's a relic of old GNU AoT Java
compiler?) and requests people not to use templates (which is hardly what we
call C++ nowadays). Other than that, it's 100% ok to write a GNU package in
any language people can generally understand and there is a free
implementation available, like python, lisp etc. Scheme (via GNU Guile) is
even the "official extension language" of GNU and emacs (one of the more
popular and older GNU packages) is mostly written in lisp.

You must also understand that GNU optimizes for masses to understand the
source code, and GNU coding standard was written when C was a very popular
language and investing in any other language would just be a gamble. Imagine
GNU being written in TCL or Ada... C was and still is a safe choice if you
want a good deal of people to understand your code decades later.

~~~
xeeeeeeeeeeenu
GNU coding standards != GCC coding conventions

[https://gcc.gnu.org/codingconventions.html](https://gcc.gnu.org/codingconventions.html)

------
MaxBarraclough
Congratulations, that's quite a milestone.

------
dvfjsdhgfv
That's great news! Kudos to everyone who made it possible!

------
jbb67
Great news.

Although given that gdc is already a thing I can install and use today, what
practical difference does it make?

~~~
jordigh
I kind of hope it means it will get maintainership from people other than Ian.

------
mesid
Congrats!

I had briefly worked and contributed to the SDC compiler. Wonder how that's
doing.

------
platform
does this mean that D-lang will support compilation to all the CPU/OS
combination, that will be supported by GCC 9?

or there will be a subset?

Great news, very happy to hear this, and the release of the BetterC.

------
vram22
D is a nice language. It has a wide range of features, but one can get started
with it without learning all of them.

Here are a handful of D programs that use various features of the language and
some of its libraries, on my blog. Most of them are simple command-line
utilities to do various things. Readers may find them of use to get a flavor
of the language and to know some of the kinds of things it can be used for.

I used the DMD compiler to compile and run them on Windows.

A few of the posts are about interviews too.

Don't miss the interview where the creators or key people from the C++, Rust,
D and Go languages talk to each other on a panel about some of the pros and
cons of their respective languages - and incident near the end of the video,
involving Bjarne Stroustrup (the LangNext video below).

Porting the text pager from Python to D (DLang):

[https://jugad2.blogspot.com/2017/04/porting-text-pager-
from-...](https://jugad2.blogspot.com/2017/04/porting-text-pager-from-python-
to-d.html)

Simple parallel processing in D with std.parallelism:

[https://jugad2.blogspot.com/2016/12/simple-parallel-
processi...](https://jugad2.blogspot.com/2016/12/simple-parallel-processing-
in-d-with.html)

Video: Interview: GoingNative 6: Walter Bright and Andrei Alexandrescu - D
Programming Language:

[https://jugad2.blogspot.com/2016/11/video-interview-
goingnat...](https://jugad2.blogspot.com/2016/11/video-interview-
goingnative-6-walter.html)

Using std.datetime.StopWatch to time sections of D code:

[https://jugad2.blogspot.com/2016/11/using-
stddatetimestopwat...](https://jugad2.blogspot.com/2016/11/using-
stddatetimestopwatch-to-time.html)

Read from CSV with D, write to PDF with Python:

[https://jugad2.blogspot.com/2016/10/read-from-csv-with-d-
wri...](https://jugad2.blogspot.com/2016/10/read-from-csv-with-d-write-to-pdf-
with.html)

Command line D utility - find files matching a pattern under a directory:

[https://jugad2.blogspot.com/2016/10/command-line-d-
utility-f...](https://jugad2.blogspot.com/2016/10/command-line-d-utility-find-
files.html)

min_fgrep: minimal fgrep command in D:

[https://jugad2.blogspot.com/2016/10/minfgrep-minimal-
fgrep-c...](https://jugad2.blogspot.com/2016/10/minfgrep-minimal-fgrep-
command-in-d.html)

num_cores: find number of cores in your PC's processor:

[https://jugad2.blogspot.com/2016/09/numcores-find-number-
of-...](https://jugad2.blogspot.com/2016/09/numcores-find-number-of-cores-in-
your.html)

Calling a simple C function from D - strcmp:

[https://jugad2.blogspot.com/2016/09/calling-simple-c-
functio...](https://jugad2.blogspot.com/2016/09/calling-simple-c-function-
from-d-strcmp.html)

Component programming in D - DDJ article by Walter Bright:

[https://jugad2.blogspot.com/2016/09/component-programming-
in...](https://jugad2.blogspot.com/2016/09/component-programming-in-d-ddj-
article.html)

Func-y D + Python pipeline to generate PDF:

[https://jugad2.blogspot.com/2016/09/func-y-d-python-
pipeline...](https://jugad2.blogspot.com/2016/09/func-y-d-python-pipeline-to-
generate-pdf.html)

Interview: Ruminations on D: Walter Bright, DLang creator:

[https://jugad2.blogspot.com/2016/08/interview-ruminations-
on...](https://jugad2.blogspot.com/2016/08/interview-ruminations-on-d-
walter.html)

file_sizes utility in D: print sizes of all files under a directory tree:

[https://jugad2.blogspot.com/2016/08/filesizes-utility-
print-...](https://jugad2.blogspot.com/2016/08/filesizes-utility-print-sizes-
of-all.html)

Video: C++, Rust, D and Go: Panel at LangNext '14:

[https://jugad2.blogspot.com/2016/08/video-c-rust-d-and-go-
pa...](https://jugad2.blogspot.com/2016/08/video-c-rust-d-and-go-panel-at-
langnext.html)

deltildefiles: D language utility to recursively delete vim backup files:

[https://jugad2.blogspot.com/2016/07/deltildefiles-d-
language...](https://jugad2.blogspot.com/2016/07/deltildefiles-d-language-
utility-to.html)

[DLang]: A simple file download utility in D:

[https://jugad2.blogspot.com/2016/05/dlang-simple-file-
downlo...](https://jugad2.blogspot.com/2016/05/dlang-simple-file-download-
utility-in-d.html)

Getting CPU info with D (the D language):

[https://jugad2.blogspot.com/2016/05/getting-cpu-info-
with-d-...](https://jugad2.blogspot.com/2016/05/getting-cpu-info-with-d-d-
language.html)

------
fithisux
Great news.

------
BonesJustice
Hey, you taught me a new word! Cheers.

~~~
fb03
Nice, for me it was a new word as well, even tho it was largely understandable
by the radicals (in-/un- and fatig- + able)

What I wonder is:

(?) Is OP a native English speaker and is this word used in daily contexts,

(or?) did he use it because he might not be an English speaker and he searched
for the words in his own language and that is the word that came out, instead
of the more common "tirelessly".

(or?) he is a native speaker and he knows this word is not used in
daily/common conversations... so, by using this different concoction, did he
meant to translate some additional feeling? is "indefatigable" a stronger
"tirelessly"?

I know it's oddly specific but I am not a native speaker and insight into
these odd ducks helps me build a maturer mind model of it all.

Thank you.

~~~
WalterBright
I was born in America :-)

I don't recall ever hearing the word, but it appears a lot in books I've read,
even recently written ones.

"indefatigable" fits what I wanted to convey better than "tirelessly". From
the Cambridge English Dictionary:

"always determined and energetic in trying to achieve something and never
willing to admit defeat"

Iain has had a plethora of reasons to abandon the project, and nobody would
have blamed him. But he's persisted in the face of little encouragement, less
support, and lots of complaining. It's a massive achievement. Indefatigable is
the perfect word.

~~~
fb03
Thank you!

