www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Choosing D over C++, Go, Rust, Swift

reply Dibyendu Majumdar <d.majumdar gmail.com> writes:
Hi

I wrote recently that I am looking at an alternative to C++ for a 
project currently being coded in C++. I am pleased to say based 
on preliminary investigations I have chosen D over Go, Rust, and 
Swift. I have yet to write a line of D code so I will give you an 
update after I do some coding but here are my reasons:

1. D appears to give me all the power of C++ - and in particular 
even greater power with templates.

2. D code is cleaner, more traditional (Java and C like), and 
easier to read and understand than some of the alternatives. Go 
is simpler of course and also easy to follow - but that is 
because it is a small language. I dislike the new syntax of Rust 
as it seems gratuitously different and (in my view) hard to read.

3. D gives me all the low level control while at the same time 
giving me the ability to write code at a higher level. C++ is 
similar but the other languages are all restrictive in some way 
or other.

I did find that I had to go through many articles, video 
presentations etc. to form my conclusions - it would have been 
nice if there was a single page on the D website that explained 
why D should be chosen over the other competing languages. The 
information is all there but scattered all over the place.

I will provide an update as I start coding in D.

Thanks and Regards
Dibyendu
Jan 14
next sibling parent reply Joakim <dlang joakim.fea.st> writes:
On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu Majumdar 
wrote:
 Hi

 I wrote recently that I am looking at an alternative to C++ for 
 a project currently being coded in C++. I am pleased to say 
 based on preliminary investigations I have chosen D over Go, 
 Rust, and Swift. I have yet to write a line of D code so I will 
 give you an update after I do some coding but here are my 
 reasons:

 [...]
What is it you're actually trying to write?
Jan 14
parent reply Dibyendu Majumdar <d.majumdar gmail.com> writes:
On Thursday, 14 January 2016 at 14:02:58 UTC, Joakim wrote:
 On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu Majumdar 
 wrote:
 Hi

 I wrote recently that I am looking at an alternative to C++ 
 for a project currently being coded in C++. I am pleased to 
 say based on preliminary investigations I have chosen D over 
 Go, Rust, and Swift. I have yet to write a line of D code so I 
 will give you an update after I do some coding but here are my 
 reasons:

 [...]
What is it you're actually trying to write?
Hi - apologies I am unable to discuss, as it is not an OpenSource project. But let's say it requires lot of numeric computing.
Jan 14
parent reply bachmeier <no spam.com> writes:
On Thursday, 14 January 2016 at 14:29:24 UTC, Dibyendu Majumdar 
wrote:

 Hi - apologies I am unable to discuss, as it is not an 
 OpenSource project. But let's say it requires lot of numeric 
 computing.
Are you familiar with https://github.com/dlangscience https://gitter.im/DlangScience/public
Jan 14
parent Dibyendu Majumdar <d.majumdar gmail.com> writes:
On Thursday, 14 January 2016 at 14:35:27 UTC, bachmeier wrote:
 Are you familiar with

 https://github.com/dlangscience
 https://gitter.im/DlangScience/public
Thank you for pointing me to above. Regards
Jan 14
prev sibling next sibling parent reply bachmeier <no spam.com> writes:
On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu Majumdar 
wrote:

 I did find that I had to go through many articles, video 
 presentations etc. to form my conclusions - it would have been 
 nice if there was a single page on the D website that explained 
 why D should be chosen over the other competing languages. The 
 information is all there but scattered all over the place.
Do you have specific suggestions for improvements? The difficulty is predicting where someone will look for that information.
Jan 14
parent reply Dibyendu Majumdar <d.majumdar gmail.com> writes:
On Thursday, 14 January 2016 at 14:40:05 UTC, bachmeier wrote:
 On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu Majumdar 
 wrote:

 I did find that I had to go through many articles, video 
 presentations etc. to form my conclusions - it would have been 
 nice if there was a single page on the D website that 
 explained why D should be chosen over the other competing 
 languages. The information is all there but scattered all over 
 the place.
