On Tuesday, 3 November 2015 at 10:17:42 UTC, Jakob Ovrum wrote:
On Tuesday, 3 November 2015 at 09:06:57 UTC, Joakim wrote:
Android and iOS are gunning for laptops next, with their
recently announced Pixel C and iPad Pro, I'm sure desktops
will soon follow. When those two platforms went after Windows
Mobile/Phone, they burned it to the ground:
http://bgr.com/2011/12/13/apple-and-google-dominate-smartphone-space-while-other-vendors-scramble/
I think it's important to consider the divide between consumers
and, for lack of a better term at the top of my head, "content
creators". Mobile OS' notably lack support for the latter use
cases, like writing documents and spreadsheets, multimedia
editing, programming etc. Mobile OS on laptop hardware will
probably initially be competing solely for the consumer market,
including the segment that already moved to tablets.
Yep, I agree, with the caveat that full MS Office is supposedly
already on Android/iOS- I haven't tried it- and it wouldn't take
long for the rest of those apps to get ported over. Less
enterprise-oriented content creators are the target for this
mobile expansion into laptops and desktops. With all the
enterprise and LoB apps deployed on Windows, Microsoft may
retreat into the enterprise, just as IBM did when Wintel took
over the PC platform in the '90s.
This isn't just a random digression, I think this matters for
D. Maybe my interpretation is too simplistic, but I don't think
D has a presence in consumer-oriented software on traditional
OS' either, what with the lack of drive behind GUI
infrastructure. If we move on mobile application front-ends,
this will be mostly new territory for D. But maybe we will
first and foremost see D encroach on the spot that C++ has on
Android today, which in my impression appears to be in games
and optimized background services. For Android in particular,
it's much easier for us to bind the C++ API than the Java API.
Again, I agree, though there is no C++ API that I know of, all C
APIs as far as I know. Many of the Java APIs are unavailable
through C, so judicious use of Java and JNI will be necessary if
you want those. I have not actually tried JNI yet, but I doubt
it'd be an issue, given that it works with C and C++.
While many will likely take the current approach of writing their
GUI frontend in Java and their application logic/backend in a
native language like D, we should also try to provide native GUI
options, whether wrapping the touch version of Qt, translating
some existing OpenGL-based GUI toolkit into pure D, or writing
our own from scratch.
Why does this matter for D? Well, D's still barely on mobile.
Dan has been providing ldc builds that cross-compile to iOS
since July and nobody has confirmed that it works for them. I
provided patches that'd let anyone compile a mostly working
Android cross-compiler build of ldc soon afterwards, no
confirmed usage of that either (several people have run the
test runner I made available this weekend, thanks to them).
I'll give it a go. I've experimented with D on Linux/ARM
before, I just haven't had a project I want to run on any of my
ARM devices.
I forgot to mention in this thread that I'll soon provide a ldc
cross-compiler for linux/x86 and write up instructions on the
wiki on how to build and use ldc for Android.
However, there is no single cross-platform AoT-compiled
language you can use on all of these mobile platforms. There
is no modern language you can use on all of them, as Swift is
still iOS-only. D could be that language, the mobile wave is
one D cannot afford to miss.
What do you think the roadmap should be for improving D's
presence on mobile?
Step 1. Somebody other than Dan and me needs to download and try
building D code with the mobile cross-compilers/patches we've
provided.
Everything else will flow from that. Other steps:
- Help fix the remaining bugs.
- Integrate with Travis CI, as mentioned in the thread where I
announced the Android test runner:
http://forum.dlang.org/thread/[email protected]
- Port some D/OpenGL apps, especially games, to mobile and submit
them to the app stores, if only to say it's been done.
Right now, I think we need to talk about our plans for mobile.
How are we going to capitalize on this opportunity for D?
There's been a lot of muttering over the years, "Yeah, we need to
get on mobile," both from devs who wanted it and the core team.
Well, now we're 97% there: what now? We need to get together,
gather feedback, start planning, and put forward a credible
toolchain for mobile.