Assuming a JVM is installed, distribution is as simple as sending a packaged .jar file.
There is a huge ecosystem of available libraries in Java, many with Kotlin wrappers for idiomatic usage.
Assuming a JVM is installed, distribution is as simple as sending a packaged .jar file.
There is a huge ecosystem of available libraries in Java, many with Kotlin wrappers for idiomatic usage.
I know games aren’t exactly meant for enterprise, but it’s been even longer since I had a JVM on my private computer. Maybe I’m alone in that?
This is not to shit in Kotlin, it’s certainly a nice language, but I wouldn’t expect widespread adoption to be what it was a decades ago.
You just create a custom image for you application with the Java linker.
At least in Linux the package management systems enable packagers to specify dependencies such as the JVM. In Windows perhaps it's possible to bundle a JVM of choice.
Nowadays of course the web has blunted our pain receptors for memory bloat and non-native UIs, thus you're probably running three Electron apps right now, compared to which Java is Win32ASM.
And as others pointed out, for games it doesn't matter anyway. You're not building a AAA-game or something for a 6510, so GC pauses and memory consumption don't matter, either. Plus rapid-development, refactoring and a setup where OOP actually makes good sense.
I wouldn't start Kotlin for that, but if you already know it, there's no reason not to use it.
On the other hand, Android tablets and laptops are part of the new desktops.
I'm sure there are still people doing it but it's becoming quite rare that that does not involve electron or similar with a lot of web technology. I haven't come across any projects involving desktop UIs in recent years. Plenty of native IOS/Android + web. But absolutely nothing that had desktop UI on a roadmap or backlog or even on a nice to have list.
Java used to own that space when it still existed. IMHO that went away between 2005-2010 time frame. Before that you could get away with not supporting OSX (or Linux, ever the afterthought) and building stuff with Visual Basic, Delphi or whatever.
And Android Java is still kind of Java, so Android running on ChromeOS or tablet plugged into a docking station, and one gets a desktop.
Enterprise applications are almost exclusively web based. And consumer software that isn't games is mostly web based in electron or one of a few remaining big desktop products (e.g. MS Office or Adobe tools) and also a long tail of relatively niche stuff.
The tool I use daily for making money is Intellij, I don't f* care that the menus and buttons do not match my DEs, I would also prefer programs that use the system defaults rather then try to implement a better theming with custom buttons,colors and whatever some designer with big ego thinks is cool today(I can't understand why they like slim fonts with low contrast colors)
https://touchlab.co/kotlin-native-stranger-threads-ep-1/
We're even getting early support for multi-threaded coroutines
https://github.com/Kotlin/kotlinx.coroutines/blob/native-mt/...