Do you have specific suggestions for improvements? The difficulty is predicting where someone will look for that information.
I think a prominent Link saying - Why choose D? on the home page. and maybe initially this could take to another page with links to articles, videos etc. But longer term it would better to have a more structured presentation of the benefits. Example - show with examples what can be done with D templates that is hard or not possible with C++. And similarly with other languages. I would suggest very aggressive 'marketing' of D advantages. Regards
Jan 14
next sibling parent reply Joakim <dlang joakim.fea.st> writes:
On Thursday, 14 January 2016 at 15:32:10 UTC, Dibyendu Majumdar 
wrote:
 On Thursday, 14 January 2016 at 14:40:05 UTC, bachmeier wrote:
 On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu 
 Majumdar wrote:

 I did find that I had to go through many articles, video 
 presentations etc. to form my conclusions - it would have 
 been nice if there was a single page on the D website that 
 explained why D should be chosen over the other competing 
 languages. The information is all there but scattered all 
 over the place.
Do you have specific suggestions for improvements? The difficulty is predicting where someone will look for that information.
I think a prominent Link saying - Why choose D? on the home page. and maybe initially this could take to another page with links to articles, videos etc. But longer term it would better to have a more structured presentation of the benefits. Example - show with examples what can be done with D templates that is hard or not possible with C++. And similarly with other languages. I would suggest very aggressive 'marketing' of D advantages.
You're right, D's not very good at marketing. On the other hand, have you ever found what you're suggesting on any other programming language's website? I haven't, so they're all in the same boat, each one as bad as the next. Of course, there's the argument that programmers who try out new languages hate marketing, so not having much traditional marketing is itself a form of "marketing" for that audience. :) In that case, you're one of the few who wants to be marketed to, and you may be out of luck. :D
Jan 14
next sibling parent bachmeier <no spam.com> writes:
On Thursday, 14 January 2016 at 16:08:24 UTC, Joakim wrote:

 You're right, D's not very good at marketing.  On the other 
 hand, have you ever found what you're suggesting on any other 
 programming language's website?  I haven't, so they're all in 
 the same boat, each one as bad as the next.
I think you're right. I'm not convinced that it is a problem that can be solved. One person is looking for a Java replacement, another wants a hobby language for a personal website, and yet another wants better metaprogramming than you get with C++. A good marketing pitch for any individual is at best an irrelevant one for most of the rest.
Jan 14
prev sibling parent Wyatt <wyatt.epp gmail.com> writes:
On Thursday, 14 January 2016 at 16:08:24 UTC, Joakim wrote:
 On Thursday, 14 January 2016 at 15:32:10 UTC, Dibyendu Majumdar
 I think a prominent Link saying - Why choose D? on the home 
 page. and maybe initially this could take to another page with 
 links to articles, videos etc. But longer term it would better 
 to have a more structured presentation of the benefits. 
 Example - show with examples what can be done with D templates 
 that is hard or not possible with C++. And similarly with 
 other languages.

 I would suggest very aggressive 'marketing' of D advantages.
You're right, D's not very good at marketing. On the other hand, have you ever found what you're suggesting on any other programming language's website? I haven't, so they're all in the same boat, each one as bad as the next.
Sort of sounds like he wants something in this vein, only as part of the site: http://fsharpforfunandprofit.com/ -Wyatt
Jan 21
prev sibling parent Laeeth Isharc <laeethnospam nospam.laeeth.com> writes:
On Thursday, 14 January 2016 at 15:32:10 UTC, Dibyendu Majumdar 
wrote:
 On Thursday, 14 January 2016 at 14:40:05 UTC, bachmeier wrote:
 On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu 
 Majumdar wrote:

 I did find that I had to go through many articles, video 
 presentations etc. to form my conclusions - it would have 
 been nice if there was a single page on the D website that 
 explained why D should be chosen over the other competing 
 languages. The information is all there but scattered all 
 over the place.
