Что такое Kotlin и зачем он нужен
Знакомимся с языком Kotlin: откуда он взялся и какие задачи решает.
Kotlin — статически типизированный язык программирования от компании JetBrains, который компилируется в байт-код JVM и полностью совместим с Java.
Kotlin появился в 2011 году и вышел в стабильной версии 1.0 в 2016-м. Его придумали в JetBrains — компании, делающей среды разработки (IntelliJ IDEA). Им нужен был язык лаконичнее Java, но без потери совместимости с огромным миром Java-библиотек. Так и родился Kotlin.
Чем Kotlin отличается от Java
Главные принципы языка — лаконичность, безопасность и совместимость. Сравните одну и ту же мысль на Java и Kotlin: класс-хранилище данных на Java требует десятки строк (поля, конструктор, геттеры, equals, hashCode), а на Kotlin это одна строка.
// Полноценный класс данных в одну строку
data class User(val name: String, val age: Int)
fun main() {
val u = User("Аня", 25)
println(u)
}Вывод:
User(name=Аня, age=25)
Где применяют Kotlin
Kotlin универсален. Его используют для:
- серверных приложений (Spring Boot, Ktor);
- мобильной разработки под Android (официальный язык с 2017);
- кроссплатформенного кода (Kotlin Multiplatform);
- скриптов и небольших утилит.
В этом курсе мы изучаем сам язык: его синтаксис и идиомы. Android — отдельная большая тема со своим курсом.
Как выглядит точка входа
Программа на Kotlin начинается с функции main. Никаких обязательных классов вокруг неё, как в Java, не нужно.
fun main() {
println("Привет, Kotlin!")
}Вывод:
Привет, Kotlin!
Как работает под капотом
Когда вы пишете код на Kotlin, компилятор kotlinc превращает его в байт-код JVM — тот же формат .class, что и у Java. Этот байт-код исполняет виртуальная машина Java (JVM). Поэтому Kotlin может вызывать любой Java-код, а Java — Kotlin-код: для JVM они неразличимы. Многие удобства Kotlin (data class, null-safety) существуют только на уровне компилятора: он сам генерирует за вас рутинный байт-код, которого вы не видите.
Частые ошибки
- Думать, что Kotlin — это «про Android». Android лишь одно из применений; язык самодостаточен и работает где угодно на JVM.
- Искать
public static void main. В Kotlin точка входа — простоfun main()без класса-обёртки. - Ставить точки с запятой в конце строк. В Kotlin они не нужны.
Итог
- Kotlin — статически типизированный язык на JVM от JetBrains.
- Его ценят за лаконичность, безопасность и полную совместимость с Java.
- Код компилируется в байт-код JVM и исполняется виртуальной машиной Java.
- Точка входа — функция
main.