Ola Fosheim Grøstad:
Phobos is too much of a scripting-language library to me, too
much like Tango, and hacking in ref counting makes it even more
so.
Those "scripting" needs are real, and rather common. Those high
level things are worth having in Phobos. On the other hand it's
also reasonable to desire something more fit for a lower level
kind of coding. One solution is to split Phobos in two groups of
functions, for the two usages (and to forbid the lower level
functions to call the high level ones), and ship the compiler
with both parts. There is already "Phobos core", but I don't know
if its meaning is the same as you desire (probably not).
To me, a "better C" would have a minimal runtime, a tight
minimalistic standard library and very simple builtin ownership
semantics (uniqe_ptr). Then a set of supporting libraries that
are hardware-optimized (with varying degree of portability).
Clearly D is not a "better C", it's a "better C++/Java". You can
use D as a "better C" but this needs some adaptation, both for
you and the libraries.
However, I think those that are interested in D as a tight
system level language have to spec out "better C" themselves as
a formal language spec sketch. I'd be happy to contribute to
that, maybe we could start a wiki-page. Since a "better C"
would break existing code, it would allow a more "idealistic"
language design discussion. I think that could cut down on the
noise.
I think an experiment would be worth it.
As usual in open source a good way to do things is to start them
yourself and look at how many persons are interested. But from
what I'm seeing Rust is putting itself at a level lower than D,
with all its care for its "no runtime", it even has annotations
and standard library sections for this kind of usage.
Bye,
bearophile