Нужно ли изучать Kotlin?

By 18.01.2021 21 января, 2021 Без рубрики
Пройдемся подробнее по пунктам, чтобы понять, нужен ли язык Kotlin и как его изучать.

Откуда название

Язык Kotlin создан в компании JetBrains (большую роль сыграли российские разработчики)
Считается языком следующего поколения после Java.
Назван в честь острова Котлин в Финском заливе, недалеко от г. Санкт-Петербург. Сам Java тоже назван в честь острова в Индонезии.

Для чего создавался

Язык Kotlin разрабатывался еще в 2010-х годах.
Изначально цель была — создать на основе Java новый язык, который не только улучшит его, но и добавит новые возможности из других языков.
Как говорит общественность — это вполне получилось, отсюда и такая популярность у языка.
Например, Google советует новые проекты сразу начинать на Kotlin. Они по сути сделали на него уже полную ставку.
Потихоньку Spring тоже двигается в эту сторону (но также полностью поддерживает Java)
Можно почитать подробные истории создания:

Сокращение кода

Kotlin — это усовершенствованная Java, который требует меньше кода.
Код становится примерно на 40-50% короче (а то и больше).
Кстати, многие паттерны уже встроены в язык и для их создания не нужно писать полный код, а можно просто использовать служебные слова.
Примеры можно посмотреть здесь https://github.com/dbacinski/Design-Patterns-In-Kotlin
У Kotlin хорошая поддержка в IntelliJ IDEA, т.к. там одни и те же создатели.

Совместимость

Kotlin и Java cовместимы между собой (оба в итоге компилируются в байт-код для JVM), поэтому Kotlin код можно встраивать в проект постепенно, класс за классом (это большой плюс).
В одном проекте могут находиться как классы Kotlin, так и Java, которые могут вызывать друг друга.
Поэтому в Kotlin можно использовать все существующие миллионы готовых Java библиотек.
Если у вас есть большой проект — попробуйте начать изменять небольшие классы и переписывать их на Kotlin — так вы начнете получать опыт и не сломаете проект.

Универсальность

Проекты на Kotlin можно разрабатывать под разные платформы.
Если на Java вы пишете код только для определенного круга приложений (веб, android), то на Kotlin сможете создавать универсальные приложения.
Например, фреймворк Flutter от Google позволяет создавать базовый код на Kotlin и запускать его в iOS, Android (внешний вид UI пишется на Dart — похож на JS).
Активно идет разработка Kotlin Native (понятие «native» означает, что код запускается без «посредника» в лице виртуальной машины (например, JVM), т.е. сразу напрямую в операционной системе).
Список платформ (по сути все современные ОС), для которых можно писать код на Kotlin:
  • iOS (arm32, arm64, simulator x86_64)
  • macOS (x86_64)
  • watchOS (arm32, arm64, x86)
  • tvOS (arm64, x86_64)
  • Android (arm32, arm64, x86, x86_64)
  • Windows (mingw x86_64, x86)
  • Linux (x86_64, arm32, arm64, MIPS, MIPS little endian)
  • WebAssembly (wasm32)
Получается сможете написать один раз код и использовать в любых ОС.
Цель — сделать Kotlin максимально универсальным, чтобы можно было легко создавать любые типы приложений.

Java умирает?

Java не умирает, он все еще сильный.
Его тоже нужно знать и он будет использоваться еще очень долго.
К тому же вам трудно будет сразу изучить Kotlin с нуля.
Поэтому сначала советую изучить основы Java — потом переходить к Kotlin
Чтобы все массово перешли на Kotlin — нужно больше времени, это не произойдет мгновенно. Поэтому начинайте изучение уже сейчас, так вы выиграете время и опыт.

Kotlin или Swift?

Swift — язык разработки от Apple, которые изначально пришел на смену Objective-C для создания мобильных приложений iOS.
Но со временем тоже хочет стать таким же универсальным и популярным, как Kotlin.
Многие сравнивают Kotlin и Swift как два конкурента на будущее.
На мой взгляд, сейчас выигрывает Kotlin. У Kotlin проще синтаксис, чем у Swift, и он развивается быстрее.
Swift даже для опытных разработчиков может показаться сложным языком.
Время покажет, но в любом случае, если будете знать Kotlin, то легко сможете перейти на Swift, т.к. у них сильно похож синтаксис.

Как лучше изучать

Если не знаете Java, то лучше сначала изучить его основы и только потом переходить к Kotlin, так будет проще. Потому что вы не будете отвлекаться на ООП и другие вещи, а будете учить только синтаксис. Подробнее расписывал в схеме.
Затем можно начинать внедрять классы Kotlin в уже готовых проектах, благодаря обратной совместимости.
Не лишним будет порешать небольшие задачи с нуля.
Если вы мобильный разработчик — попробуйте фреймворк Flutter — сможете создавать любые типы приложений: iOS, Android.

Как изучал я 

Недавно понял, что в свое время я не совсем правильно изучал Kotlin, поэтому ушло больше времени, чем рассчитывал.
Я сразу пытался создавать проекты на Kotlin с нуля, хотя есть вариант проще: брать готовые старые проекты на Java (желательно простые) и постепенно заменять классы на Kotlin. Тем самым не ломается функционал и вы последовательно практикуетесь.
Если пробовать сразу начинать решать задачи на Kotlin — может возникнуть больше проблем, хотя этот вариант тоже вполне рабочий, просто это сложнее.
Кстати, не пытайтесь сразу создать крупный проект типа Spring на Kotlin, если у вас нет опыта. Вы просто можете «застрять» в общей архитектуре.
Сначала изучайте только синтаксис (на задачах типа JavaSE), ни на что не отвлекаясь. Потом уже можно начинать создавать крупные проекты.
И не забудьте пройти начальные уроки на офиц. сайте (многие почему-то это не делают), там все подробно расписано:

Author Тимур Батыршинов

Основатель обучающего центра «JavaBegin». Главный тренер. Обучил более 46000 человек (онлайн и оффлайн), провел более 900 онлайн-вебинаров. Опыт разработки на Java и других языках — более 15 лет. Автор более 50 курсов по разным направлениям Java: основы, веб, Android, Spring, iOS, Angular, React и многие другие. Все курсы автора

More posts by Тимур Батыршинов

Leave a Reply