“More use of assembly” — Dubious prediction

InfoWorld’s Tom Yager wrote a column on the benefits of native code, but then went off the deep end with:

Here’s a native code prediction that’s way under your radar: We’ll see more use of assembly language. …Developers coding for new, controlled deployments can afford to set high requirements that include a 64-bit CPU, OS, and drivers. And if you know you’re coding for Opteron and you’re ready to write to that architecture, baby, life is a highway.

[via James Robertson]

I worked with assembly language. I knew assembly language. Assembly language was a friend of mine. And I have this to say: Assembly language isn’t coming back to the mainstream.

The point that native-OS code is worthwhile is dead on. The point that native-hardware code is worthwhile is, for numerics and media programming specialists, true: if you’re working with huge blocks of 8- and 16-bit integer data, packing the registers and using the wide-data ops is going to be worthwhile (assuming we’re talking about code that will be run hundreds or thousands of times). But the only reason to drop that far low-level is parallelism and assembly has very little (if any) advantage for expressing that. Even in the graphics world, where concurrent ops are already the norm, the trend has been towards higher-level languages (relatively speaking: shader languages look like C).

The idea that the concurrent revolution is going to be solved by old tools is dead wrong. Low-level C-derived tools? Possibly. (Or possibly not: a higher-level language that did for concurrency what Java did for memory management [solve 90+% of the problem in a relatively performant manner] could very well sweep the industry.)