D 2.096 and other news
11–20 of 86 posts
Re: D 2.096 and other news
#12Anyone able to report on the growth of the D community at all? Lots of press lately goes to Go and Rust. I even hear about Zig more than I hear about D these days. Yet I know of at least one company putting their eggs in the D basket (Weka). Just curious if anyone else feels like this is kind of risky compared to other more-established options. (obviously chicken and egg issues exist). Haven’t used D in quite a few y…
Certainly D has a lot of support for hobbyists and solo developers, but hasn't seen much adoption from industry. It's a tough language to sell to a large organization. When you're a solo developer D gives you the flexibility and freedom to pursue the many different paradigms that it supports and create your own mini-dialect of the language that suits you perfectly. You can sprinkle some garbage collection here if you…
Re: D 2.096 and other news
#13Pros
1. It felt very practical.
2. Handling packages using Dub was great
3. The D programming book by Ali Çehreli was a great introduction http://ddili.org/ders/d.en/index.html
4. A lot of criticism around D were outdated. Whenever you search stuff about D you still find people talking about the split, disabling the GC invalidating over half the std lib (this has changed a lot) etc, from years ago and a lot has changed since then
5. The forum is very helpful, and I was able to get my issues fixed without anyone telling me to RTFM or being mean
6. It's about 20 Years old and has some very mature libs (like the gtkD lib)
7. Running D code like a script with RDMD was great for rapidly learning D
8. I think having 3 separate compilers is great! DMD, GDC and LDC2 all have their pros and cons
Cons
1. I found the documentation very difficult to grok. I found it more difficult to understand than Racket's or Rust's
2. It feels like lot of the momentum of D is gone, and has been replaced by rust, zig, etc
3. Lack of examples, lack of questions and answers that aren't from 10 years ago
4. Not a lot of intro materials for people who aren't C/C++ programmers
Overall I liked it. Due to a variety of personal reasons I moved on, but if things don't work out with Rust I might be back. I really don't want to try to learn C++ again, I just don't enjoy it.
Re: D 2.096 and other news
#14Earlier quoted context omitted.
Certainly D has a lot of support for hobbyists and solo developers, but hasn't seen much adoption from industry. It's a tough language to sell to a large organization. When you're a solo developer D gives you the flexibility and freedom to pursue the many different paradigms that it supports and create your own mini-dialect of the language that suits you perfectly. You can sprinkle some garbage collection here if you…
Sounds like it’s perfectly suited for indie game development where everything plus the kitchen sink is a must and the more customizable the better.
That said, in principle one could imagine a version of Unity that used D instead of C#, and I think that would be a pretty neat combination.
Re: D 2.096 and other news
#15I ended up playing around with D for a bit before moving to Rust and here were my thoughts Pros 1. It felt very practical. 2. Handling packages using Dub was great 3. The D programming book by Ali Çehreli was a great introduction http://ddili.org/ders/d.en/index.html 4. A lot of criticism around D were outdated. Whenever you search stuff about D you still find people talking about the split, disabling the GC invalida…
D forum is one of the most gracious and nice. There is a lot of gratitude.
Re: D 2.096 and other news
#16Anyone able to report on the growth of the D community at all? Lots of press lately goes to Go and Rust. I even hear about Zig more than I hear about D these days. Yet I know of at least one company putting their eggs in the D basket (Weka). Just curious if anyone else feels like this is kind of risky compared to other more-established options. (obviously chicken and egg issues exist). Haven’t used D in quite a few y…
Started exploring D recently and my experience has been that the community is a bit isolated but not nonexistent. You can find answers for most questions but most of those will be in the D forum. There are some good books though.
Yeah, it's not a popular language. Probably won't suddenly take off as one.
But if you like it and you're writing software for yourself, who cares. It has the most practical C++ interop of any language, which may or may not be important to you.
It's got a core community of very active, helpful folk.
Re: D 2.096 and other news
#17https://dlang.org/changelog/2.096.0.html#dtoh-improvements
Each changelog for the last good handful has seen a lot of work in this area.
I recently had to write and learn a bit of C++ for the first time, and tried at all costs to avoid it (FFI/interop from Rust or D).
I wound up biting the bullet and writing C++ but I learned a lot about FFI in general and how interop works, plus your options available in both languages.
D has this new experimental C++ header generator (which is exciting), plus D has always had:
extern (C++)
Which is capable of directly linking + invoking most C++ things (except constructors/destructors, it can't handle those, you need a function which calls the constructor from within C++) just given a type definition.Then you have "d++", which lets you "#include" C/C++ headers.
Under the hood tries to run an automatic syntax conversion. It can't handle but for simple code it works and can spit out the equivalent D.
https://github.com/atilaneves/dpp
Also you've got "dstep", which is "A tool for converting C and Objective-C headers to D modules"
https://github.com/jacob-carlborg/dstep
And finally you have the somewhat abandoned (but as far as I know mostly functional) Calypso, which is a fork of the LLVM-based D compiler that supports direct interop with C++. It's a pain to build though, haven't gotten around to trying to build it, but it does look wicked cool:
https://github.com/Syniurge/Calypso
pragma (cppmap, "cppheader.h"); // tells Clang to parse cppheader.h but do not import anything
import (C++) NamespaceA.Class1; // imports NamespaceA::Class1
import (C++) NamespaceA; // imports the full namespace
import (C++) *; // imports the entire translation unit
So I am hopeful about the future of the relationship between C++ and D. I would really have loved to have not written that C++ lol.Re: D 2.096 and other news
#18Re: D 2.096 and other news
#19The more time I spend with Python, the more it seems to me that a language defined abstractly and having multiple implementations (none "official") seems to be the healthiest compared to one with a reference compiler/interpreter. D seems to have one "reference compiler" and just a "reference manual".
As for "reference manual" -- well, every tool should have a reference manual. The "reference" here has a different connotation. I think you might be conflating "reference manual" with "formal specification", which is not accurate in this case (and in most cases).
Re: D 2.096 and other news
#20Anyone able to report on the growth of the D community at all? Lots of press lately goes to Go and Rust. I even hear about Zig more than I hear about D these days. Yet I know of at least one company putting their eggs in the D basket (Weka). Just curious if anyone else feels like this is kind of risky compared to other more-established options. (obviously chicken and egg issues exist). Haven’t used D in quite a few y…
Symmetry Investments pay for at least 2 varying-hours staff for the D Language Foundation - including me. This is a recent development. They are seemingly constantly hiring, too.
D is basically designed not to be risky. The whole language is a big collection of simple compromises for the most part, i.e. if you want to write correct code the obvious thing to do is encourage testing and contracts, surprise surprise D has first class unit tests and Ada style function contracts.