On 11/08/16 18:41, Edward Diener wrote:

2) While I greatly respect the programming abilities of Mr. Bright and
Mr. Alexandrescu and their hard work in creating and improving D, having
followed both from the C++ world, the arrogance by which D was initially
and repeatedly compared against C/C++ has been totally out of place
since the beginning. C++ is a very good language and the effort made to
denigrate it with specious and ridiculously false arguments about it
vis-a-vis D as a programming language has almost irreparably hurt D as a
serious programming language irrespective of its actual abilities or
weaknesses. You are not going to appeal to the really intelligent
programmers out there if you are not honest and rigorous in discussion
of your own programming language in relation to others. All that you end
up doing is to alienate anyone with real programming intelligence by the
tactics that D has taken over the years with such comparisons.

To me, this is not so much the question of alienating C++ programmers, as it is that this arrogance is actively hindering D from becoming better. Any time I raise an issue I have with D, the discussion with both AA and WB seems more like an argument designed to prove to me that I am wrong than like a discussion aimed to make D better. Once they decide that something is best a certain way, it is very very difficult to make them see the downsides of that decision, much less act on it.

And, to me, this is an actual threat to D's future as a wide spread programming language. This attitude, if unchanged, will doom D to become a niche language, only suited for those who do not need it for anything that WB and AA have not thought of.


4) As a C++ programmer largely interested in C++ template programming,
C++ concepts etc., and potential compile-time/run-time introspection, I
have never found a compelling reason to use D rather than C++. I do
recognize that C++'s template syntax is difficult and abstruse but I do
not and have never seen where D improves upon these matters in any
serious and rigorous way. This may be because the documentation about
these areas in D is either very light or almost completely lacking. Even
in Mr. Alexandrescu's book the discussion of these areas was very light
in my estimation. So whatever D has to offer in these areas, if there
are really impovements, is either lacking in the D documentation or does
not really exist for me.

Here I'm not sure I follow you. I love C++, but its compile time execution is just horrible. Yes, if you are fluent with functional programming you will probably get by sufficiently, but since C++ isn't itself a functional language, this means doing C++ meta-programming requires a different programming paradigm than programming C++.

It is a very very very high barrier to pass.

Personally, I'm not a fan of doing too much during compile time. I think it introduces a level of complexity into your program, where the program as seen by the CPU is considerably different than the one you see in your source editor, that is hard to track and debug. As such, the weakness of C++'s meta programming has not been a major setback for me.

If you do like compile time programming, however, I don't see how you can claim that C++'s is good enough, when compared to D's.

Shachar

Reply via email to