Это не то, о чем вы могли догадаться, и даже если оглянуться назад, это не кажется очевидным. Последняя версия Android Studio 3.0, которая сейчас находится на канале Canary, поддерживает Kotlin, язык JVM, изобретенный JetBrains в 2011 году. Что это означает для Android?
С самого начала нужно сказать несколько важных вещей. Во-первых, Kotlin — это язык JVM, который очень легко сочетается с Java. Во-вторых, есть инструмент, который автоматически конвертирует ваше Java-приложение в Kotlin. Попробовав это, преобразование, похоже, работает довольно хорошо. Причина, конечно, в том, что Kotlin — это в основном Java с большим количеством синтаксического сахара.
На этом этапе вам нужно понять, что, хотя сахар — не обязательно хорошая вещь, синтаксический сахар — обычно. Все, что делает код более кратким, но не затрудняет его понимание, — это хорошо, и Kotlin действительно преуспевает в этом.
Суть в том, что вы можете преобразовать все свои программы в Kotlin без особых усилий.
Вы также можете просто скрыть определенные классы или модули Java, чтобы вводить Kotlin медленно и легко. Он почти идеально взаимодействует с Java. Вы можете просто вызвать код Kotln без каких-либо проблем, и большую часть времени вы можете вызывать код Java без каких-либо изменений. Какие изменения необходимы, так это небольшие изменения в коде Kotlin, чтобы сообщить ему, как обрабатывать Java. Это означает, что вы можете вызывать весь код библиотеки JDK и Android и продолжать писать программы, как раньше.
Попробовать легко. Все, что вам нужно сделать, это загрузить и установить Android Studio 3.0 вместе с существующей производственной версией. Затем вы можете загрузить существующий проект и выбрать «Преобразовать файл Java в Kotlin», и он просто сделает это. Есть еще некоторые неровности, и я обнаружил, что мне пришлось перезапустить первоначальную установку и компилировать после очистки кеша, но это более или менее просто сработало.
Новые файлы Kotlin хранятся в той же папке проекта, что и файлы Java с расширением kt. Вы могли легко упустить тот факт, что вы работали с файлом Kotlin, а не с файлом Java. Например, преобразованная функция onCreate в Kotlin выглядит так:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar = findViewById(R.id.toolbar) as Toolbar
setSupportActionBar(toolbar)
val fab = findViewById(R.id.fab) as FloatingActionButton
fab.setOnClickListener { view ->
Snackbar.make(view, "Replace with your own action",
Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
}
}
Синтаксис немного странный, но он полностью понятен любой Java-программе, знакомой с Java-версией функции. Конечно, в этом случае лямбда — это не просто соглашение редактора, это то, как вы пишете функцию. Использование «as type» также является прямым плюсом по сравнению с литьем, но есть и другие преимущества. В частности, необходимость явного объявления переменных, которые могут содержать значение null, вполне может сделать приложения более надежными за счет устранения, по крайней мере, в коде Kotlin нулевых указателей.
Другой полезный, но более опасный вариант — это возможность добавлять методы — методы расширения — к существующим классам без необходимости создания нового типа. Это функция, которая широко использовалась в C# для реализации преимуществ новых возможностей, особенно Linq. Это заставляет задуматься, могут ли подобные новые функции попасть в основное программирование Android из-за Kotlin.
Проще говоря, Kotlin похож на Java, но со всем повторяющимся стандартным кодом, сведенным до разумного минимума. Возможно, это то, во что превратится Java, если вы подождете достаточно долго.
До того, как команда Android выбрала Kotlin как часть Android, это было хобби меньшинства. Больше глупости JetBrain, чем языка, у которого были большие шансы захватить мир. Теперь в одном действии он превратился во что-то, что могло бы стать таким же важным, как Java. Наверное, сейчас сотрудники JetBrain чувствуют себя хорошо. Вам, вероятно, не нужно напоминать, что Android Studio основана на IntelliJ IDE JetBrain.
Станут ли отношения между Google и JetBrains более глубокими?
Также интересно поразмышлять о том, как это может повлиять на судебный процесс Google с Oracle. Если по какой-то причине Google было приказано прекратить использование Java, теперь у него есть спасательная шлюпка в виде Kotlin.
Умный ход со всех сторон, если вы спросите меня.