Главное достоинство Kotlin — его прагматичная совместимость. Код на Kotlin и Java может сосуществовать в одном проекте, вызывая друг друга практически без ограничений. Это не просто техническая деталь — это стратегическое решение, позволившее компаниям постепенно мигрировать с Java без необходимости "большого взрыва".
Null safety — возможно, самое элегантное решение проблемы "миллиард долларов". Система типов Kotlin делает null-ы явными, перенося проверки на этап компиляции. Больше никаких NullPointerException в рантайме — только если вы явно не попросите об этом восклицательным знаком. Это пример того, как правильные абстракции могут устранить целый класс ошибок.
Но настоящая магия Kotlin — в его расширениях (extensions). Возможность "добавлять" методы к существующим классам без наследования меняет способ мышления. Вместо утилитарных классов в духе Java — элегантные цепочки вызовов, которые читаются как предложения: file.readText().toJson().validate().