- Selecting a suitable toolchain that will work on Ubuntu, Linux Mint, and possibly Debian (hosts) for cross compilation to the BBB
- Setting up a sysroot (libraries, config files to include etc)
- What C libraries to use with the toolchain (if applicable)
- Standard C library to use for the embedded side (for use in a “Blinky” Kotlin Native sample program on the BBB side)
- Hosting for the Kotlin Native BBB toolchain and sysroot (stored as tar.gz files)
Now for a bit of background Kotlin Native uses the Kotlin programming language, and LLVM for developing native programs (executables) that work on multiple platforms (Linux x86-64, Mac OSX, ARM Cortex A SBC’s etc) without a virtual machine. Currently there is automatic reference counting for automatic memory management (no GC implemented), and manual memory management can also be used. Interoperability is available for C (not C++) libraries, which has a partial reliance on libffi. There are some Kotlin Native samples available with the most sophisticated one being a Tetris game which uses the SDL library.
The Kotlin programming language was created by JetBrains (the company that sells tools like PyCharm and IntelliJ). Andrey Breslav is the language founder who named Kotlin after Kotlin Island near Saint Petersburg, Russia. Kotlin is designed to be a programmatic (industrial), Object Orientated (is multi paradigm) programming language, which is fully inter-operable with Java (Kotlin JVM only), and is open source (Apache 2). Average time for learning Kotlin is around 3 days, although some people can pickup Kotlin in a few hours. Main areas where Kotlin is used are Android, and server side (especially micro web services) development. You might be interested in listening to some Talking Kotlin podcasts which cover other areas where Kotlin has been used.
Would be highly appreciated (also grateful) by the Kotlin Native team if the Beaglebone Foundation could send a BBB to JetBrains in order to ensure that Kotlin Native properly supports the BBB. Important to note that Kotlin is split into three platforms:
Kotlin JVM (Kotlin on the Java platform)
Kotlin JS (Kotlin on the web)
Kotlin Native (Kotlin on native platforms without a virtual machine)