H1 2015 Priorities and Bare-Metal Programming
Mike via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jan 31 21:21:14 PST 2015
This is related to the recent publication of D's H1 2015
Priorities [1], but I suspect this post could create a few
tangents, so I decided to post it under its own thread.
IMO D has high potential for kernel programming, embedded
systems, and other bare-metal varieties where high-level language
features are often not needed or even wanted (but sometimes
used). D has some fantastic features for low-level programming
with great power and convenience, but it is currently heavily
biased towards platforms with a full-featured, resource abundant
operating system, and some of it's high-level features get in the
way. Periodically, users pop into the forum, ask questions this,
give it a try, and then leave [2].
There has been the occasional suggestion for a -minimalD compiler
flag or some other twist, but IMO that's not a very elegant or
appropriate solution. I think Rust is headed in a better
direction with it's "minimal runtime" philosophy [3] and features
like #![no_std], #![feature(lang_items)], #[lang = "whatever"],
and extern "rust-intrinsic" [4]. I'm not suggesting D mimic
Rust's approach, but rather learn from it, and provide an
attractive alternative that jives with D's way of doing things.
However, when I read "Foster library additions over language
changes, and raise the bar on language changes", I suspect
changes to accommodate this kind of programming will be viewed as
"shuffling the deck". So, I'm currently on the fence with D.
Rust and Nim are showing great promise in this domain, Rust has
already implemented supporting features (as mentioned above), and
Rust's Zinc project [5] is really catching on.
Is D's core team genuinely interested in this domain?
If you are genuinely interested, are you committed? And if so,
what direction would you like to take? So far, my ideas have
been very unpopular and I'm growing weary fighting the current.
How can I contribute in a way that gets us both where we want to
go?
If you're not particularly interested in this domain, that's OK.
Perhaps you are interested, but not at this time. Perhaps you
are only interested in mobile and mico-PC platforms that have
full-featured operating systems, but not resource constrained
bare-metal platforms. Whatever the case, please let it be known.
Thanks in advance for your constructive comments,
Mike
[1] - 2015 H1 Vision -
http://forum.dlang.org/post/majurl$2457$1@digitalmars.com
[2] - Why D is not a Systems Programming Language -
https://github.com/klamonte/cycle/blob/master/docs/no_more_d.md
[3] - Rust Programming Language - http://www.rust-lang.org/
[4] - Writing Safe Unsafe and Low-Level Code in Rust -
http://doc.rust-lang.org/0.11.0/guide-unsafe.html
[5] - Zinc, the bare metal stack for rust -
https://github.com/hackndev/zinc
More information about the Digitalmars-d
mailing list