Walter Bright:

>> But I can say that D is already not the best language
>> to develop non-toy operating systems.
>Why?

This is partially off-topic to the topic of this thread.

I have not written an OS yet, so I can't be sure. But from what I have read and 
seen D seems designed for different purposes, mostly as a high-performance 
low-level application language that currently is programmed in a style that 
doesn't assume a very efficient GC.

D has many features that are useless or negative if you want to write code 
close to the metal as a kernel, as classes, virtual functions, garbage 
collector, operator overloading, interfaces, exceptions and try-catch-finally 
blocks, closures, references, delegates, nested functions and structs, array 
concat, built-in associative arrays, monitor, automatic destructors. When you 
write code close to the metal you want to know exactly what your code is doing, 
so all the automatic things or higher level things become useless or worse, 
they keep you from seeing what the hardware is actually doing.

On the other hand current D language (and C and C++) lacks other 
hard-to-implement features that allow the kernel programmer to give more 
semantics to the code. So such semantics has to be expressed through normal 
coding. Future languages maybe will improve on this, but it will be a hard 
work. ATS language tries to improve a bit on this, but it's far from being good 
and its syntax is awful.

D also lacks a good number of nonstandard C features that are present in the 
"C" compiled by GCC, such low-level features and compilation flags can be quite 
useful if you write a kernel. Even LDC has a bit of such features.

Bye,
bearophile

Reply via email to