Do you have specific suggestions for improvements? The difficulty is predicting where someone will look for that information.
I think a prominent Link saying - Why choose D? on the home page. and maybe initially this could take to another page with links to articles, videos etc. But longer term it would better to have a more structured presentation of the benefits. Example - show with examples what can be done with D templates that is hard or not possible with C++. And similarly with other languages. I would suggest very aggressive 'marketing' of D advantages. Regards
A set of 'channels' for different use cases might be helpful. Eg bioinformatics, numerical computing, web, etc. Both for tutorials and setting out the advantages.
Jan 21
prev sibling next sibling parent reply =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
On 01/14/2016 05:47 AM, Dibyendu Majumdar wrote:

 I had to go through many articles, video presentations etc. to
 form my conclusions - it would have been nice if there was a
 single page on the D website that explained why D should be
 chosen over the other competing languages
Can you please write that article while it's fresh on your mind. ;) Ali
Jan 14
parent Dibyendu Majumdar <d.majumdar gmail.com> writes:
On Thursday, 14 January 2016 at 17:04:35 UTC, Ali Çehreli wrote:
 On 01/14/2016 05:47 AM, Dibyendu Majumdar wrote:

 I had to go through many articles, video presentations etc. to
 form my conclusions - it would have been nice if there was a
 single page on the D website that explained why D should be
 chosen over the other competing languages
Can you please write that article while it's fresh on your mind. ;) Ali
I will probably write something when I feel more confident about things (i.e. have validated my impressions), but right now that's not a priority for me. Regards
Jan 14
prev sibling next sibling parent reply Jack Stouffer <jack jackstouffer.com> writes:
On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu Majumdar 
wrote:
 I did find that I had to go through many articles, video 
 presentations etc. to form my conclusions - it would have been 
 nice if there was a single page on the D website that explained 
 why D should be chosen over the other competing languages. The 
 information is all there but scattered all over the place.
http://dlang.org/overview.html
Jan 14
parent reply Dibyendu Majumdar <d.majumdar gmail.com> writes:
On Thursday, 14 January 2016 at 17:10:34 UTC, Jack Stouffer wrote:
 On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu Majumdar 
 wrote:
 I did find that I had to go through many articles, video 
 presentations etc. to form my conclusions - it would have been 
 nice if there was a single page on the D website that 
 explained why D should be chosen over the other competing 
 languages. The information is all there but scattered all over 
 the place.
http://dlang.org/overview.html
Nice - but it is under Getting Started? So it assumes people already want to get started in D? Why not put the first few sections on the main page. Another example of what I think ought to be easily accessible is Andrei's response to following: https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why Anyway, I am glad that there is material out there and that I was able to find what I needed! Regards Dibyendu
Jan 14
parent reply Dibyendu Majumdar <d.majumdar gmail.com> writes:
On Thursday, 14 January 2016 at 20:33:50 UTC, Dibyendu Majumdar 
wrote:
 Another example of what I think ought to be easily accessible 
 is Andrei's response to following:

 https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why
BTW I hadn't seen above before I wrote my reasons - just read it now ... which is my point.
Jan 14
parent reply Markus <markus orm.ich> writes:
 From my point of view is the biggest disadvantage in D marketing, 
that D is only placed as a "systems programming language". The 
fact is, that D is very usable for numeric and large scale data 
processing -- so called business software -- but if a manager 
takes a look on the D homepage he will only see: "D is a systems 
programming language..."

Regards

Markus
Jan 21
parent Russel Winder via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Thu, 2016-01-21 at 09:05 +0000, Markus via Digitalmars-d wrote:
 =C2=A0From my point of view is the biggest disadvantage in D marketing,=
