I have a plan.. I really DO
punkUser
andrew.lauritzen at gmail.com
Sat Jun 30 12:59:02 UTC 2018
I don't normally contribute a lot here but as I've been using a
fair mix of C/C++, D and Rust lately for a variety of projects
from game dev to web to services, I have a few thoughts.
Without exhaustively comparing the different pros/cons of the
languages, the most important thing that makes me pick D for a
project these days is actually vibe.d. It's the perfect balance
between letting me expose my low level stuff as a network/web
service easily while not trying to take over too much of my
application or conversely get me to manually write async network
state machines. I'd happily argue that its cooperative fiber
model is actually superior to C#'s, and while it's not quite to
the level of Go (mostly just because it's not as ubiquitously
supported in the standard library), I'll still happily take the
trade-off to use a language closer to C/C++.
Rust's web framework and cooperative fiber story is still just
forming, and I have some concern they'll go down the C# route
which while better than nothing, isn't quite as nice as vibe.d
where any function can effectively be part of a cooperative fiber
without the need for infectious markup everywhere. Rust's syntax
is also a fair bit different than C/C++ which makes it harder to
collaborate with people for the moment, while D's is close enough
that anyone with a decent amount of C/C++ experience can jump in
pretty quickly.
In terms of what makes me *not* want to use D, while GC is
certainly a factor in some uses, in more cases it's actually that
I want more language and compiler stability. While things have
calmed down somewhat in the past year the number of times a D
update has broken code (mine or code in a dependency) and left me
trying to debug someone else's code deep in a library somewhere
when I'm trying to just do a small update has been far too high.
Rust's "stable" branch and their new epochs model (where the
language can change every few years but critically dependencies
using different epochs work together) is something I would love
to be adopted in D.
In any case I just wanted to give the feedback that from my point
of view the main thing that keeps me coming back to it for new
projects is vibe.d. Thus I'm in favor of making vibe.d a big part
of the selling point and design considerations for D going
forward.
More information about the Digitalmars-d-announce
mailing list