Программирование Android Kotlin: что это такое? Thu, June 20 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Kotlin: что это такое? Печать
Добавил(а) microsin   

Котлин (Kotlin) - статически типизированный объектно-ориентированный язык программирования, взаимодействующий с виртуальной машиной Java (JVM), библиотеками классов Java (Java Class Libraries) и Android.

"Cтатически типизированный" это характеристика языка программирования, которая означает следующее: типы переменных декларируются явно, и таким образом они четко определены в момент компиляции (compile time). Это позволяет компериятору определить, может ли конкретная переменная выполнять запрошенные для неё действия, или нет.

Статическая типизация связана с типами переменных, но не с их значениями. Вот список (возможно неполный) языков, обладающих свойством статической типизации:

Haskell
FORTRAN
Java
C
C#
C++
Ada
Jade
Pascal
ML
Perl
Scala

В статической типизации нет необходимости выполнять дополнительные проверки во время работы кода (run time), чтобы убедиться, что объект (переменная) может выполнить (или над ним можно выполнить) некоторые действия. Все подобные проверки переложены на компилятор, освобождая процессорное время целевой платформы, что значительно повышает производительность языков со статической типизацией.

Кроме того автоматический анализ кода и рефакторинг наиболее эффективен для статически типизированных языков, потому что инструментарий может интерпретировать переменные так, как они были закодированы в программе. Это помогает немедленно понять параметры функции, а также методы, доступные для определенного объекта. Это также делает процесс рефакторинга более простым.

За некоторыми исключениями, после рефакторинга метода или объекта легко сразу понять, какие части кода от него зависят. Однако за все надо платить. Иногда статически типизированные языки требуют дополнительных аннотаций в конструкциях, чтобы явно оповещать компилятор о намерениях автора кода.

В контексте структуры объектов статически типизированные языки программирования менее гибки по сравнению с их динамическими аналогами. Невозможно добавить поля и методы к определенному объекту во время выполнения программы. Это может добавлять сложности в обработке неполно структурированных данных. Например, парсинг JSON, XML или запросов к базе данных приводит к менее удобным сопоставлениям объектов.

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

· Разработка на стороне сервера. Разработка web-приложений, работающих на сервере (back-end web app) традиционно использует Java. Kotlin может использоваться наряду с Java для разработки приложений сервера. Kotlin поддерживает библиотеки классов Java (Java Class Libraries).

· Full-stack разработка для web. Разработчики используют Kotlin для JavaScript, чтобы транслировать строки кода Kotlin в JavaScript, чтобы разработать внешний интерфейс web-сайтов, с которым имеет дело конечный пользователь (front-end web development). Такой метод разработки позволяет использовать один и тот же код для front end (то, что на виду у пользователя) и back end (фоновые приложения на стороне сервера).

· Мультиплатформенная разработка для мобильных устройств. Разработчики используют Kotlin для Android и других мобильных платформ, включая Apple iOS, Apple watchOS и Linux.

· Научная обработка данных (Data Science). Kotlin часто используется для задач науки, таких как построение конвейеров обработки данных и интеграцию машинного обучения в производство. Популярные научные инструменты Jupyter и Zeppelin, в которых используется Java, также поддерживают Kotlin.

Организации, которые создают приложения Android, используя Kotlin, также используют эти навыки для обслуживания своих облачных ресурсов.

[end_user-programming_languages.jpg]

Рис. 1. Kotlin является одним из нескольких языков для мобильной разработки.

[Достоинства Kotlin]

Совместимость. Kotlin легко взаимодействует с Java, потому что компилируется в такой же байт-код. Kotlin может быть скомпилирован в код JavaScript или LLVM encoder. Kotlin также использует общий с Java инструментарий. Есть возможность легкой миграции приложений Java на Kotlin.

Безопасность. Kotlin разработан так, чтобы избежать многих ошибок программирования, которые могут разрушить код или оставить в нем уязвимости. Kotlin включает null-безопасность и устраняет ошибки нулевых указателей (null pointer exception errors).

Ясность. Kotlin устраняет некоторую избыточность базового синтаксиса популярных языков наподобие Java. Kotlin экономит время разработчиков, потому что позволяет писать более лаконичный код, с меньшим количеством шаблонности.

Поддержка инструментария. Kotlin поддерживается инструментарием для Android, таким как Android Studio, Android KTX и Android SDK.

Комьюнити. Несмотря на то, что Kotlin относительно новый по сравнению с Java язык, у него уже сформировалось сообщество разработчиков, которое работает над улучшением языка и предоставляет документацию.

[Сравнение Kotlin и Java]

