| I really like Kotlin for full stack development. Unfortunately most shops are still using Spring. Which I feel really limits the languages potential. I've ended up on Vertx, but I am a bit concerned about it's lack of traction. * Routes can be based off Open API (contract first), or a simple route via string * First class GraphQL support * Full ecosystem for DB, message bus, etc. * PolyGlot, with a message bus and bindings for a number of different languages. * For data persistence I use JaSync with a custom micro-orm, noted below. This provides non blocking async support. With Kotlin multi platform, and typescript definitions in alpha. I can generate the data classes to a typescript interface. Have my react project pull those in, and use the data. If I need to do pub/sub over web sockets into react that's also supported by Vertx. This drastically reduces bugs, and developer time. As the data models are directly incremented and released with the back-end. The front-end doesn't have to write additional code. The Typescript project does need to install a kotlin dep, but that gets minimized. A few kilobytes to ease development inter opt is worth it. The message bus also does pub/sub to iOS/Android. I've switched to kotlinx serialization. I have some parts running on native llvm+clang, graal/jdk and nodejs. So I need the modules to be easily serialized on different platforms. This scales from a simple monolith. To if I need AOT compilation to Graal then running through KNative. I generally start projects as a hybrid monolith. But found it's scaled really well. I'm really excited for the compiler api / arrow meta compiler. I'm looking into ahead of time compilation of the queries. Automatically generating data classes for more advanced queries. Think joins, or json aggs. Additionally compiling the ORM calls into actual SQL strings. * Multi platform kotlin micro orm (MariaDB + Postgres) only right now. Closest JDK analogy is Jooq. https://animusdesign.gitlab.io/kotlin-frm/#/./sql Editing formatting |
I feel like Java keeps getting better and better and the compelling argument for the alt JVM languages is getting less interesting. (Except for something like Cloujure which still looks super interesting to me.).
Thoughts from someone whos worked with Groovy/Grails, Scala/Play, Jython, and Kotlin....