August 11, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Emre Temelkuran | On 8/1/2016 11:31 AM, Emre Temelkuran wrote:
> For years, i was travelling along Golang, Rust, Perl, Ruby, Python, PHP,
> JScript, JVM Languages.
> Lastly Crystal Lang and Nimrod, Julia, Haskell, Swift and many more that
> i can't remember.
>
> I'm 24 years old, my first lang was PHP and VBasic then C,C++ and i
> first heard about D after 2005 when i was 14-15 years old.
>
> I always ignored D, i prejudiced that D failed, because nobody were
> talking about it. I decided to check it yesterday, it has excellent
> documentation, i almost covered all aspects. I think D is much better
> than the most of the other popular langs. It's clear as JScript, Swift,
> Julia and PHP, also it's capable enough as C,C++. I think D deserves a
> bigger community.
>
> Why people need NodeJS, Typescript etc, when there is already better
> looking lang?
> Everyone talking about how ugly is Golang. So why people are going on
> it? Performance concerns? Why languages that are not backed up by huge
> companies are looking like they failed?
I am a C++ expert who has looked at D in the past. Perhaps my reasons for not programming in D may be taken as some of the reasons why D "is not popular enough". My opinions are not meant to start a flame war, even if some of my insights may be harsh to those who do use D. They will hopefully give some idea of why and where D went wrong in trying to appeal to the general intelligent programmer as a programming language.
1) Until very recently the documentation for D has been very substandard. I do notice better documentation both on the web site now and a few more books on D as a programming language. For a very long time after D was created, even after version 2 was created, there was essentially no decent documentation at all. If you are trying to promote the use of a computer language to the general public you must create first-rate documentation and explanation of your computer language from the very beginning. Without this first-rate documentation your programming language, no matter how good it might be, is just a toy to those who want to play around with it and try it out. This is the case that D promoted for a very long time, so the expectation that D was going to become popular to the programming public with such poor documentation was just foolish. C took off as a programming language for the general programming when Kernigan and Ritchie wrote their classic book and C++ took off as a programming language for the general public when Stroustrop and subsequently Lippman wrote their classuc books. While I think that Alexandrescu's book is decent it is not written at the level of these others.
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.
3) D has suffered greatly because it has had too many moving targets as if constant change to something slightly better is going to endear programmers to using a computer language. Programmers need stability. The needed to know that if they are using a programming language they are getting a particular standard at a particular time with particular libraries that work. They also need backward compatibility when things change. D appears to have presented an almost constantly moving target to this programmer, where adding/changing some feature is much more important than fixing problems and providing stability.
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.
Edward Diener
|
August 11, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Edward Diener | On Thursday, 11 August 2016 at 15:41:42 UTC, Edward Diener wrote: > the arrogance by which D was initially and repeatedly compared against C/C++ has been totally out of place since the 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. > 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++. This is a good example of why C++ programmers will never move to D. They are quite happy with the language. They want a better C++, and that's C++14, C++17, etc., not D. |
August 12, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to bachmeier | On Thursday, 11 August 2016 at 20:16:04 UTC, bachmeier wrote: > On Thursday, 11 August 2016 at 15:41:42 UTC, Edward Diener wrote: >> the arrogance by which D was initially and repeatedly compared against C/C++ has been totally out of place since the 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. I never understood how people can get their feelings hurt when criticising the language they program in. Either the criticised point is true and one accepts it or not, in that case a factual refutation can be done. Feeling offended is ridiculous. > >> 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++. > > This is a good example of why C++ programmers will never move to D. They are quite happy with the language. They want a better C++, and that's C++14, C++17, etc., not D. Yeah, it's also known as Stockholm Syndrome :-) |
August 12, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Edward Diener | On Thursday, 11 August 2016 at 15:41:42 UTC, Edward Diener wrote: > > 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. > From the best of my knowledge you cannot do these things in in C++: https://p0nce.github.io/d-idioms/#Precomputed-tables-at-compile-time-through-CTFE https://p0nce.github.io/d-idioms/#Enumerate-fields-with-__traits(allMembers)-and-static-foreach https://p0nce.github.io/d-idioms/#Embed-a-dynamic-library-in-an-executable https://p0nce.github.io/d-idioms/#Recursive-Sum-Type-with-matching https://p0nce.github.io/d-idioms/#String-interpolation-as-a-library https://p0nce.github.io/d-idioms/#Using-std.typecons.Flag-like-a-pro https://p0nce.github.io/d-idioms/#Voldemort-types Another expose of what you can achieve with these feature is the "D Cookbook" book. - Chapter 6 Forwarding methods with opDispatch - Chapter 8 Getting a list of child classes - Chapter 8 Determining if a module is available - Chapter 8 Using user defined attributes - Chapter 9 Creating user-defined literals - Chapter 9 Generating data structure from text diagrams Finally what we label "DbI" is quite the game changer: https://p0nce.github.io/d-idioms/#Design-by-Introspection |
August 12, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Edward Diener | On Thursday, 11 August 2016 at 15:41:42 UTC, Edward Diener wrote: > > I am a C++ expert who has looked at D in the past. Perhaps my reasons for not programming in D may be taken as some of the reasons why D "is not popular enough". My opinions are not meant to start a flame war, even if some of my insights may be harsh to those who do use D. They will hopefully give some idea of why and where D went wrong in trying to appeal to the general intelligent programmer as a programming language. > > 1) Until very recently the documentation for D has been very substandard. I do notice better documentation both on the web site now and a few more books on D as a programming language. For a very long time after D was created, even after version 2 was created, there was essentially no decent documentation at all. If you are trying to promote the use of a computer language to the general public you must create first-rate documentation and explanation of your computer language from the very beginning. Without this first-rate documentation your programming language, no matter how good it might be, is just a toy to those who want to play around with it and try it out. This is the case that D promoted for a very long time, so the expectation that D was going to become popular to the programming public with such poor documentation was just foolish. C took off as a programming language for the general programming when Kernigan and Ritchie wrote their classic book and C++ took off as a programming language for the general public when Stroustrop and subsequently Lippman wrote their classuc books. While I think that Alexandrescu's book is decent it is not written at the level of these others. I never got that point, really. When I started to program in D around 2010, documentation for D was almost non existent, but I quickly learned how to use it by just, well, using it. Programming languages have a lot of things in common, once you know one (or two) others are not so hard to learn/understand/use. If you come from a C++ background, understanding D should be a piece of cake. > 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. Cf. Patrick's comment. Let me add this: by constantly mentioning `intelligent programmers` you insinuate that people who use D are idiots who religiously worship the language. Anything but. The thing is that in D things are moving (and people in the community perceive it as something positive), which brings me to your next point. > 3) D has suffered greatly because it has had too many moving targets as if constant change to something slightly better is going to endear programmers to using a computer language. Programmers need stability. The needed to know that if they are using a programming language they are getting a particular standard at a particular time with particular libraries that work. They also need backward compatibility when things change. D appears to have presented an almost constantly moving target to this programmer, where adding/changing some feature is much more important than fixing problems and providing stability. True. I admit that I "fear" every new release in the sense that something will break and I'll have to fix it. More often than not, however, the fixes are trivial, and if they make sense and improve the language, I'm willing to pay the price. But your argument shows the fix D developers are in: to provide a better language without changing it (paradox). The trivial truth is that you can only improve a language by changing it and you need a community that is willing to go along with the changes. For this reason D hasn't taken off, because most people are not willing to risk (or cannot afford) frequent changes. Personally, I don't know which is worse, frequent (educated) changes or years of suboptimal coding until changes are made at long last (cf. Java). Mind you, well established languages like Java and C++ are now adopting things that have been around in D (and other languages) for a while, because those concepts have proven to be useful. This said, D has become a lot better in terms of deprecating things. You get a warning well in advance and you can prepare for the (breaking) changes. My perception (which might be biased) is that people look at D, bash it and trash it, but nevertheless take things on board when developing the next version of C++ or whatever - without giving credit later. The Led Zeppelin syndrome[1]. [1] https://www.youtube.com/watch?v=tiiY4ciKFQA > 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. I cannot comment on this, because I don't know what you've read, know or want to know about D. > Edward Diener |
August 12, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Patrick Schluter | On 8/12/16 4:59 AM, Patrick Schluter wrote:
> On Thursday, 11 August 2016 at 20:16:04 UTC, bachmeier wrote:
>> On Thursday, 11 August 2016 at 15:41:42 UTC, Edward Diener wrote:
>>> the arrogance by which D was initially and repeatedly compared
>>> against C/C++ has been totally out of place since the 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.
>
> I never understood how people can get their feelings hurt when
> criticising the language they program in. Either the criticised point is
> true and one accepts it or not, in that case a factual refutation can be
> done. Feeling offended is ridiculous.
I recall I had a similar reaction as Edward back in the day. No hurt feelings or anything, but the arguments made were so specious I'd roll my eyes whenever I saw them in the C++ forums. -- Andrei
|
August 12, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Patrick Schluter | On Fri, 12 Aug 2016 08:59:14 +0000, Patrick Schluter wrote:
> I never understood how people can get their feelings hurt when criticising the language they program in.
>
> Yeah, it's also known as Stockholm Syndrome :-)
Because you specifically are criticizing the person directly, not the language they use, now.
|
August 12, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Guillaume Piolat | On Friday, 12 August 2016 at 09:38:13 UTC, Guillaume Piolat wrote:
> From the best of my knowledge you cannot do these things in in C++:
The most important thing is what you can't do in D: read a Scott Meyers book.
|
August 12, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to bachmeier | On 8/12/16 10:19 AM, bachmeier wrote:
> On Friday, 12 August 2016 at 09:38:13 UTC, Guillaume Piolat wrote:
>> From the best of my knowledge you cannot do these things in in C++:
>
> The most important thing is what you can't do in D: read a Scott Meyers
> book.
That's the last thing D needs.
-Steve
|
August 12, 2016 Re: Why D is not popular enough? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Guillaume Piolat | On Fri, 12 Aug 2016 09:38:13 +0000, Guillaume Piolat wrote: > From the best of my knowledge you cannot do these things in in > C++: > > https://p0nce.github.io/d-idioms/#Precomputed-tables-at-compile-time- through-CTFE You can use an external tool at build time to do this, but it's awkward. (DMD, when it was C++-based, used that technique to generate a few things.) > https://p0nce.github.io/d-idioms/#Embed-a-dynamic-library-in-an- executable You need a resources script for it with MSVC++. If you're building an ELF executable, you can use `objcopy(1)` to convert a data file into an object file containing static data. Which is, I feel, the story of life using D vs C++. You can get it done in C++, but it might take some external tools, it's going to be awkward, and it's going to be different on every platform. |
Copyright © 1999-2021 by the D Language Foundation