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.