I’ve been using Kotlin regularly for all the projects I would normally have done in Java for the past six months at least. Kotlin is a JVM programming language which compiles into Java bytecode. The difference is how the syntax is written before it’s compiled. Kotlin basically removes the repetitive areas in Java (notably getters and setters), enforces programming conventions, and gives a slight performance boost due to the default ways it resolves functions.
It’s syntax is very similar to JavaScript, and in fact can “compile” (convert) into JavaScript as well as JVM bytecode.After doing a few more projects for other clients, though, I’ve encountered a few flaws with using Kotlin as a practice. The main flaw (which should’ve been fairly obvious at start) is that clients don’t like it. Sure, it might mean their project gets delivered quicker and bugs are easier to fix (by the original author).
But for large projects (gamemodes for example) or networks which need to constantly adapt, Kotlin is discouraged. This is because only a small percentage of Sipgot developers actually know Kotlin, thus making it difficult to find a developer willing to fix bugs in the project if the original author is no longer available.Another annoyance are the compile times. A project can take as many as 30 seconds to build, where a Java one can be done in under 5 seconds.
On top of that, projects using Kotlin also need to have the Kotlin library available at runtime. This turns a normally 2kb project into a 4mb one. Finally, proficiency in Java beats the same in Kotlin. Even if they aren’t programmers or know any programming, most people know what Java is.
Less so Kotlin, and attempting to explain it just doesn’t work.