Herb Sutter (big cheese in the C++ world, works for MS) has posted a presentation outlining some ideas for the future of C++.
http://216.55.183.63/pdc2005/slides/TLN309_Sutter.ppt?ticket=&id=
The interesting bits for me is the stuff about concurrancy, extending C++ to handle multi-threading is a great idea and if they do it right, just might make programming in future possible.
From a console point of view, the interesting bit is how they can leverage this on X360 and its follow up. Sony don’t have these kind of software researchers, whereas MS spend a fortune figuring out how to make software, it may well pay off big time for next (and next-next) gen consoles.
Fundementally its bloody hard to program for next gen consoles, on PS3 you have lots of tasks because of the hardware design with all the headaches of concurrent programing (synchronisation, seperate memory pools, etc). X360 is a little easier, partly because its got fewer hardware threads and that they are symetrical, but also because its got MS Visual Studio compilers for it, OpenMP makes it easier to create worker tasks to distrubute across hardware threads. Now for this generation, Cell isn’t too complex, so doing all the thread in a manner similar to Herb’s WindowAPI example (near the end of that presentation) is okay (obviously PS3 doesn’t use Windows API, it uses CellOS API calls that do a similar thing) but what happens when we get hardware threads in double figures?
If a future console was to have 30+ hardware threads, the winner of that generation won’t be who has the most flops but who can write a compiler that helps you out. I’m don’t believe it will ever be ‘automatic’ (at least for the foreseeable future) but being able to add ‘active’ to a class etc. would be a god send.
MS have a real ace up there sleave with Visual C++, GCC just isn’t upto the same level at the moment. I bet the size of MS Visual C++ team is bigger than all the paid GCC contributors put together…
If I were Apple or Sony, I’d start spending serious cash on compiler research very very soon, else MS might just win the future of IT by being the only people able to supply the tools capable of using future processors…