On Tuesday, 11 September 2018 at 08:34:31 UTC, Chris wrote:
On Tuesday, 11 September 2018 at 07:23:53 UTC, Joakim wrote:


I agree with a lot of what you say here, but I'm not sure what you mean by "first class support for mobile." What exactly do you believe D needs to reach that level?

Basically the things you describe. I was thinking of a stable and easy build system, e.g.

$ dub init android [iOS]

$ dub --arch=arm64

Yes, something like that should be done, but I won't be doing much with dub till next year. If anyone else is interested in doing it earlier, feel free.

And and of course check which language features work (or don't work!) on ARM and write a documentation.

Cf. https://kotlinlang.org/docs/reference/native-overview.html

I don't see any language features listed for Kotlin there, but ldc does have an AArch64 tracker issue, which lists what else needs to be done:

https://github.com/ldc-developers/ldc/issues/2153

It might be a good idea to set up a funding target to get the iOS port back up to speed again. I don't use Apple products so it won't be me picking up that porting work, but maybe Dan could be enticed to finish it as a paid project, since he did most of the voluntary work so far. I'm purely speculating, no idea if money changes the equation for him, just know that he's been too busy to work on it for the last couple years.

That'd be part of the first class support. That a dedicated team works on it. Volunteers are not enough. Once it's polished it will still need loads of maintenance.

I don't think there's a "dedicated team" for any platform that D runs on, so we don't have "first class support" for any platform then.

D is largely a volunteer effort: if that's not enough, maybe D isn't right for you. This isn't Kotlin or Swift, where one of the largest companies in the world puts full-time devs on the language and gives everything away for free because it suits their agenda.

In Apple's case, that means Swift doesn't really support Android and definitely doesn't support Android/AArch64, because putting full-time devs on getting Swift working well with Android doesn't suit their agenda of pushing iOS:

https://github.com/apple/swift/blob/master/docs/Android.md
https://blog.readdle.com/why-we-use-swift-for-android-db449feeacaf

However, since Swift is largely open source, there is a small company that claims to have added Android/AArch64 support to the Swift compiler:

https://www.scade.io

Kotlin is becoming more cross-platform now since google is more cross-platform, but then you're depending on google continually funding development on an OSS project, which they've backed out of before:

https://arstechnica.com/gadgets/2018/07/googles-iron-grip-on-android-controlling-open-source-by-any-means-necessary/

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.

As for ongoing maintenance, Android/ARM was done years ago and hasn't taken much in the way of maintenance to keep most of the stdlib/dmd tests passing, so I don't think that's much of an issue.

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/yhulkqvlwnxjklnog...@forum.dlang.org

On Tuesday, 11 September 2018 at 16:50:33 UTC, Dejan Lekic wrote:
On Monday, 10 September 2018 at 13:43:46 UTC, Joakim wrote:
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. ...

I mostly agree with you, Joakim. I own a very nice (but now old) ODROID U2 (check the ODROID XU4 or C2!) so ARM support is important for me...

Also, check this: https://www.hardkernel.com/main/products/prdt_info.php?g_code=G152875062626

HOWEVER, I think Iain is right - PPC64 and RISC-V are becoming more and more popular nowadays and may become more popular than ARM in the future but that future is unclear.

If and when they do, I'm sure D and other languages will be ported to them, but right now they're most definitely not.

I know because I actually looked for a RISC-V VPS on which to port ldc and found nothing. Conversely, I was able to rent out an ARM Cubieboard2 remotely four years back when I was first getting ldc going on ARM:

https://forum.dlang.org/post/steigfwkywotxsypp...@forum.dlang.org

I contacted one of the few companies putting out RISC-V dev boards, Sifive, a couple weeks ago with the suggestion of making available a paid RISC-V VPS, and one of their field engineers got back to me last week with a note that they're looking into it.

I think their model of having an open ISA with proprietary extensions will inevitably win out for hardware, just as a similar model has basically won already for software, but that doesn't mean that RISC-V will be the one to do it. Someone else might execute that model better.

On Tuesday, 11 September 2018 at 21:37:17 UTC, Neia Neutuladh wrote:
On Tuesday, 11 September 2018 at 07:23:53 UTC, Joakim wrote:
I agree with a lot of what you say here, but I'm not sure what you mean by "first class support for mobile." What exactly do you believe D needs to reach that level?

Natural-feeling bindings to platform libraries that are not incredibly slow and that are well-maintained. What does it matter that you can run a webserver from your phone if you can't write a "hello world" GUI program, set an alarm, or enqueue a download?

There are those who run the webserver as an app and reuse their webapp as a mobile app, since mobile always comes with a webview or browser. You can now do that with your vibe.d web app if you choose, I'd say that matters.

I don't think any other platform D supports has the type of "well-maintained" bindings you're asking for either, hasn't stopped those that want to use D.

I've got a bit better than "hello world," though that's there too, in the sample D apps in my android repo and the instructions in the wiki:

https://github.com/joakim-noah/android/tree/master/samples
https://wiki.dlang.org/Build_D_for_Android

Reply via email to