Skip to content

Instantly share code, notes, and snippets.

@fkromer
Last active July 3, 2017 19:59
Show Gist options
  • Save fkromer/15e72e35ecccdd4d0b987e2626b8e2e8 to your computer and use it in GitHub Desktop.
Save fkromer/15e72e35ecccdd4d0b987e2626b8e2e8 to your computer and use it in GitHub Desktop.
Comparison table: D, C++, C.
language D C++ C
domain application, system application, system application, system
latest standard D2 ISO C11, C14, (C17) ISO C11
standard library phobos e.g. GNU libstdc++ e.g. GNU libc
design by contract builtin framework (e.g. nana, contract_light), compiler Digital Mars (owner is creator of D) framework (e.g. nana, contract_light), compiler Digital Mars (owner is creator of D)
syntax C-like (similar to Java, easier, more readable and less error prone) C++ C
unittesting builtin support or framework framework (e.g. gtest, catch) framework (e.g. see C++ framework)
mocking framework (e.g. DMock-revised) framework (e.g. FakeIt) framework (e.g. see C++ framework)
typing static static static
language binding (limited C++ application binary interface compatibility), C application binary interface C -
programming paradigms imperative, structured, object oriented, generic, functional imperative, structured, procedural, functional, OO, imperative, structured, procedural
memory management garbage collection (automatic) with possibility for allocator/deallocator overriding (dynamic/manual), memory safe SafeD subset which avoids memory curruption at all dynamic/manual, automatic with framework (e.g. bdwgc dynamic/manual, automatic with framework (e.g. bdwgc)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment