On Saturday, 4 March 2017 at 18:09:10 UTC, Anthony wrote:
To give context to my question, I don't have a problem with GCs, and this question isn't stemming from a C++ background. I've been told to learn C++ though, due to its efficiency and power.

It feels like D is a better choice for me to learn than C++; it's ostensibly C++ but with various amounts of baggage or unfavorable quirks removed. But I'm wary to learn if one of the major proponents for C++ usage, deterministic memory management, isn't directly supported. I check back here every few months or so, but now I just can't find anything new.

Having learned C++ before D, I would argue (others will disagree) that even if your goal is to learn C++, you should start with D. You want to learn certain concepts and ways of thinking. If you start with C++, you have to spend your time learning the rough edges of C++ and what not to do, and it really does interfere with your learning. It's faster to learn D and then figure out how to do the same thing in C++ than to battle with the unpleasantness of C++ from the start. I regret all the hours I wasted on C++.

It's not really accurate to say someone should avoid D because of GC/memory management. You can call C++ from D, so while the cost-benefit analysis might favor C++ in some cases, there's no reason you can't write your program in D and then call into C++ when absolutely necessary. I do the same thing, except that I call into C more than C++.

Just my 2 cents as someone that does numerical programming. Ultimately, if you're looking at it from the perspective of the job market, it really doesn't make sense to spend time on D. If the goal is to learn, it doesn't make sense to spend time on C++.

Reply via email to