A summary of D's design principles

Don nospam at nospam.com
Fri Oct 1 04:19:14 PDT 2010


Walter Bright wrote:
> Steven Schveighoffer wrote:
>> You mean, C# doesn't provide access to the lower level constructs?  
>> IMO D is at the same level even if it does provide inline assembler.  
>> The simple fact is, you don't *have* to use low level features of D, 
>> you can stick to the C#-level constructs.  Hell, you can even write 
>> full useful programs in D without ever touching a pointer or inline 
>> assembler.
> 
> D is both higher and lower level than C#. Lower level because of:
> 
> 1. direct C interface
> 2. inline assembler
> 3. pointers
> 
> Higher level:
> 
> 1. metaprogramming
> 2. support for purity, const, immutable, shared
> 3. CTFE

It's worth noting that the lowest level language is a list of hex bytes.
Asm only gets to that level by the 'db' pseudo-instruction; there are 
several constructs which it doesn't support natively.
Interestingly, one of those constructs is float.infinity, which D _does_ 
support natively.


More information about the Digitalmars-d mailing list