Back when I was in undergrad, I recall how I was taught C. Just read one of the bible books on a weekend, and was ready to go. I was recently taking a look at Kotlin books and literally banged my head on the table. I realized the language has a good rap but it is ridiculously feature-laden .. to the point they threw in the kitchen sink. A key positive of languages is easiness to learn. I really wonder about Kotlin. It may be well-designed, but did it really need to be so big?
I'm also curious if it is just me. I am a grey hair now, with many other responsibilities. Why were C, Python and Go so easy for me when kotlin seems so hard to penetrate (for me)? Is there a way to quantify language complexity?
Take the K&R C book. It describes the language itself only - not the standard library. The Kotlin docs describe the language _plus_ parts of the Kotlin standard library which is why it appears to have lots of features. You'd have to read through half the standard C library documentation & pthreads docs in addition to K&R C to get the equivalent experience.
I will also say: Android Kotlin and pure server Kotlin are entirely different beasts. If you are on Android and you are frustrated with Kotlin, it is probably Android.
Kotlin compiles now to JS, WASM... even LLVM bitcode if you want it to. Coming to Kotlin from a pure lang perspective, I'm not sure what it would be like, it might not be you. I know as someone who came to it through Java that it is a massive improvement on what I had before.
What do you mean "so big?" Kotlin doesn't feel "big" to me.
`
enum class Sample { A, B }
val x: Sample = Sample.A
val y = when (x) {
Sample.A → 0
Sample.B → 1
}
`
I think if you give it time you might like it. It takes some getting used to, sure, but especially compared with the alternatives (Java to use JVM, Java on Android, etc) it's pretty great.
Cross-platform Kotlin is very new but it works surprisingly well.
I found Kotlin easy to pick up, and use, but there are always complicated parts of it I haven't yet grokked. I'm sure a working knowledge of it is easy to obtain but I'm with you on the more dense pieces.
Kotlin + Jetpack Compose is my absolute favourite way to build apps.
Jetpack Compose feels underrated around here. It basically has most of the upsides of React, but with far fewer downsides. If it weren't for the fact that it's basically Android-only[0], I would probably stick to Kotlin for all my side projects.
[0] I know there's Compose Multiplatform, but I don't trust cross-platform compilation to be reliable.
Can't imagine who would downvote this comment as I'm definitely not claiming that _you_ need to like Kotlin, or that _your_ language is bad. I just like Kotlin. Sorry! :)
I'm also curious if it is just me. I am a grey hair now, with many other responsibilities. Why were C, Python and Go so easy for me when kotlin seems so hard to penetrate (for me)? Is there a way to quantify language complexity?