On Friday, 24 July 2015 at 15:06:31 UTC, Ola Fosheim Grøstad
wrote:
On Friday, 24 July 2015 at 14:55:59 UTC, Joakim wrote:
So Obj-C/Swift aren't as efficient as C/C++, but nobody is
using those as the main language on any mobile platform- for
very good reasons, including that nobody other than game
developers wants to deal with them- and as native languages,
Obj-C and Swift are still much more efficient than the JIT-ed
or interpreted, non-native languages, which is why Android
finally switched from JIT-ing Java to AoT/native compilation
recently.
People have used C++ for both native mobile development
(symbian?) and for cross-platform development (e.g. mosync).
Symbian is dead, therefore "nobody is using" it. As for MoSync,
they went out of business a couple years ago and their toolkit is
no longer maintained, nor was it ever the "main language" on any
platform.
However Android and iOS deliberately set out to kill off
cross-platform development a few years ago by making GUI kits
incompatible and tool-based. So writing GUIs in other languages
than Obj-C/Java became tedious.
I don't think that's the reason, as their GUI APIs can be called
from other languages, Java is fairly cross-platform, and the
Android GUI is open source and can always be ported, as it has
been. Perhaps nobody has bothered to build a single GUI toolkit
that normalizes across the GUI APIs of each OS, but that doesn't
mean it can't be done.
I found it much easier to use Mosync-C++ than Objective-C, to
be honest. But it is now a dead technology.
What does this have to do with the original point, which is that
native/AoT-compiled languages are having a resurgence on mobile?
You made the point that some native languages are more efficient
than others, which is irrelevant when they are all much more
efficient than the non-native languages.