I am into Kotlin, after three years I am using it, I would not go anymore back to Java, although is 100% compatible, aka is possible to write some class in java other in kotlin into the same project.
It offers a lot of features, most of them offer kind of functional paradigms. I use it with RXJava and RXKotlin a powerful library that is a kind of Observer pattern with muscles. What muscles. Basically there are something as 200 operators that allow to filter, switch, zip, merge, combine an Observable, a stream in the last Java, with an observer that subscribe on a certain time. All of this making use of concurrency just "declaring" upstream to start an operation in a thread, and downstream to observe the final stream event on the User Interface. This changed completely my idea of Object Oriented programming, of using statements to change states as in the imperative programming one is supposed to do.
From one side I find it really exciting, from another one when one examine some code, there is a lot of magic involved, and I realize to stay miles from low level code. Is a strange situation but I guess is where coding is going in the future, an universal paradigm, always more functional oriented. But then I think over at all the great dev people that love Lisp and Clojure, and realize that I am losing the dream to have a full knowledge of coding, because is averting completely from :
structured programming paradigms.