Nim programming language finally hit 1.0

Petar Petar
Fri Oct 4 16:28:31 UTC 2019

On Friday, 4 October 2019 at 15:56:28 UTC, Ola Fosheim Grøstad 
> On Friday, 4 October 2019 at 15:34:32 UTC, Paulo Pinto wrote:
>> JNI is pretty much a requirement for anything that isn't 
>> OpenGL, Vulkan, Audio, ISO C or ISO C++ standard libraries, 
>> even accessing files outside the APK install directory 
>> requires Java due to SAF.
>> Additionally since Android 7 Google has been clamping down the 
>> NDK APIs to minimize exploits via native code.
> But Flutter is made by Google, so they clearly have a path to a 
> Java-free environment? Or does Flutter depend on Java?

We're using Flutter at work for one of our applications, so I can 
answer that.

The Flutter project is divided in two parts: engine and 
framework. The engine is written in a mix of C++, Java and 
Objective-C where Java and Objective-C are respectively used to 
access the platform APIs. The framework (what Flutter apps are 
directly using) is written in pure Dart.
Flutter is using a technique called system channels which is 
basically an RPC-like thing that marshals method calls to/from 
C/C++/Java/Objective-C from/to C++ and Dart. It's slower than 
calling the method from the same language.

I believe Flutter will be framework of choice for their upcoming 
Fuchsia OS, but currently Dart is very much a second class 
citizen on Android (unlike Kotlin), just like it is on iOS. 
Fortunately, Google have done a stellar job of creating good dev 
experience by providing a solid CLI and editor plugins that 
abstract the platform differences.

More information about the Digitalmars-d mailing list