Re: Non x86 based PC for everyday usage
Posted: Mon Aug 15, 2016 8:57 pm
As an end user consumer, most users don't really care at all what internal architecture there computer uses. Especially in todays day and age where computers are "fast enough", people will care less and less about internal architecture.
I have no idea what CPUs are running inside of my Jeep, as an example. Or my refrigerator. Or my stove, or TV, or thermostat. Boxes with lights and buttons that I hope simply continue to work.
The Windows eco-system is pretty much "hard coded" to the x86 architecture. For good and ill, they're pretty much stuck with it. For a short while, Windows NT was dabbling with other processors families (notably the Alpha), but that didn't really last.
Apple is less so. Being based on NeXTStep, Mac OS has been multi-architecture to its core since the mid-90's. If Apple decided to, it could readily come out with a new CPU platform, such as an A9 (One of Apples recent ARM based CPUs) based Laptop. Does the existing software work on it? No, it does not. But for most software, it's a re-compile away (plus testing, naturally), and the platform readily handles "fat" binaries that support multiple architectures, so distribution is basically painless for vendors. Apple already promotes "architecture free" development practices throughout it's tool stack. If you're following Apple's guidelines, the port process should be straight forward as a developer.
The Linux and BSDs are cross architecture today already, much software has been ported to several CPUs. The only thing really keeping the OSS systems from running alternative architectures is readily available hardware, and then drivers on top of that. GPU acceleration always being the bug-a-boo plaguing open systems.
Android is mostly architecture agnostic, since the primary development environment is VM based. Sure some code out there is written to the underlying CPU, but the bulk of it is not. Android is not really on the desktop per se yet. But Chrome OS on Chromebooks will be running Android apps very soon.
Finally, with more and more development being done at the higher level, using high level architectures like the Android VM or environments such as Javascript, plus the litany of other scripting languages, the dependency on the CPU is getting less and less and less. Most server side developers already "don't care" about what CPU they're using.
The large internet companies would switch architectures in a heartbeat if there was a discernible benefit to doing so. If Facebook felt that ARM was going to be providing a 10% boost in energy efficiency over the long term compared to Intel, they'd get boards designed, built, and would start porting their back end over. (I'm not suggesting ARM can do that.)
The large AMD ARM servers seem to be pointing to the energy conscious market. The raw truth is that for a large amount of use cases, raw performance is not necessarily the first consideration in decision making, and in those scenarios, perhaps a 1000 ARM cores in a server is more useful than some monster Intel chips.
But this is why you want multiple architectures to be viable in the market, especially the consumer market. You need diversity to avoid a monoculture. You need diversity to encourage competition. To hold Intel's feet to the fire. Intel needs that for it's own sake.
It would be great to see some more CPUs in the mobile space. Something besides ARM. Especially since Android can in theory support this already, let the foundries and designers work their magic to make a better mobile CPU. Apple brought it in house simply so they could scale their production better, get exactly what they wanted for their use cases. But in the end, they're still ARM chips inside.
I have no idea what CPUs are running inside of my Jeep, as an example. Or my refrigerator. Or my stove, or TV, or thermostat. Boxes with lights and buttons that I hope simply continue to work.
The Windows eco-system is pretty much "hard coded" to the x86 architecture. For good and ill, they're pretty much stuck with it. For a short while, Windows NT was dabbling with other processors families (notably the Alpha), but that didn't really last.
Apple is less so. Being based on NeXTStep, Mac OS has been multi-architecture to its core since the mid-90's. If Apple decided to, it could readily come out with a new CPU platform, such as an A9 (One of Apples recent ARM based CPUs) based Laptop. Does the existing software work on it? No, it does not. But for most software, it's a re-compile away (plus testing, naturally), and the platform readily handles "fat" binaries that support multiple architectures, so distribution is basically painless for vendors. Apple already promotes "architecture free" development practices throughout it's tool stack. If you're following Apple's guidelines, the port process should be straight forward as a developer.
The Linux and BSDs are cross architecture today already, much software has been ported to several CPUs. The only thing really keeping the OSS systems from running alternative architectures is readily available hardware, and then drivers on top of that. GPU acceleration always being the bug-a-boo plaguing open systems.
Android is mostly architecture agnostic, since the primary development environment is VM based. Sure some code out there is written to the underlying CPU, but the bulk of it is not. Android is not really on the desktop per se yet. But Chrome OS on Chromebooks will be running Android apps very soon.
Finally, with more and more development being done at the higher level, using high level architectures like the Android VM or environments such as Javascript, plus the litany of other scripting languages, the dependency on the CPU is getting less and less and less. Most server side developers already "don't care" about what CPU they're using.
The large internet companies would switch architectures in a heartbeat if there was a discernible benefit to doing so. If Facebook felt that ARM was going to be providing a 10% boost in energy efficiency over the long term compared to Intel, they'd get boards designed, built, and would start porting their back end over. (I'm not suggesting ARM can do that.)
The large AMD ARM servers seem to be pointing to the energy conscious market. The raw truth is that for a large amount of use cases, raw performance is not necessarily the first consideration in decision making, and in those scenarios, perhaps a 1000 ARM cores in a server is more useful than some monster Intel chips.
But this is why you want multiple architectures to be viable in the market, especially the consumer market. You need diversity to avoid a monoculture. You need diversity to encourage competition. To hold Intel's feet to the fire. Intel needs that for it's own sake.
It would be great to see some more CPUs in the mobile space. Something besides ARM. Especially since Android can in theory support this already, let the foundries and designers work their magic to make a better mobile CPU. Apple brought it in house simply so they could scale their production better, get exactly what they wanted for their use cases. But in the end, they're still ARM chips inside.