I am a very experienced programmer and, I have been with Kotlin for a few months and I love it. However some stuff are annoying. I know that it’s a very personnal list but here is my top five.
a) Destructuring multiple function return demands var
or val
keywords.
It’s very artificial for me. Sometimes it forces me to copy that variable to another variable if inside curly brackets or I need to create artificial classes with no cohesion.
b) Most custom inline symbol operators used defined demands “” or there is no priority setting. I’m doing scientific programming, so it’s natural I define ^
power operations, it’s best than pow
, but yet annoying. I need use parenthesis everywhere.
c) Android Studio is guilty of this, but Step Into
enters in classes and objects non-configurably, as in Java. So I need to go to called function by hand and after select Run to Cursor
, otherwise it is an eternal pain
d) Kotlin type check is great, but some decisions of Kotlin
designers are exaggerated. 1/2 returns 0. it’s not intuitive at all. Division (/) it’s a rare operatior where people wait for Double or Float and not Integer or Long. Some languages uses another operator for integer division.
e) You cannot skip parameters when one calls a function, using 2 commas in a row, that the skipped parameter hast a default value defined. There is no logic for that language design decision, in my opinion, because default value is there exactly for this.