Quote:The only way he will truely learn something new and actually broaden his view on problem solving is by learning languages based on completely different programming paradigms.
The nice thing about D is that while it follows similar programming paradigms as C++, you find yourself working more on solving your
own problems rather than dealing with deficiencies in the language. So rather than thinking about low-level implementation details (what containers to use, what memory management scheme to use, worrying about getting headers and cpp files synchronized, worrying about virtual methods), you just
program your damn program and most of the time, it's almost trivial to implement.
A prime example is the STL collection in C++. STL attempts to augment C++'s rather anemic data abstraction abilities, and does so, if perhaps in a somewhat wordy fashion. In D, there are some STL-style libraries, but I've never found myself needing one. For the most part, dynamic arrays, associative arrays (very similar to std::map), and custom class hierarchies achieve everything I need in terms of data abstraction. Associative arrays alone have taken the place of several more complex data structures that I used with C++.
Quote:C++ could be a better language, if its evolution weren't that painfully slow. There are so many nice features in the pipe that I want to have now, not in 2009...
C++ could also be a better language if it weren't weighed down with being natively backwards compatible with about 35 years of legacy code. Any new feature in C++ has to be painstakingly reviewed, checked, and tested to assure that it doesn't conflict with or break any existing code. D has something of an advantage because it's still being designed, but the point is that C++ is too old and too bloated to improve. This is D's entire mantra: it's not trying to be a better C++, it's just trying to make a language that has abstractions that have become common in programming today.
Quote:When you look at D you see a potentially capable language that has many nice features, however does it truly have the support network there for you to work effectively?
This is always the catch-22 with new languages. People don't want to use it because it isn't mainstream, but it'll never become mainstream if people don't use it. What has to happen is a critical mass of people have to take the leap of faith and try it out.
_______________________________________________________________________Hoo-rah.