Code density matters for small electrical devices especially with batteries. That is why I talked about competing with ARM and not x86 on the desktop. I'm thinking of laptops, pads, netbooks, smart phones, embedded devices, fanless desktops where ARM leaves something to be desired and x86_64 is like taking a MAC truck to the grocery store. Better code density also means more instructions in the instruction cache and a smaller instruction fetch is needed. Less memory usage is still a small advantage in general, more so on low end electrical devices.
Actually, ARM has definate advantages in the area.
Its very low power.
X86 isn't quite there yet.
And the 68K never was a low power device.
So, arguing the code density issue from that point makes little sense.
Can you show me how to program utilizing all the cores?
I noticed that a lot of people have mentioned code modularity.
In the '80s we had a 6809 based point of sales system that had about 255 memory resident concurrent tasks that were all assigned priority levels (Microware OS-9 again).
This type of system would have moved very well into an SMP environment.
These days I still tend to code this way. Writing small routines that can thread info to other modules and call other tasks.
With an SMP capable OS this allows the operating system to spread tasks across multiple CPUs. And the software will still run in a single CPU environment.
Its not so much asv writing code for multiple CPUs as it is writing code that can run better in a multiple CPU environment.