Hacker News new | past | comments | ask | show | jobs | submit login

Given that Andrei Alexandrescu, who is one of the best-known C++ programmers in the world, co-designed (with Walter Bright) the new version of D, I would say that there are at least some C++ programmers looking for a better language. I think there's also a lot of C programmers looking for a better language but unwilling to deal with C++ (I'm in that category myself). Garbage collection in D is optional.



I'm not poo-pooing D at all, it just it seems to compete more with Java/C# than C++.

C++ is now really for closer to the metal, where garbage collection is truly a non-starter and nobody cares that std::string is awkward because they don't use it.


Can you explain why, if garbage collection is a non-starter, _optional_ garbage collection should have any negative impact?


I would say it depends on what the libraries do expect, especially the D standard libraries. If those work with and without garbage collection it probably doesn't matter so much. If those expect garbage collection then I suppose D2.0 will have a hard(er) time luring that many c++ guys over.

Does anyone already know how the new standard libraries which they wrote do work?


Andrei Alexandrescu addresses the issue of programming in D without garbage collection in this interview from yesterday: http://www.informit.com/articles/article.aspx?p=1622265

Notice in particular that he says "Furthermore, you can use malloc() and free(), along with the rest of C's standard library, ..., without any overhead. Then, a D primitive called emplace allows you to construct objects at specified memory locations (a la C++'s placement new operator)".

The emplace function is in the std.conv library and is the basis for constructing objects outside of the control of the garbage collector.

My understanding is that most library functions do not care about whether you are using garbage collection or not. Library functions are usually written in a parameterized way such that you can use any appropriate object; so long as it has the right methods.

Take a look for example at the std.algorithm library: http://www.digitalmars.com/d/2.0/phobos/std_algorithm.html I don't think anything there cares whether you use garbage collection for your types or not.


Speak for yourself. I use std::string frequently and there isn't anything awkward about it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: