On Wednesday, 29 October 2014 at 08:55:39 UTC, ponce wrote:
On Wednesday, 29 October 2014 at 04:37:47 UTC, Walter Bright wrote:
http://www.codergears.com/Blog/?p=421

This is interesting as it relates to D's choices:

1. No common build system ,Visual Studio, make and CMake are the most widely used

D - no change.

2. Namesapces not widely used

D - forces use of namespaces, i.e. modules

3. Inheritance and polymorphism are widely used

It's my impression that D uses a lot more parametric polymorphism (i.e. templates) than virtual inheritance.

4. Design Patterns not widely used

Don't know if D changes that.

5. No common frameworks for the GUI, database access and logging needs.

Same for D, though std.experimental.logger may change that.

6. Smart pointers not enough used

The general problem with SP is you have to proactively use them, they are not the default. D's gc pointers are the default.

7. STL widely used , not boost

Phobos' ranges appear to be widely used.

8. Exceptions not widely used

Exceptions are embraced in D, perhaps even excessively :-)

9. For many projects two or more ways used to represent a string class

D's strings are built-in to the language, which is a huge win for consistency. Even modern C++ suffers from two distinct string types.

10. New created projects use more the new C++ standards

As they should.

The sad reality of C++ programming is that you can't use most things, and people might resist basic stuff like exceptions and smart pointers on unfamiliarity alone. Some small things like the lack of std.path in the STL cause inordinate amount of damage.

On Ubisoft's presentation at CppCon, Nicolas Fleury even mentions that they have written tools to generate code, instead of relying on templates due to error messages and compilation time.

--
Paulo

Reply via email to