Ruairi Robinson
Well-known member
Here's the problem. Most programmers are dullards who slept through 4 years of college writing assignments and playing video games. There's a reason they call it a CS degree. Many programmers have as much creativity as your average x86 processor. They've memorized a few tricks and become very efficient at shoe-horning what they know into existing situations with minimal thought of how something works. They're really good at solving tiny problems but very bad at solving architectural problems.
This isn't going to ever change. This isn't a generational thing that's just going to slip away. It's the nature of the beast because programming often attracts people who like solving little problems instead of big problems and because the volume needed to produce modern software means to some degree you simply can't get enough extremely talented and super creative people to make the real breakthroughs necessary in many areas to employ multi-core processing. A lot of these solutions need to be made at an almost academic not pragmatic level. What the industry I think is waiting for is a small group of really creative and ahead of the curve developers to write the tools to make writing multi-core invisible to the programmer.
Multi-Core right now is where real-time 3d graphics were 25 years ago. Everybody is individually solving each 3D problem one at a time all by themselves. The extremely talented and creative developers are finding new and innovative solutions but those solutions take time to dissipate into the collective consciousness and even then it only solves one problem. OpenGL and DX however provided a means where the work to make things go fast was left to the standard developers and the unwashed masses just needed to tell it where to go and what to do.
It's up to AMD, Intel and Nvidia (and many smaller companies now) I think to find the best and brightest who can solve the problem in a general high-level fashion so that even someone with my programming skill can just write it and let the compiler deal with it.
A good analogy is the Renderman Language or the new proposed hardware standards Optix and Caustic's OpenRL. You write the shader. You let the PhDs and visionaries figure out how to make it run fast on multiple platforms/hardware/cores.
reminds me of this Thomas Edison quote:
it takes about seven years to convert the average man to the acceptance of a solved problem.
R.