Kotlin для Java-розробника: варто чи ні?
Привіт! Мене звати Володимир і зараз я Java/Kotlin розробник у компанії Daxx. До цього я більше 7 років працював як Java BackEnd Developer.
Коли одного разу я почав розглядати для себе нові можливості, мені приглянулась одна цікава позиція — Kotlin BackEnd Developer. Я захотів зрозуміти, які переваги для мене як Java розробника в переході на Kotlin і чи це варто мого часу. Отож, я провів дослідження і хочу поділитися його результатами з вами.
Що таке Kotlin
Kotlin — це ще одна мова JVM. Java з самого початку гучно заявила про себе: Write Once, Run Anywhere (WORA). Сьогодні на Java написано багато всього: від алгоритму у мікрохвильовці до програм у високонавантажених серверах в хмарі. Це стало можливим завдяки уніфікованій віртуальній машині (вона ж JVM). Пізніше з’явилися інші мови JVM, зокрема Kotlin. Деякі з них стали доволі популярними, інші — ні. Але всі вони можуть працювати на JVM, а тому мають ті ж переваги, що і Java, і отримають всі покращення разом із подальшим удосконаленням JVM.
* рік першого релізу
Як я вперше дізнався про Kotlin
Ви раніше щось чули про DTO (Data Transfer Objects)? Саме так я дізнався, що є мова програмування, в якій цей патерн вже реалізовано на рівні синтаксису. Це був Kotlin. Але весь проект був написаний тільки на Java, тому я почав використовувати Lombok. Це виглядало таким чином:
* DTO з Java до версії 14 та Lombok
* DTO з Kotlin
Цікавий факт, що з того часу Java теж додала спеціальний синтаксис для цього і тепер це можна зробити так:
* DTO з Java починаючи з версії 14 та опцією «preview language feature»
Чому Kotlin так легко інтегрувати з Java
Java і Kotlin можуть бути взаємозамінними. Це означає, що деякі частини коду ви можете писати на Java, а деякі — на Kotlin навіть у межах одного проекту (хоча це може бути не найкраща ідея). Ось приклад, як можна визвати Kotlin з Java і навпаки:
* виклик Kotlin data class з Java
* виклик Java DTO з Kotlin
Помітили, що той самий функціонал займає менше коду з Kotlin? Не критично, але у Kotlin точно менше «boilerplate code», порівнюючи з Java.
Також Kotlin може легко використовувати всі Java бібліотеки та фреймворки, такі як Spring чи Apache Camel. Хоча для Kotlin вже існує багато нативних аналогів, таких як Ktor. Доречі деякі інші мови JVM також можуть працювати з бібліотеками Java, але з Kotlin ця інтеграція вигладає найпростішою.
Kotlin vs Python
Щоб побачити інші переваги / недоліки Kotlin, я захотів порівняти його зовсім з іншою не JVM мовою програмування. Існує індекс мов програмування від StackOverflow, що показує, які мови найбільше полюбляють розробники.
На той час Kotlin i Python стояли поруч (можливо, так є й і до сьогодні), тож очевидно, що я захотів порівняти саме їх. Я побудував невелику блок-схему, щоб візуалізувати основні як на мене відмінності між ними:
Висновок
Існує ще дуже багато відмінностей, про які я не розповів в цій статті, але те, що для мене, як Java-розробника, Kotlin підійшов ідеально, думаю, вже стало зрозуміло. Це зовсім не означає, що Java програла в цьому поєдинку. Це більше означає те, що Kotlin — це прекрасний напрямок для розвитку Java розробника. І взагалі для мене Kotlin відчувається як нова, ще не релізнута версія Java 20
На щастя, компанія, в яку я проходив співбесіду, була готова взяти людину зі знаннями Java і бажанням перейти на Kotlin. Перехід, до речі, виявився дуже простим.
Також хочу розвіяти міф, що розробник Kotlin == розробник Android. Так, багато розробників Kotlin працюють зараз на Android проектах і не дивно, адже це рекомендована мова від Google для написання додатків Android, але вже з’являються проекти, де Kotlin — це мова для BackEnd-у, і мій проект — тому доказ.
Що далі
Якщо ти Java-розробник, якого зацікавив Kotlin, але не знаєш з чого почати, рекомендую почати з UnitTesting on Kotlin. Ось стаття, яка мені допомогла в цьому.
Ну, а якщо тобі сподобалося або думаєш, що це цікава тема — підтримай мене і залишай комент. Це важливо для того, щоб цю статтю побачили інші, ну а я буду вдячний за будь-який твій відгук!
Найкращі коментарі пропустити