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/[email protected] [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

Reply via email to