D as a betterC a game changer ?
Mike Franklin
slavo5150 at yahoo.com
Tue Dec 26 19:34:35 UTC 2017
On Monday, 25 December 2017 at 11:18:58 UTC, Joakim wrote:
> IOW, it's not a matter of what D got wrong that it needs
> betterC but what those old languages got wrong that D must
> adapt to, because of all the old C/C++ code out there.
Rust is an example of a language that got it right. It is
inherently memory-safe, can interface with legacy code requiring
essentially no runtime, and still has optional reference
counting, and plans for an optional garbage collector [1].
The key innovation in Rust is that it didn't bake such things
into the language. That's where D got it wrong, requiring D to
now back out such things with features like -betterC and @nogc.
There is hope for D, however. It may be possible to obsolete
-betterC, by levereging design-by-introspection directly in the
compiler (i.e. the compiler introspects the runtime, or the lack
thereof). I'm researching this and the first of such PRs was
recently merged [2]. Following this pattern, it may be possible
to use D without the runtime by simply avoiding those D features
that require it (assuming I can figure out how to get the
implementation right). Users will be able to implement the full
runtime, no runtime, and everything in between. In other words,
pay for only what you choose to use.
Mike
[1] -
https://www.rust-lang.org/en-US/faq.html#is-rust-garbage-collected
[2] - https://github.com/dlang/dmd/pull/7395
More information about the Digitalmars-d
mailing list