5 ms·
Frankly, I find Kotlin syntax a lot more meaningful as it contains much less boilerplate code than Java. And the same time, though, I believe Kotlin can only be
by m23khan 7y ago
Frankly, I find Kotlin syntax a lot more meaningful as it contains much less boilerplate code than Java. And the same time, though, I believe Kotlin can only be truly appreciated if you are coming in from experience with Java.
The thing I found hard at times with Kotlin is that it allows/relies on Java classes/frameworks but almost all of those classes/frameworks have their documentation (and only resources) written in Java so you have to have that additional mental step of translation between the two languages.
If you are not competent with basic Java, you may struggle to utilize those Java classes in Kotlin effectively.
Finally, when it comes to hiring people/finding job for Kotlin development, outside of Android jobs, there are very few positions requiring Kotlin which in terms means that there are very few non-mobile developers working with Kotlin as compared to Java. Now this may not be that much of a concern to us Developers, but for Management and leadership, it can raise a big concern towards adopting a language which from perspective of labor market comes across as a niche.
Having said all this though, I have no doubt at least in Android development, Kotlin will replace Java as programming language of choice but I don't think it will find traction beyond mobile (to displace / challenge Java).
- UserIsUnused 7y agoBackend kotlin is growing fast, not as much as android, but it is growing. You can notice big frameworks all adding kotlin niceties.
- oblio 7y agoYeah, Gradle added support, so did Spring, Micronaut, etc.
- gentaro_ 7y agoI think I can confirm your sentiment. As far as I can tell, which, however, is not much as pertains to the JVM, apart from polyglot projects, Kotlin is a rarity. I'm rather unfamiliar with Kotlin as a language. Is Kotlin for Android rather idiosyncratic as is Android Java? In other words, is there a superset of language features in Kotlin that goes beyond Android and is more expressive than modern Java?
- ptx 7y agoThere is no special Kotlin for Android - it compiles to JVM bytecode and works just as well on any JVM as on Android. It has lots of language features that make it more expressive than Java (try doing constructor dependency injection in both!) but these are not specific to Android.
- thu2111 7y agoIt's actually not that rare, in my experience. Job adverts can be quite misleading in this case. Kotlin jobs are usually advertised as Java jobs. For a couple of reasons: Firstly, quite a few large shops have started to use it, but usually due to grassroots bottoms-up activity of the sort that takes a while to percolate through to recruiting departments in distant departments where changing a job req is a heavy process. Secondly, there's really not much incentive to try and change job reqs like that because it would be extremely hard to advertise via job reqs We use Kotlin but you don't have to know it to apply. To a non-technical recruiter or HR department this looks like a useless statement and will frequently get "fixed" to what you "really meant", something like "Java experience is required, Kotlin highly desirable" which might just put off candidates who don't know what Kotlin is or how easy it is to learn. You're just restricting your pool of candidates for no reason in a highly competitive market. Much better to advertise the usage of Kotlin in places where developers looking for new opportunities might notice and leave the job reqs alone, and let Java devs get up to speed in the first few days. For example: https://medium.com/ing-blog/introducing-kotlin-at-ing-a-long-but-rewarding-story-1bfcd3dc8da0 https://medium.com/ing-blog/introducing-kotlin-at-ing-a-long... Edit: To answer your later question, yes, Kotlin goes beyond Java in a lot of ways other than nicer syntax. For instance it has a different (better) generics model, it has far more type inference, it has sealed (sum) types, it has language-integrated coroutines, it has compiler plugins that automate, amongst other things, serialization, it has delegated properties and interfaces, it has type aliases, it has extension functions etc. I suppose a lot of these can be considered "just" better syntax than Java (except for coroutines and generics), but, at the heart of most programming languages is making patterns that are possible in other languages much easier.
- antfarm 7y agoWhen hiring Android developers, experience with Kotlin is a great filter that separates the passionate from the lazy ones.
- gentaro_ 7y agoYou mean passionate ones embrace Kotlin and the lazy ones stick to Java?
- antfarm 7y agoYes.
- hav 7y agoAre those the only parts of the spectrum that exists? Passionate and lazy? I'd say that sentiment is lazy. There are lots of reasons why someone wouldn't or couldn't spend time learning Kotlin (kids, other family, other hobbies, list could go on).
- deleted 7y ago[deleted]