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