Quora: Why hasn't D started to replace C++?

psychoticRabbit meagain at meagain.com
Sun Feb 11 00:03:16 UTC 2018


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



More information about the Digitalmars-d mailing list