On Tuesday, 30 June 2020 at 11:12:22 UTC, aberba wrote:

It requires someone with C++ knowledge to start, then we'll take care of driving in more idioms. Like a GitHub wiki or something. The D wiki more appropriately for centralization.

Anyone up for it?

D and C++ are VERY different languages:

- D objects have different construction sequences and teardown sequences. In C++ when you can name an object you are guaranteed it is constructed. Not in D.

- the meta-game of C++ meta-programming was template specialization for a long time, and is considered hard and something to avoid.

For D it has been CTFE + string mixins for a long time, and is considered only moderately difficult.

- D uses DUB, modern dependency management that can make you maintain a lot more programs that you thought possible ^^. C++ culture is pretty much again this convenience.

- T.init is a valid D object, D destructors must handle T.init.

- destructor of heap objects is a big trap in D, perhaps the biggest surprise when coming from C++

- D collections do not necessarily own their elements, and are generally less complete than C++ collecions.

- D always has RTTI and Exceptions

- the C++ culture is much more conservative since regular people that wanted some modicum of sanity have fled to Java/C#/Python/anything else for _two decades_.

- mixed ownership (GC + manual) is more complicated than just scoped ownership; but ultimately liberating, and fast.

- ...so you have to actually know how the GC work.

Reply via email to