How does D improve design practices over C++?
Janderson
ask at me.com
Wed Oct 29 08:21:13 PDT 2008
Walter Bright wrote:
> Janderson wrote:
>> Hi,
>>
>> I was talking with some collages at work and they asked me how D
>> enforces good programming practices. For course I mentioned a couple
>> of the ones I knew of hand -
>>
>> - Unit checking
>> - Design by contract
>> - Invariant checks
>> - Stronger const
>> - Modules
>> - Garbage collection
>> - No automatic copy constructor
>> - More restrictive operators
>> - Delegates (Specifically, encouraging there use by making them simple
>> to use)
>> - Specific constructs such as Interfaces
>> - More restrictive casting
>> - No C style Macros
>>
>> I'm sure I've missed a lot in this area. I'd like to email them a
>> good list of "good coding design" that D promotes through syntax.
>> Note: The C++ verse D page is not what I'm looking for. I'm more
>> interested in coding practices then anything else. For instance
>> things that you can mess up in C++ but D won't let you.
>
> It's a good idea to come up with such a list. Let me add:
>
> - Overload sets which prevent function call hijacking
> - Nested functions
> - Structs with value semantics, Classes with reference semantics
> - Ability to move (bitcopy) a struct without invoking construction
> - Alias parameters to templates
> - Compile time function evaluation
> - Function, array, and struct literals
> - String mixins
> - In, reference, and out function parameters
> - Lazy function parameters
> - Standardized way of doing conditional compilation
> - Standardized way of debug conditionals
> - Warnings on implicit casts that lose bits
> - No uninitialized data
> - User defined default initializers for typedefs and fields
> - Template constraints
>
Here's another big one:
- encourages less frequent use of pointers
-Joel
More information about the Digitalmars-d
mailing list