On Fri, Sep 07, 2007 at 05:09:26AM +0000, Walter Bright wrote: > Linus Torvalds wrote: > >And if you want a fancier language, C++ is absolutely the worst one to > >choose. If you want real high-level, pick one that has true high-level > >features like garbage collection or a good system integration, rather > >than something that lacks both the sparseness and straightforwardness of > >C, *and* doesn't even have the high-level bindings to important > >concepts. IOW, C++ is in that inconvenient spot where it doesn't help > >make things simple enough to be truly usable for prototyping or simple > >GUI programming, and yet isn't the lean system programming language that > >C is that actively encourags you to use simple and direct constructs. > > The D programming language is a different take than C++ has on growing C. > I'm curious what your thoughts on that are (D has garbage collection, > while still retaining the ability to directly manage memory). Can you > enumerate what you feel are the important concepts? Well, to me D has two significant drawbacks to be "ready to use". The first one is that it doesn't has bit-fields. I often deal with bit-fields on structures that have a _lot_ of instances in my program, and the bit-field is chosen for code readability _and_ structure size efficiency. I know you pretend that using masks manually often generates better code. But in my case, speed does not matter _that_ much. I mean it does, but not that this micro-level as access to the bit-field is not my inner-loop. The other second issue I have, is that there is no way to do: import (C) "foo.h" And this is a big no-go (maybe not for git, but as a general issue) because it impedes the use of external libraries with a C interface a _lot_. E.g. I'd really like to use it to use some GNU libc extensions, but I can't because it has too many dependencies (some async getaddrinfo interface, that need me to import all the signal events and so on extensions in the libc, with bitfields, wich send us back to the first point). I also have a third, but non critical issue, I absolutely don't like phobos :) Though I'm obviously free to chose another library. D has definitely many many many real advances over C (like the .init, .size, ... and so on fields, known types, and whatever portability nightmare the C impose us). In fact I like to use D like I code in C, using modules and functions, and very few classes, as few as I can. And even (under- ?) using D like this, it is a real pleasure to work with. I'm really eager to see gdc be more stable. -- ·O· Pierre Habouzit ··O madcoder@debian.org OOO http://www.madism.org