ЯЗЫК ПРОГРАММИРОВАНИЯ KOTLIN Солонько М.К. Email: Solonko685@scientifictext.ru
Солонько Максим Константинович - студент, кафедра мультимедийных сетей и услуг связи, Московский технический университет связи и информатики, г. Москва
Аннотация: данная статья посвящена языку программирования Kotlin. Рассмотрена история его появления. Отмечено, что ни один язык программирования не является универсальным, поэтому постоянно появляются новые языки программирования. Описаны основные возможности и характерные особенности языка Kotlin, выявлены его важные плюсы и минусы. Проведено сравнение языка Kotlin с языком программирования Java. Рассмотрена их совместимость и возможность совместного использования при написании приложений. Отмечена предпочтительность выбора языка программирования Kotlin для разработки приложений под Android.
Ключевые слова: язык программирования, Kotlin, Java.
KOTLIN PROGRAMMING LANGUAGE Solonko M.K.
Solonko Maxim Konstantinovich - Student, DEPARTMENT OF MULTIMEDIA NETWORKS AND COMMUNICATION SERVICES, MOSCOW TECHNICAL UNIVERSITY OF COMMUNICATIONS AND INFORMATICS, MOSCOW
Abstract: this article is about the Kotlin programming language. The history of its appearance is considered. It is noted that no programming language is universal, therefore new programming languages constantly appear. The main features and characteristic features of the Kotlin language are described, its important pros and cons are revealed. The Kotlin language is compared with the Java programming language. Their compatibility and the possibility of sharing when writing applications are considered. The preference for choosing the Kotlin programming language for developing applications for Android is noted. Keywords: programming language, Kotlin, Java.
УДК 004.432
Язык программирования - это искусственный язык, который был создан для общения человека с компьютером. В частности, для того, чтобы сказать компьютеру, что и как, когда и в какой последовательности сделать. То есть для того, чтобы передать компьютеру инструкции на выполнение какой-то полезной работы. IT-индустрия за свое существование взяла на вооружение многие языки программирования, среди которых есть действительно мощные и многофункциональные. Они являются ее важнейшей частью. Но ни один синтаксис языка не является универсальным. Потому, появление новых языков явление довольное частое. В мире уже более двух тысяч разных языков программирования. Для старых языков постоянно выходят обновления.
Языки программирования Scala, Go, Closure и Kotlin появились совсем недавно. Большие надежды на будущее имеет язык программирования Kotlin. Разрабатывать его начала Петербургская компания JetBrains в 2010 году [1]. Выпускник Университета ИТМО Андрей Бреслав руководит командой по разработке языка. В Финском заливе есть остров, на котором расположен Кронштадт. Так вот язык Kotlin назвали в честь этого острова. Популярный язык программирования Java также назван по имени острова в Индонезии. Думаю, что это совпадение не случайно.
В 2016 году был выпущен официальный релиз продукта Kotlin. Под свободной лицензией Apache 2 распространяется исходный код. Компания Google на конференции для разработчиков I/O 2019 объявила, что язык программирования Kotlin теперь является предпочтительным языком для разработчиков приложений под Android. При этом новые API и библиотеки Jetpack будут публиковаться сначала на языке Kotlin.
Kotlin, как и языки Java, C++, является статически типизированным языком. Он поддерживает как объектно-ориентированное, так и процедурное программирование. Компилируется Kotlin для платформ Java и JavaScript.
Основной код программы, написанной на языке Kotlin, пишется в функции main. Этой функции передается массив аргументов командной строки. Это реализовано по аналогии с вышеупомянутыми языками.
Язык программирования Kotlin [2]:
• Имеет возможность компилироваться в байткод JVM или в JavaScript;
• Может использовать все существующие Java-фреймворки и библиотеки. Данный язык программирования можно интегрировать с Maven, Gradle и другими системами сборки;
• Для изучения язык очень прост. Имеет простой для восприятия синтаксис. Он также поддерживает все существующие в языке Java библиотеки.
• Возможна автоматическая конвертация Java-кода в Kotlin в интегрированной среде разработки программного обеспечения IntelliJ IDEA, и наоборот. Язык программирования Kotlin на 100% совместим с языком программирования Java.
• При полной совместимости с Java, Kotlin предоставляет дополнительные возможности, которые упрощают повседневную работу программиста и повышают его продуктивность.
Сравним языки программирования Java и Kotlin. Преимущества языка Kotlin:
Более краткий код. Сравним класс Java с аналогичным классом Kotlin. Для одинаковой операции, выполняемой в классе Java и в классе Kotlin, код класса Kotlin имеет меньший размер.
Создание сопрограмм. Существуют процессы, которые активно загружают сетевой ввод-вывод и процессор. В своей работе эти процессы используют длительные операции. Пока не завершится операция, блокируется вызывающий поток. По умолчанию Android является однопоточным. Поэтому, как только блокируется основной поток, также полностью блокируется пользовательский интерфейс приложения. В Java данная проблема решается с помощью создания фонового потока для выполнения длительной или интенсивной работы. Но при этом возникает необходимость управления несколькими потоками. В итоге это приводит к усложнению работы, а как следствие, возникают ошибки в коде. Дополнительные потоки можно создать и в Kotlin. Но существует более удобный способ работы с интенсивными операциями. Он называется сопрограммы. Так же этот способ имеет название корутины (coroutines). Корутины, по сравнению с обычными потоками, используют меньше памяти, так как не пользуются стеком. С помощью корутинов можно выполнять интенсивные задачи, на выполнение которых требуется длительное время. Корутины могут приостановить выполнение задачи, при этом не блокируя поток, а затем снова возобновить выполнение через определенный промежуток времени. Написанный код с использованием корутин понятен и лаконичен.
Null-безопасность. Важной доработкой в языке Kotlin является Null-безопасность. В языке Java разработчики могут присвоить значение Null любой переменной. При обращении к объекту, имеющим значение Null возникает исключение NullPointerException. В языке Kotlin все типы являются не-nullable по умолчанию. При попытке разработчиками в коде Kotlin вернуть или присвоить значение Null переменной, при компиляции программы произойдет сбой. Но есть вариант эту
ситуацию обойти. Для этого нужно переменную явно пометить как nullable. Для этого в коде программы необходимо после типа добавить знак вопроса. В результате можно сказать, что в языке Kotlin отсутствует исключение NullPointerException.
Функция умного приведения. В язык Kotlin введена функция умного приведения. В языке Java необходимо проверять тип объекта перед приведением. В Kotlin же нет необходимости внутри оператора выполнять приведение, если оператор уже прошел проверку оператором IS.
Классы данных. Для создания классов, предназначенных для хранения данных, разработчику Java нужно написать относительно большой код. Необходимо определить конструктор и поля для хранения данных, и для каждого поля определить необходимые функции. В языке Kotlin все просто. Разработчик включает в определение класса ключевое слово «data» и все остальное по созданию классов для хранения данных выполняет компилятор.
Функции расширения. В языке Kotlin разработчик с помощью функций расширения может расширить класс новыми функциями. Например, в языке С# функция расширения доступна, но в языке Java отсутствует.
Но разработчики программного обеспечения отмечают и один из минусов языка Kotlin в сравнении с языком Java В Kotlin отсутствует поддержка для данных неявных расширяющих преобразований. В результате в большие типы не могут быть преобразованы меньшие типы. При этом язык Java неявные преобразования поддерживает, а язык Kotlin поддерживает только явные преобразования.
Хочется отметить, что языки Java и Kotlin полностью совместимы. Они оба компилируются в байт-код. При этом можно вызвать код Kotlin из Java и наоборот. Данная гибкость имеет преимущества. Во-первых, можно постепенно добавлять код языка Kotlin в проекты, написанные на языке Java, что облегчает освоение языка. Во-вторых, в любых приложениях, написанных для операционной системы Android, можно использовать два языка одновременно.
Список литературы /References
1. За что Kotlin так полюбили в Google и кому нужны две тысячи языков программирования // itmo.news [Электронный ресурс]. Режим доступа: https://news.itmo.ru/ru/science/it/news/6683/ (дата обращения: 31.03.2020).
2. Что такое Kotlin и с чем его едят: обучающее руководство и сравнение нового языка Android-разработки с Java // tproger. [Электронный ресурс]. Режим доступа: https://tproger.ru/translations/kotlin-vs-java-android/ (дата обращения: 31.03.2020).