I'm a father again. Alice was born on April 3rd this year. She's a magnificent baby, and more importantly, she's absolutely normal and doesn't have any of her sister's problems. Life is good, life is good. And Lucie doesn't even seem to be jealous at the moment.
On the other hand, Alice's still absolutely unable to sleep at night, and my wife and I have been seriously lacking any kind of decent sleep for more than a month now. I'm more lucky since I don't have to breast-feed her, but "a deep rest" is now a distant concept, at least for the next couple of months :-).
- All the niceties of C++ (OO, exceptions, templates, compiled, easy linking to C libraries) without the hurdles (atrocious syntax, atrocious compile times)
- ultra fast compilation time, excellent execution times (easily beats C++ at many tasks)
- dynamic arrays, strings, dictionaries and complex numbers as builtins, not ugly library/template hacks
- the language is garbage-collected: the killer productivity enhancement. (Can be disabled if you want it).
- built-in support for versioning, design-by-contract and much more.
- much simpler and cleaner syntax.
- a GCC Frontend is even available and works on Unix, Windows, MacOSX
There are still some cons at the moment though:
- first of all, the language is still in beta, which means it's still slightly evolving.
- the frontend isn't part of the standard GCC distribution, making it more difficult to distribute widely
- GDB doesn't understand D name mangling yet, which makes debugging quite challenging sometimes. But you won't need it that much in my experience
- Documentation exists but is scattered around several web pages.
- It doesn't have the huge runtime libraries that come with Java or C# (though it can interface to C easily)
However, all these points can be solved in a short time frame. I predict this will happen once the language freezes. As for me, I've completely ditched C++ for my personal projects, it simply isn't worth the effort for what I do.
Hope this helps