=C2=A0
 that D is only placed as a "systems programming language". The=C2=A0
 fact is, that D is very usable for numeric and large scale data=C2=A0
 processing -- so called business software -- but if a manager=C2=A0
 takes a look on the D homepage he will only see: "D is a systems=C2=A0
 programming language..."
This is also Go and Rust's problem. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jan 21
prev sibling parent reply Dibyendu Majumdar <d.majumdar gmail.com> writes:
On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu Majumdar 
wrote:
 I wrote recently that I am looking at an alternative to C++ for 
 a project currently being coded in C++. I am pleased to say 
 based on preliminary investigations I have chosen D over Go, 
 Rust, and Swift.
 1. D appears to give me all the power of C++ - and in 
 particular even greater power with templates.

 2. D code is cleaner, more traditional (Java and C like), and 
 easier to read and understand than some of the alternatives. Go 
 is simpler of course and also easy to follow - but that is 
 because it is a small language. I dislike the new syntax of 
 Rust as it seems gratuitously different and (in my view) hard 
 to read.

 3. D gives me all the low level control while at the same time 
 giving me the ability to write code at a higher level. C++ is 
 similar but the other languages are all restrictive in some way 
 or other.
Hi - just to give you an update. After trying to get some simple tests working for the past few days I have concluded that while D is the best choice for my project (after C++) - D's implementation and tooling is not mature enough yet for me to spend effort on a port. So I will defer the move to D to a future time - but my intention is to do other work in D related to my OpenSource projects around Lua. I really want to use D as a better C / C++ so am looking forward to library developments that better support a style of programming that relies less on GC. Its not that I don't like GC - but I feel that the reasons for my using a language like D or C++ is control - else I would use Java or Swift or Go. Regards Dibyendu
Jan 24
parent maik klein <maikklein googlemail.com> writes:
On Sunday, 24 January 2016 at 12:04:58 UTC, Dibyendu Majumdar 
wrote:
 On Thursday, 14 January 2016 at 13:47:39 UTC, Dibyendu Majumdar 
 wrote:
 I wrote recently that I am looking at an alternative to C++ 
 for a project currently being coded in C++. I am pleased to 
 say based on preliminary investigations I have chosen D over 
 Go, Rust, and Swift.
 1. D appears to give me all the power of C++ - and in 
 particular even greater power with templates.

 2. D code is cleaner, more traditional (Java and C like), and 
 easier to read and understand than some of the alternatives. 
 Go is simpler of course and also easy to follow - but that is 
 because it is a small language. I dislike the new syntax of 
 Rust as it seems gratuitously different and (in my view) hard 
 to read.

 3. D gives me all the low level control while at the same time 
 giving me the ability to write code at a higher level. C++ is 
 similar but the other languages are all restrictive in some 
 way or other.
Hi - just to give you an update. After trying to get some simple tests working for the past few days I have concluded that while D is the best choice for my project (after C++) - D's implementation and tooling is not mature enough yet for me to spend effort on a port. So I will defer the move to D to a future time - but my intention is to do other work in D related to my OpenSource projects around Lua. I really want to use D as a better C / C++ so am looking forward to library developments that better support a style of programming that relies less on GC. Its not that I don't like GC - but I feel that the reasons for my using a language like D or C++ is control - else I would use Java or Swift or Go. Regards Dibyendu
I am in a similar boat, I don't need the GC at all and there is not much stuff in the std to support a programming style like in C++. Also I already run into a couple of bugs in the std which I am currently trying to fix or work around. It is quite annoying. But it is still the best bet if you want to do any metaprogramming, I think I have tried all statically compiled languages so far and nothing really comes close to what C++ can do. But D even improves on C++'s metaprogramming and it compiles so much faster. Actually I personally came to the conclusion that C++ is kinda useless for metaprogramming because the compile times will explode very quickly. A small entity component system with compile time filtering that I have written in C++ takes around 15 seconds for a toy example. In D it is ~1sec and the number doesn't seem go go up at all.
Jan 24