Comment Here's a game (Score 2, Insightful) 526
On the D website, there is an overview of the D programming language which includes a list of C/C++ features that have been deliberately
dropped. My game comprises thinking of your own favourite programming language - be it Perl, Java, Eiffel or Visual Basic - and seeing how many of these features have been 'dropped' from it.
My favourite language is the Object Pascal in Delphi. 'Yes' means 'Yes Pascal doesn't have this feature'.
- C source code compatibility - Yes. Wow, gosh.
- Link compatibility with C++ - No, can be linked to C++ Builder modules
- The C preprocessor - Yes
- Multiple inheritance (ie Full not Java-style) - Yes
- Namespaces (use modules instead) - Yup
- Tag name space - Yup
- Forward declarations (compiler searches whole module for name definition) - Nope
- Include files - Mostly 'Yes' but a little bit 'No'. Delphi does allow includes, but it doesn't use them in the C/C++ sense; it imports binary symbol tables like D. Score 1/2.
- Creating object instances on the stack as opposed to the heap - Yes, dropped when Turbo Pascal became Delphi
- Trigraphs and digraphs - Yes
- Preprocessor - Yes
- Non-virtual member functions - No, but the Delphi syntax copes better than C++ with the cited problem (no error messages when you fail to supply a virtual base class) by using an extra keyword - override - to signal programmer intent. Score 1/2.
- Bit fields of arbitrary size - Yes
- Support for 16 bit computers - I suppose 'No' since Delphi 1 was 16-bit.
- Mutual dependence of compiler passes - I think 'Yes', but I am out of my depth
- Compiler complexity - Probably Yes - deduced from Object Pascal's fast compilation. Besides everything is less complex than C++.
- Distinction between . and ->. Yes - uses only '.' operator.