Mobile is the new PC and AArch64 is the new x64

Joakim dlang at joakim.fea.st
Wed Sep 12 15:38:36 UTC 2018


On Wednesday, 12 September 2018 at 06:41:38 UTC, Gambler wrote:
> On 9/10/2018 9:43 AM, Joakim wrote:
>> 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:
> I'm all for supporting modern open CPU architectures. At the 
> same time,
> I fear that the specific trend you're describing here (people 
> ditching
> PCs for cellphones/tablets) is effectively a reversal of the PC 
> revolution.
>
> For the last 30+ years people benefited from "trickle down 
> computing". They had access to PCs that were equivalent to 
> cutting edge servers of 6-7 years prior. They had ability to 
> choose their operating system, expand and upgrade their 
> hardware and install any software they wanted.
>
> All of this is breaking down right now.

Yes and no, it is true that that is the way tech  _used_ to 
diffuse. However, do you know what the largest tech company in 
the world is right now? It's not IBM, Apple, HP, or Microsoft, ie 
none of the server or PC companies. It's Apple, which doesn't 
sell into the server or traditional enterprise markets almost at 
all and only has 15-20% unit share in the mobile market.

In other words, consumer tech markets are _much_ larger than the 
server/enterprise markets that used to lead tech R&D, which means 
consumer tech like mobile is what leads the way now.

As for choosing your own OS, that's still possible, but as 
always, it can be tough to get drivers for your hardware:

https://together.jolla.com/question/136143/wiki-available-devices-running-sailfish-os/

And if you simply want to tinker with the Android OS on your 
device, there are many ways to do that:

https://www.xda-developers.com/how-to-install-custom-rom-android/

No need to expand and upgrade your hardware when prices keep 
dropping in this Darwinian market. There's now a $500 phone with 
a faster chip than the one I got just 7 months back for $700:

https://m.newegg.com/products/N82E16875220078

As for installing any software you want, Android allows it: it's 
how I debug the apps I build on my phone or tablet. The iPhone 
doesn't, but it's a minority of the mobile market.

> Intel got lazy without competition and high-end CPU 
> architectures stagnated. All the cutting-edge computing is done 
> on NVidia cards today. It requires hundreds of gigabytes of 
> RAM, tens of terabytes of data and usage of specialized 
> computing libraries. I very much doubt this will "trickle down" 
> to mobile in foreseeable future. Heck, most developer laptops 
> today have no CUDA capabilities to speak of.

I question the need for such "cutting-edge computing" in the 
first place, but regardless, it has already moved down to mobile 
and other edge devices:

https://arstechnica.com/gadgets/2017/10/the-pixel-2-contains-a-custom-google-soc-the-pixel-visual-core/
https://www.theverge.com/2018/7/26/17616140/google-edge-tpu-on-device-ai-machine-learning-devkit

> Moreover, mobile devices are locked down by default and it's no 
> trivial task to break out of those walled gardens. IIRC, Apple 
> has an official policy of not allowing programming tools in 
> their app store. Alan Kay had to personally petition Steve Jobs 
> to allow Scratch to be distributed, so kids could learn 
> programming. I believe the general policy is still in place.

They have their own app for that now:

https://www.apple.com/swift/playgrounds/

> Android is better, but it's still a horror to do real work on, 
> compared to any PC OS. Fine, you rooted it, installed some 
> compilers and so on. How will you share your software with 
> fellow Android users?

You seem to have missed all the posts I've made here before about 
native Android support for ldc: :) _I have never rooted any of my 
Android devices_. Compiling D code on most any Android device is 
as simple as installing an app from the official Play Store and 
typing a single command, `apt install ldc`:

https://wiki.dlang.org/Build_D_for_Android

The instructions there even show you how to package up an Android 
GUI app, an apk, on Android itself, by using some other packages 
available in that Android app.

> In essence, we are seeing the rapid widening of two digital 
> divides. The first one is between users and average developers. 
> The second one is between average developers and researchers at 
> companies like Google. I very much doubt that we will see an 
> equivalent of today's high-end machine learning server on 
> user's desk, let alone in anyone's pocket, within 7 years.

