C++ developer choices in open source projects

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 29 00:53:33 PDT 2014


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.

I do like C++, even with its warts, as my bookshelf can attest.

However, this is the sad reality of the language. In which what 
ANSI/ISO give us and what we are allowed to use are two different 
realities.

Almost everything from the standard that makes C++ modern, is 
frowned upon in most companies, leaving it little more than a 
safer C.

This was well shown at CppCon, with one corner showing what cool 
stuff C++11 and C++14 bring to the table, and the other corner 
showing laundry lists of forbidden features.

Personally, this is the reason I enjoy C++ in projects under my 
control and am an happy JVM/.NET camper at work. It just wouldn't 
be the language I enjoy.

Now with Java 9+ AOT compilation, .NET Native, Swift, Go, D, 
Rust, Objective-C coming into the picture, C++ will be driven 
further down the stack it seems, regardless of what the committee 
might say.

Which in the end might be good opportunity for D.

--
Paulo



More information about the Digitalmars-d mailing list