Ran across this
bit-o-news today regarding another multi-core processor - this time 1024 computing elements backed by an IBM Power core. I talked a little about this
earlier, but I believe this is where the future of computing is going. Parallel computing has been a research topic in CS for forever, but these chips are taking the advanced (read expensive) parallel systems and putting them into desktop computers.
You can only squeeze so many transistors on a chip, and you can only make it go so fast. Today, Intel, IBM, and AMD are struggling with advanced quantum mechanics to make a bigger, faster processor, so you have to expand in a different direction - and apparently the new thinking is "more is better".
But this simply shifts the problem from hardware to software. Multi-threaded programming is hard to do (one of the advantages of LabVIEW), but when you start dealing with this level of concurrent processing, you need entire new ways of thinking. Traditional programming simply becomes too difficult to make any real progress, even in today's LabVIEW language.
I once tried explaining to a layman why writing computer code is so hard. I told him to give me step by step instructions to tie my shoes. Every time he gave me an instruction, I told him to be more specific. Eventually he was too frustrated to continue, but it was accurate description of what it takes to write code today. You simply have to tell the code too many little facts to get the job done - and that's not even considering the extra complications of writing secure and high performance code.
My personal belief is that it's time to lift the science of computing up another level. If you look at the history of programming, you'll see that each generation of languages removes the programmer from the processor. As an old kernel driver writer, I often long for the days of getting back into the bits, but really - it's the only way we can make any progress. And I’m not talking about what some people refer to as 4G languages – just another text language with slightly less typing…we should call those 3.1G languages. Here I’m talking about graphical representations (flow, state chart, etc) and natural language expressions. You’ll also need rich frameworks to build upon - Windows Presentation Foundation (WPF, aka Avalon) is a good example of a step in that direction.
Personally, I’m very excited about the challenge ahead. The whole Web 2.0 business is just that – business, but next generation concurrency is going to be a true revolution, and we’re going to be part of it.