I disagree on both counts. First off, people were running 
supercomputers and UNIX workstations while you were piddling 
along on your PC decades ago. That changed nothing about what you 
were able to learn and accomplish on your PC. In fact, you were 
probably much better off than they were, as the PC skills you 
picked up were likely in much more demand than their 
supercomputing abilities. ;)

It's similar today. Billions of people can now access programming 
through that open-source Termux app that can be installed on 
almost any Android device. That's _HUGE_ for the user, and D is 
one of only about 15 programming languages currently available in 
that app, and one of only 5 that eventually compile down to 
native assembly, alongside Vala, Go, C, and C++.

As for machine learning researchers and the like, I think that's 
way overhyped, as this guy says:

https://blog.piekniewski.info/2018/05/28/ai-winter-is-well-on-its-way/

I'm confident that the app market will continue being much larger 
than the cloud/research market you're concerned about, though 
both are due for a shakeout.

> My only hope is that newer AMD processors and popularity of VR 
> rigs may help narrow these divides.

I doubt either of those will matter at all anytime soon.

On Wednesday, 12 September 2018 at 08:51:17 UTC, Chris wrote:
> On Wednesday, 12 September 2018 at 08:09:46 UTC, Joakim wrote:
>> I don't fault google for making those choices, as nobody has a 
>> right to their OSS contributions, but it is something to 
>> consider when using any platform, and even more so for an OSS 
>> project: who is funding this and why? Will their model be 
>> sustainable?
>>
>> There are no easy answers here: if you want a free-priced, OSS 
>> toolchain, you're going to be marching to the beat of 
>> someone's drum.
>
> We all understand that. But often you don't get to choose. If 
> the user wants an app for Android/iOS what you're gonna tell 
> him or her? "I'm not marching to the beat of Google's drum."?
>
> Also, having no or no smooth support for something doesn't make 
> the D community "rebels".

Heh, that's not what I was saying at all: in fact, my point was 
that you're still marching to a bunch of random volunteers' drums 
with D. ;)

And the drumbeat comment referred to toolchains, so I wasn't 
saying that in regard to D supporting a platform like 
Android/iOS, only that you should know how they're funded.

>> btw, it was a thread _you_ started that finally spurred me to 
>> begin this Android port five years back, though I'd enquired 
>> about and had been considering it earlier:
>>
>> https://forum.dlang.org/thread/yhulkqvlwnxjklnogmfv@forum.dlang.org
>
> Ha ha! I know and you picked up on it. Thank you very much, 
> it's much appreciated. But look at the date: November 2013 (!) 
> and we're still talking about it while others have overtaken D 
> in this respect.

Not Swift, ;) at least not from Apple.

> 5 years + the founding of the D Language Foundation. Sometimes 
> it's good to think outside the box a little and see what's 
> going on around you. It's not just fancy ranges and allocators. 
> The software has to actually run somewhere.

Sure, we're both on the same page about the importance of mobile.

On Wednesday, 12 September 2018 at 09:18:46 UTC, Chris wrote:
> From one of the articles you linked:
>
> "The Apple Swift compiler has had the ability to compile code 
> for the Android platform for a few years now, but it hasn’t 
> made many friends in the developer community owing to its 
> complexity. Our toolchain was designed to solve this problem by 
> taking the complexity and headaches out of the process, so you 
> can focus on building great apps for your users."
>
> If Android devs have been reluctant to touch Swift owing to its 
> complexity (not the language, the toolchain), do you think they 
> would touch D?

It depends what they mean by that complexity. The official page 
on Swift for Android that I linked shows that it takes about the 
same kind of steps to build apps as with D. But that Medium post 
you quote now says that they're missing some SwiftFoundation 
pieces on Android, whereas I suspect much less is missing from 
the D stdlib on Android. They added a JNI generator for Swift, 
don't think we have one for D yet. They integrate Swift with 
Android Studio using a Gradle plugin; I've said I do nothing with 
IDEs.

So yes, D is missing some of the polish added by that outside 
developer to Swift on Android, so depending on which of those 
Android devs need, they may not want to use it. But at least D 
supports Android/AArch64 now, which even that more polished 
toolchain from Readdle doesn't.


More information about the Digitalmars-d mailing list