What are we going to do about mobile?

Joakim via Digitalmars-d digitalmars-d at puremagic.com
Thu Aug 24 07:28:07 PDT 2017


On Thursday, 24 August 2017 at 10:47:07 UTC, James W Hofmann 
wrote:
> I happened across this old thread in a search for "mobile app 
> dlang". I got a Chromebook recently and it represents a 
> substantial phase shift in devices for me:
>
> * It's an ARM laptop (Asus Chromebook R13, big.LITTLE 2/2 
> cores, 4GB memory)
> * It's also a tablet convertible
> * The main OS is the web browser
> * The secondary OS is a Linux desktop(via Crouton)
> * The other secondary OS is Android(Play Store support)
> * They all run simultaneously. ChromeOS supports this with 
> minor end-user configuration(hit some secret shortcut keys for 
> developer mode, run a shell script, click some boxes).
> * It cost under $300 (refurbished) and it's "high end" for the 
> product segment, and feels like it
>
> Which means I have ~three software ecosystems(two if you're 
> feeling uncharitable,  since all of them can do some web 
> browsing) on the same device, all representing different market 
> segments but more-or-less successfully converged. Although some 
> things like clipboard compatibility aren't in the offing, I can 
> switch between them with shortcut keys and share parts of the 
> file system without any virtualization or rebooting. And "high 
> end mobile" performance covers so many applications that as an 
> individual I can only justify trading up for certain heavy 
> workloads(large code-bases, high-end gaming, some media editing 
> and encoding). If I were feeling daring I could also try 
> running Wine, but that's better left to the x86 Chromebooks.

I've been using an Android tablet with four ARMv7 cores and 3 GBs 
of RAM as my only development hardware for almost two years now.  
I don't game or edit media, but I've had no problem tweaking and 
building fairly large codebases like llvm and ldc on the tablet, 
by using the Termux Android app.  I never had a monster desktop 
with multiple core i7s and 32 GBs of RAM- my last daily driver 
was a Win7 ultrabook with a core i5 and 4 GBs of RAM- so it's not 
that much of a difference, even less if I got something newer 
like you have.

> It's gotten me thinking that what we're looking at now is 
> really a fully converged computing environment where 
> monopolistic bottlenecks on software platforms are  eroded, 
> leaving us back in the position of generic device form 
> factors(type and  quantity of I/O, energy efficiency 
> requirements) as the main constraints on the  application. So 
> "mobile" may also cease to be a category of substance at the 
> same time as "desktop" and "Web". We'll just have 
> "front-end"/"client", plus some UI forms to cover different 
> devices.

What is actually happening is that mobile is killing off both 
desktop and web (see second graph in first link):

http://www.asymco.com/2016/11/02/wherefore-art-thou-macintosh/
https://www.usatoday.com/story/tech/2017/04/12/pc-shipments-dip----again/100347930/

I don't know what you mean by front-end/client, but yeah, we'll 
probably see even more convergence on a few UI frameworks in the 
coming years.  That won't be the web though.

> At least, that's where we're going. But it's not "there" yet 
> except in this particular product line, since Google is forcing 
> the issue in it - and the sales figures do suggest that it's 
> carving up the PC category and invading schools everywhere.

Another possibility is just using your phone for everything, with 
a laptop shell like this:

https://sentio.com

As I noted initially, this is built into the Galaxy S8, one of 
the top-selling smartphones this year.

> That thought is playing in my head against recent advertising 
> of BetterC - the USP of "give new life to old code" seems like 
> the most straightforward way to address this future, since if 
> we change our set of assumptions away from "new platforms" in 
> the usual sense of a technology shift provoking boil-the-ocean 
> rewrites, but instead to a continual agglomeration of new into 
> old and old into new, with most shifts occurring within the 
> existing stacks instead of without, then leveraging old code by 
> every means possible becomes the most important thing.

As others have pointed out, you could use D with C fairly easily 
for some time now.  You had to be a little careful to initialize 
the runtime, but that's about it.  This betterC effort is to 
placate those who can't or won't use the GC and a few other 
runtime features, even though many of them probably could.

So while it's good that D will make an effort to replace more C 
code, I'll also point out that many of the problems with software 
right now come from precisely this incremental approach.  You 
keep building with mud and straw and eventually it all caves in.  
It would be nice if D gives a new lease on life to some ancient 
codebases, but the real potential with D is to build completely 
new tech that obsoletes the old stuff.

To some extent, that is what happened with the mobile shift, 
where nobody uses Wintel, ie x86 CPUs or Windows, on mobile 
(though Microsoft is trying again with ARM).  Another big shift 
that seems to be ramping up right now is a move towards 
voice-driven interaction instead of mouse/keyboard or touch.  The 
hope is that D's power and flexibility drives new shifts like 
this, many of which are long overdue because of the stagnation of 
the last couple decades.

On Thursday, 24 August 2017 at 12:35:08 UTC, Ryion wrote:
> On Thursday, 24 August 2017 at 10:47:07 UTC, James W Hofmann 
> wrote:
>> I happened across this old thread in a search for "mobile app 
>> dlang". I got a Chromebook recently and it represents a 
>> substantial phase shift in devices for me:
>
> Arm has indeed become a more compelling platform, especially 
> with all the SBC that exist today. Nothing more fun as 
> compiling code on a Pi3 and seeing that little monster working 
> like the big boys ( of course slower ).
>
> Unfortunately, not everything works great. Like LDC being 
> version 0.14.0 ( 2014! ) on the Pi3 Debian images. And well, 
> "_Unwind_RaiseException failed with reason code: 2128056904", 
> on a simply compile. Not exactly hopeful.

Have you tried this more recent build of ldc 1.1.0 (third link in 
Downloads section at bottom)?

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

> C works great. C++ same. GoLang version 1.3.3 and later 
> perfect. FreePascal totally useless with "An unhandled 
> exception occurred at $00084234". Its interesting to see what 
> languages work and those that bum out with default debian 
> installations.
>
> So its a mixed bag on ARM development. But people underestimate 
> how fast the ARM platform is evolving regarding speed. The Pi3 
> has 4 Armv8 A53 cores but you got now systems like Helion X20 
> with 2 * A72, 4 * A53 and another 4 * A35... Getting to being 
> only 1/4 then a full blown Intel 7600. All that for a 15W max 
> package. And this year we are getting 10nm X30 with more 
> updated cores. Good times...

The ARM chip in the iPad Pro supposedly beats the lower and 
mid-end mobile Mac x86 CPUs in benchmarks.

> The PC evolution market in regards to CPU technology has been 
> frankly very dead for the last few years. Small gains each 
> generation but nothing impressive. The only impressing thing 
> has been the AMD Ryzon's that finally pushed 8 cores into 
> consumer hands for a cheap price ( and the thread ripper for 16 
> for a "reasonable" price, unlike Intel there prices for ages ).

More importantly, that core i5 from five years ago is good 
enough.  You cannot compete on performance improvements anymore, 
for the vast majority of consumers.  That's why the 
desktop/laptop PC market is shrinking to only those who need 
powerful hardware for niches like hardcore gaming, compiling 
large C++ codebases, or editing 4K video, which is a tiny market 
compared to mobile.


More information about the Digitalmars-d mailing list