How is it compared to Java 8/9?
Eclipse vs IntelliJ?
How is it compared to Java 8/9?
Eclipse vs IntelliJ?
I find Kotlin a low-risk alternative to Java. Your code still feels like a normal Java project: You use the same frameworks, you have excellent tool support, you can keep searching for java questions on stackoverflow. Kotlin is fast and fully compatible with your Java code.
We are hiring at the moment, and our offer asks for an experienced Java/Spring developer. We just mention Kotlin at the end of the description.
Kotlin is not the right tool if you "hate" Java. It feels like the language that the Java 8 team would have built if backwards compatibility was not an issue.
Apart from some very useful syntactic sugar, it has
- no checked exceptions
- classes and methods are by default final
- no primitives that need to be (auto)boxed to and from objects
- no "static" context
- first class functions
- named function arguments that can have defaults
- null safety
- less broken generics
I like Java as a platform, and I think the language is perfectly fine. But Kotlin offers a cleanup and improvement, at almost no cost.Definitely makes android development more pleasant as you have more tools and language features. It feels like a modern typesafe language.
The things I like the most is that you can mix and match the 2 language with little effort and that JetBrains has done an amazing work integrating the language in the IDE (Android Studio) which is based on the IntelliJ platform.
Our team was comprised of polyglot devs (java/obj-c/swift) so kotlin felt more like swift in some ways so working both on ios and android made it pleasant and porting was easier.
I wouldn't recommend you convert your java project to 100% kotlin to start but the excellent interop (better than obj-c/swift) between java-kotlin makes it easy to try some stuff out and see if you like it. They have a very helpful slack channel where all the kotlin devs and language designers hang out so they are always responsive to questions. The community is still small but very helpful and the folk are nice and inclusive.
So to answer you question it is ready for production and tools are excellent as well as the language is very pragmatic and has evolved pre-1.0 based on real life developer feedback not from academics who are not coding every day.
I work in a 15 engineers Android team with a very conservative lead, even as a senior engineer, there is no way to introduce Kotlin.
The tooling is pretty great, Jetbrains knows how to develop an IDE and it shows.
Compile time is a bit slower.
The language is way better than Java 8 IMO. It aims at solving all the weaknesses of the language and does a good job at that.
See end of page here: https://kotlinlang.org/docs/tutorials/command-line.html
This could be awesome as it opens up for a better alternative than Groovy for tooling.
Also, scripting might be a way to sneak in a new language in a conservative developer organization? Start using it for tooling, builds, testing, etc ...
Kotlin, on the other hand, built the static compilation and Android targeting first, as the primary feature, and is offering the Repl and toplevel statements as extras. This is how languages are meant to work.
That way they get a foothold in the android world (since most android apps are built with this build system) and it will be interesting to be directly able to compare kotlin & groovy scripts.