Mobile is the new PC and AArch64 is the new x64

Joakim dlang at joakim.fea.st
Mon Sep 10 13:43:46 UTC 2018


LDC recently added a linux/AArch64 CI for both its main branches 
and 64-bit ARM, ie AArch64, builds have been put out for both 
linux and Android. It does not seem that many are paying 
attention to this sea change that is going on with computing 
though, so let me lay out some evidence.

At my workplace six years ago, the developers were all allocated 
a core i5 ultrabook- likely with 4 GBs of RAM and a 128 GB SSD, 
though I don't remember those specs- and a 27" 2560X1440 display 
with which to get our work done. I was pretty happy with the 
display, the best I'd ever used to that point. I'm guessing the 
setup cost my employer a couple thousand dollars per developer.

I picked up an Android/AArch64 smartphone earlier this year, with 
6 GBs of RAM, 128 GBs of flash, a Snapdragon 835 octa-core CPU, 
and a 5.5" 2560X1440 display. This is the fastest computer I've 
ever owned, and it fits in 6 cubic inches and weighs a little 
more than a third of a pound. It cost me approximately $700.

That is a stunning change in mobile capabilities in just six 
years, where what used to be a mobile developer workstation now 
comes packed into a smartphone at a fraction of the cost.

If you think the phone doesn't actually perform, I borrowed a 
2015-model Macbook Air with a core i5 and 4 GBs of RAM and built 
the last pure C++ version of ldc, 0.17, using both cores with 
`-ninja -j5`. It took two minutes with clang from Homebrew, the 
same amount of time it takes me to build the same source on my 
smartphone with clang by running `ninja -j9`.

This phone has been my development hardware since early this 
year, by pairing it with a $30 bluetooth keyboard and a $5 stand 
to hold it up. I'm typing this long forum post up on it now.

Tech companies are starting to realize this and going after the 
desktop/laptop PC markets with various 64-bit ARM products:

https://www.engadget.com/2018/08/09/samsung-galaxy-note-9-dex/
https://arstechnica.com/gadgets/2018/08/samsungs-tab-s4-is-both-an-android-tablet-and-a-desktop-computer/
https://youtube.com/watch?v=uLvIAskVSUM
https://www.anandtech.com/show/13309/lenovo-yoga-c630-snapdragon-850-windows

That last link notes 25 hours of battery life with a 
Windows/AArch64 laptop, one of the key benefits of ARM, which is 
why even Microsoft has come around.

Yes, I know, these devices won't replace your quad-core Xeon 
workstation with 32-64 GBs of RAM anytime soon, but most people 
don't need anywhere near that level of compute. That's why PC 
sales keep dropping while mobile sales are now 6-7X that per year:

https://www.businessinsider.com/PC-sales-are-continuing-to-slump-fewer-are-sold-now-than-when-the-iPhone-launched/articleshow/62547330.cms
https://www.androidauthority.com/smartphone-sales-idc-2018-871363/

Most of those mobile devices running iOS have AArch64 CPUs, and 
google said last December that "over 40% of Android devices 
coming online have 64-bit support," which is why they're 
requiring apps with native libraries to support it by next fall:

https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html

D now has mostly working AArch64 support, with the ldc 1.11 
release last month:

https://github.com/ldc-developers/ldc/releases/tag/v1.11.0

That is the result of years of intermittent AArch64 patches added 
by the core teams of ldc and gdc- David, Iain, Kai, Johannes, 
Dan, and others- to which I recently added some Android patches. 
You too can pitch in with the few remaining issues or try out the 
AArch64 support with your own D code.

This company provides a free linux/AArch64 CI for OSS projects, 
LDC uses it:

http://blog.shippable.com/shippable-arm-packet-deliver-native-ci-cd-for-arm-architecture

Despite all this, D may never do very well on mobile or AArch64, 
even though I think it's well-suited for that market. But at the 
very least, you should be looking at mobile and AArch64, as 
they're taking over the computing market.


More information about the Digitalmars-d mailing list