Changes in processor architecture will lead to a transformation in software design, according to Andrew Herbert, managing director of Microsoft research, Cambridge.
In a lecture organised by the Royal Signals Institution and BCS, he said software practices would become obsolete this century.
“The 20th century was all about getting as much as you could out of the processor – but we now have riches of processing power, and software is no longer constrained by hardware limitations.”
Herbert said uni-processors were being replaced by processors with multiple CPUs, which would become the norm because modern cache sizes needed more power.
“A large cache on a single chip is the only way to improve performance when Moore’s Law runs out.”
He said there was no choice but to move towards parallelism. But attempts to tease the parallelism out of a sequential program automatically had not worked, so the problem of concurrent programming had to be addressed – and better languages were needed.
Languages such as C+ and C++ were often unreliable and caused memory leaks. Addresses were too big, so worms could exploit them. Low-level languages had errors in handling array and heap storage.
But Java and C# did not have many such errors, said Herbert. Until recently, Java and C# were considered too expensive in terms of space and time. He advocated leaning towards languages of automatic storage management.
At one time, virtual memory was used with paging to compensate for small and very expensive mainframe memory, he said. But now paging slowed down the system and memory was cheaper.
Herbert said the testing needed to verify software had its limits. As projects got larger, less time was spent on coding and more on debugging, documentation, and support and management.
“More formal methods are needed to improve the quality of new code and help maintain old code. This is possibly thanks to increased processor power and memory capacity, along with developments in model checking and theorem proving.”
Storage potential had grown hugely, including personal file systems such as the iPod. Herbert reckoned that by the time he retired, everyone would be carrying round a terabyte. “Everyone will carry their own personal archive and that data will also be stored on the web”.
He added: “We will need a new way of organising things. The historical structural way of organising folders is already breaking down.” Research into digital tapestries could help with object recognition and be used for videos and images.
Microelectronics-based screen and projection technologies might be combined with wireless networking, increasing processing speeds and reducing costs, he said.
“We can envisage a future in which we combine new display formats with machine perception techniques that allow input via handwriting, gesture, touch, speech, or placement of physical objects to create interactive surfaces.”
Herbert said he expected ‘intelligent’ applications to gradually overtake artificial intelligence.