On Tuesday, 30 January 2018 at 20:45:44 UTC, Andrei Alexandrescu wrote:
https://www.quora.com/Why-hasnt-D-started-to-replace-C++

Andrei

Why indeed!

Feature D C C++ C# Java (and this was bacvk in
=====================================
Garbage Collection Yes No No Yes Yes

Functions
=========
Function delegates              Yes No No Yes No
Function overloading            Yes No Yes Yes Yes
Out function parameters         Yes Yes Yes Yes No
Nested functions                Yes No No No No
Function literals               Yes No No No No
Dynamic closures                Yes No No No No
Covariant return types          Yes No Yes No No

Arrays
======
Lightweight arrays              Yes Yes Yes No No
Resizeable arrays               Yes No No No No
Arrays of bits          Yes No No No No
Built-in strings                Yes No No Yes Yes
Array slicing           Yes No No No No
Array bounds checking           Yes No No Yes Yes
Associative arrays              Yes No No No No
Strong typedefs         Yes No No No No
Aliases         Yes Yes Yes No No

OOP
===
Object Oriented         Yes No Yes Yes Yes
Multiple Inheritance            No No Yes No No
Interfaces              Yes No Yes Yes Yes
Operator overloading            Yes No Yes Yes No
Modules         Yes No Yes Yes Yes
Dynamic class loading           No No No No Yes
Inner classes           No No No No Yes
Covariant return types          Yes No Yes No No

Performance
===========
Inline assembler                Yes Yes Yes No No
Direct access to hardware               Yes Yes Yes No No
Lightweight objects             Yes Yes Yes Yes No
Explicit memory allocation control              Yes Yes Yes No No
Independent of VM               Yes Yes Yes No No
Direct native code gen          Yes Yes Yes No No
Templates               Yes No Yes No No

Reliability
===========
Design by Contract              Yes No No No No
Unit testing            Yes No No No No
Static construction order               Yes No No Yes Yes
Guaranteed initialization               Yes No No Yes Yes
RAII            Yes No Yes Yes No
Exception handling              Yes No Yes Yes Yes
try-catch-finally blocks                Yes No No Yes Yes
Thread synchronization primitives       Yes No No Yes Yes

Compatibility
=============
Algol-style syntax              Yes Yes Yes Yes Yes
Enumerated types                Yes Yes Yes Yes No
Support all C types             Yes Yes No No No
Long double floating point      Yes Yes Yes No No
Complex and Imaginary           Yes Yes No No No
Direct access to C              Yes Yes Yes No No
Use existing debuggers          Yes Yes Yes No No
Struct member alignment control Yes Yes Yes No No
Generates standard object files Yes Yes Yes No No
Macro preprocessor              No Yes Yes No No

Other
=====
Conditional compilation         Yes Yes Yes Yes No

Reply via email to