Оба языка Kotlin и Java являются объектно-ориентированными языками общего назначения, статически типизируемыми. Во многих случаях Kotlin может считаться заменой для Java. Несмотря на то, что синтаксис языка Kotlin несовместим с Java, он совместим с кодом и библиотеками Java. У Kotlin также есть свои собственные библиотеки, созданные через интерфейс программирования приложений для Android.

Некоторая избыточность синтаксиса Java приводит к более многословному и более объемному коду. Kotlin проще, что облегчает освоение новичками. Он сосредотачивается на урезанном, функциональном коде и избегает повторяющегося шаблонного кода. Двоеточия в конце каждой строки не нужны, хотя для Kotlin проблем, если разработчик использует точки с запятой традиционным образом. Дополнительные фичи снижают сложность и длину кода, что было целью команды разработчиков Kotlin.

Разработчик Android может выбрать Java вместо Kotlin, если он новичок в разработке ПО Android. Исторически большинство примеров и документации Android опубликовано для Java.

Kotlin против Java
   Разработала   Синтаксис   Длина кода  NULL-безопасность  Точка с запятой 
Kotlin JetBrains проще меньше встроена не требуется
Java Oracle сложнее больше не встроена, требует
дополнительного кода
требуется

Рис. 2. Несмотря на схожесть Kotlin и Java в разработке, у них есть ключевые отличия.

[Синтаксис Kotlin и примеры кода]

У Kotlin перед Java есть преимущество в менее избыточном синтаксисе. Например, на Java:

String s = new String();

На Kotlin упрощается:

val s = String()

Здесь val обозначает переменную, значение которой никогда не изменяется.

Повторов в инстанцировании переменных на Kotlin меньше, чем на Java. В примере выше фразу String повторять на Kotlin не требуется. Оператор new также не используется, Kotlin автоматически выводит тип данных. При переходе на новую строку двоеточие в конце предыдущей строки также ставить необязательно.

Вот еще несколько примеров кода Kotlin:

1. Здесь показывается, как использовать Kotlin для декларации функции и печати "Hi" в качестве вывода. Оператор fun создает функцию:

fun main() {
   println("Hi")
}

2. Следующий код показывает, как на Kotlin присваивать переменные, используя оператор val:

fun main() {
   val a: Int = 1   // начальное присваивание переменной
   val b = 2        // Kotlin выведет тип Int
   val c: Int       //
   c = 3            // отложенное (deferred) присваивание
   println("a = $a, b = $b, c = $c")
}

В примере выше Kotlin вычислил тип Int после первоначального присваивания переменной. Если инициализатор не предоставлен, то тип Int должен быть указан для оператора val, как это сделано для переменной c. Этот пример напечатает следующее:

a = 1, b = 2, c = 3

3. Следующий код роказывает переназначение переменной:

var x = 5           // вывод типа Int
x += 1

4. Следующий пример перечислит свойства класса, используя оператор class в его декларации, и вычисляет периметр квадрата square:

class Square(var height: Double, var length: Double)
{
   var p = (height + length) * 2
}
 
fun main() {
   val Square = Square(10.0, 10.0)
   println("Периметр равен ${Square.p}")
}

Этот код напечатает:

Периметр равен 40.0

Первая строка в коде выше начинается со слова class. Так обозначается так называемый класс данных, потому что его основное предназначение хранить данные на верхнем, и никакой другой цели нет. Как минимум одна из содержащихся точек данных должна быть параметром.

JetBrains, компания со штаб-квартирой в Чехии, разработала Kotlin в Санкт-Петербурге России, с помощью программистов, поддерживающих открытый исходный код. Первый официальный релиз языка произошел в 2016 году.

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

На конференции Google I/O 2017 компания Google анонсировала, что Kotlin станет первым официально поддерживаемым языком, добавленным в Android Studio. В тот же год вышел релиз Kotlin 1.2. В нем появилась новая фича, которая позволила перемещать код между платформами JavaScript и виртуальной машиной Java (JVM). В 2019 году Google объявила, что Kotlin будет предпочтительным языком для разработчиков Android.

Корпоративная среда IT, оснащенная устройствами Android, нуждается в сотрудниках со знанием Kotlin, чтобы реализовать унифицированное управление конечными точками. Ознакомьтесь с компиляцией инструментов управления устройствами [3], которые могут помочь управлять внедрениями решений Android.

[Ссылки]

1. Kotlin site:techtarget.com.
2. 5 reasons why Java is still the best programming language site:theserverside.com.
3. Understanding the features of Android enterprise device management site:techtarget.com.

 

Добавить комментарий


Защитный код
Обновить

Top of Page