> Im liking c++ lately myself as it is cross platform and its not as 'scary' as it looks.
No. It's much, much worse.
No. It's much, much worse.
I know you have a dislike for C++ FlameDuck, but come on - this is ridiculous. He simply stated that he liked C++, which is a fact. Sorry, but someone's opinion is the one thing you can't argue.
The real question is can you learn DirectX, and realize your vision, faster than Microsoft can change it, and you have to start all over again?
No, the real question is which version of DirectX to use. I'd recommend DirectX 9. DirectX 8 and below is outdated, DirectX 9 is still a very good API, and DirectX 10, while it may be "better" than DirectX 9 in some ways, is too new to be of much practical use (only new video cards support it).
Yes. C++ is not as "vital" as you think, unless you happen to be one of the 100 or so people on this planet who are smarter than Bjarne Stroustrup, and actually understand all the intricacies of the language.
C++ is "vital" in that, for use in game engine programming, the major C++ compilers still produce the fastest code. In fact, almost all benchmarks comparing the speed of programming languages compare against C++.
C++ isn't best for everything. Personally, I use C# for applications (where speed is not critical), and C++ for high-speed 3D simulations. For many people C++ is overkill and isn't worth the extra effort to get the additional speed, in which case Java or C# is vastly superior. But remember that there are applications that do require every bit of power out of your GPU and CPU, in which case C++ (and sometimes inline assembly) is still the best solution.
chwaga: If you have the time, then it certainly won't hurt to learn DirectX. I don't know a lot of DirectX, but I've made a few simple 3D tests with it, and personally I think it's not nearly as complex as people make it out to be. Just make sure you have a solid understanding of C++ pointers & arrays. Otherwise you're sure to get totally confused (as I did years ago).