
Takeaways from KotlinConf 2017 - robbiea
https://www.vokal.io/blog/vokal-takeaways-from-kotlinconf-2017
======
mwcampbell
Kotlin Native is exciting. But there's another way to run JVM languages,
including Kotlin, on iOS: the open-source Multi OS Engine ([https://multi-os-
engine.org/](https://multi-os-engine.org/)), which basically brings ART (the
Android Runtime) to iOS. Note: It doesn't bring the Android UI toolkit, or any
cross-platform toolkit, to iOS, so you have to write UI code for iOS. But I
think that's as it should be.

Of course, there's a trade-off between Kotlin Native and Multi OS Engine.
Kotlin Native is a lighter runtime. BUt with MOE, you can use arbitrary
libraries that target the JVM (well, the JVM subset that works on Android). So
MOE makes a lot more existing code available for iOS. For Kotlin Native to
truly deliver on the promise of cross-platform business logic, a Kotlin
library ecosystem independent of the JVM will need to develop.

This space is going to be interesting to watch over the next little while.

~~~
kodablah
> For Kotlin Native to truly deliver on the promise of cross-platform business
> logic, a Kotlin library ecosystem independent of the JVM will need to
> develop.

Or someone writes a bridge between native Kotlin code and AOT'd JVM code. Or
someone writes a kind of reverse compiler from JVM bytecode to Kotlin. Not
sure how practical either is due to sheer JRE stdlib size.

~~~
peoplewindow
Look at SubstrateVM. It's capable of making fully stripped AOT compiled
binaries with a bundled JVM that only use the parts of the JRE library that
are needed. Sort of like what Go can do.

~~~
kodablah
Yup. There is also jaotc coming along. Regardless, to use a them from Kotlin
Native would require bridging between the two.

------
krat0sprakhar
> The organizers developed conference apps for both iOS and Android using
> Kotlin. They also built the API in Kotlin using Ktor, a framework for
> building server-side business logic with Kotlin.

This is really cool! Excited to dig into their repo:
[https://github.com/jetbrains/kotlinconf-
app](https://github.com/jetbrains/kotlinconf-app)

------
blueprint
Looking forward to hearing more about Kotlin/Native. We need a proper solution
for this problem.

~~~
gman83
I think Kotlin/Native's approach of sharing business logic while keeping the
UI stuff native is probably the right choice. Although something like Flutter
which render's all their own widgets is interesting because it allows you to
share even more code. The question there is whether they'll be able to truly
match the native widgets and have all the accessibility stuff working.

In any case it's good that different projects are approaching this from
different angles.

~~~
TylerE
History says no.

Any widget toolkit, on any platform ever, that has tried to provide it's own
cross-platform widgets, has been completely terrible and ends up being native-
nowhere instead of native-everywhere.

~~~
zastrowm
I'm curious if this will change now that webapps/electron-apps have become so
popular. It may be that users have begun non-native apps as the new norm.

~~~
pjmlp
In five years the Electron craziness will be gone.

~~~
bonesss
And, judging from what was going on 5 years ago, whatever replaces it will be
even crazier and trendier :)

~~~
pjmlp
My bet, browser will be reduced to yet another general purpose VM, with the
new trend being WebAssembly + Canvas/WebGL.

Or back to pure native.

