Larry Luther: > There are many things that I like and I strongly agree with the failings > of C++ mentioned in the docs.
D is designed by people that have a good experience of C++, but while probably D avoids some C++ problems, it surely introduces a number of new issues :-) > I don't like the asymmetry between structs > and classes. I don't see why structs can't have inheritance. One of the first answers given here is that this D design avoids slicing bugs. See my other answer for more. > I haven't > had a memory leak problem in C++ for many years so the need for a GC seems > minor. > I can only assume that it's needed to support strings and dynamic arrays. A GC introduces other kind of leaks when there is a reference alive to an memory block that is supposed to be dead and not used any more. This can even be caused by the not precise nature of the current D GC, it can mismatch something for a pointer to a GC-managed memory zone, keeping it alive. For example in programs that use large associative arrays this seems a problem. If you assume the presence of the GC this changes the way you write code. In theory you can be more relaxed. In practice D GC is not... well, you have to keep your eyes open anyway. > I'm pushing forward on the assumption that I'll discover the paradigm that > will make everything fall into place. If you have some Java programming experience then you probably have nothing to discover regarding this aspect of D programming (here the main difference is that Oracle Java GC is more precise and quite more efficient). > For example it took a great deal of time to > learn that "private" can be used several ways: One of the good things of D design is that it tries to be uniform/consistent, in this case all other attributes can be used in the same ways :-) > I'm anxiously waiting for something of the quality of the "Annotated C++ > Reference Manual". The problem here is that D is not very strictly defined in the first place, so it's harder to write a very strict D reference manual :-) But Andrei book is about to come out, that can be seen as a kind of official D2 reference. Bye, bearophile