Журнал "Научное Образование" в eLIBRARY.RU

  • na-obr@mail.ru
  • Статьи в следующий номер журнала принимаются по 30.04.2024г.

   Регистрационный номер СМИ: ЭЛ № ФС 77 - 74050 от 19.10.2018г. Смотреть

   Свидетельство регистрации периодического издания: ISSN 2658-3429 Смотреть

   Договор с ООО "НЭБ" (eLIBRARY.RU): № 460-11/2018 от 21.11.2018г.

 
kn2
 
 
kn3
 
 
kn4
 

Сравнительное исследование: программирование Java и Kotlin в разработке приложений для Android

Дата публикации: 2022-03-23 00:04:52
Статью разместил(а):
Струльков Владислав Иванович

Сравнительное исследование: программирование Java и Kotlin в разработке приложений для Android 

A comparative study: Java vs Kotlin programming in Android application development

 

Авторы:

Струльков Владислав Иванович

ФГБВОУ ВО «Военно-медицинская академия имени С.М. Кирова» Министерства обороны РФ, Санкт-Петербург, Россия

e-mail: strulkov.vladislav@mail.ru

Strulkov Vladislav Ivanovich

Military Medical Academy named after S. M. Kirov of the Ministry of Defense of the Russian Federation, Saint-Petersburg, Russia

e-mail: strulkov.vladislav@mail.ru

Саянский Николай Андреевич

ФГБВОУ ВО «Военно-медицинская академия имени С.М. Кирова» Министерства обороны РФ, Санкт-Петербург, Россия

e-mail: sarody@yandex.ru

Sayanskiy Nikolai Andreevich

Military Medical Academy named after S. M. Kirov of the Ministry of Defense of the Russian Federation, Saint-Petersburg, Russia

e-mail: sarody@yandex.ru

Драгун Максим Юрьевич

ФГБВОУ ВО «Военно-медицинская академия имени С.М. Кирова» Министерства обороны РФ, Санкт-Петербург, Россия

e-mail:mak.dragun2012@yandex.ru 

Dragun Maxim Yurievich

Military Medical Academy named after S. M. Kirov of the Ministry of Defense of the Russian Federation, Saint-Petersburg, Russia

e-mail:mak.dragun2012@yandex.ru

 

Аннотация: Цель этой статьи — сравнить языки Java и Kotlin в приложении для Android. Мы взяли разные области и сравнили их с Java и Android. В этой статье делается попытка изучить различные особенности как Java, так и Kotlin, и в конце делается вывод о том, какой язык программирования подходит разработчикам.

Abstract: The purpose of this paper is to compare Java and Kotlin in android application. We have taken different fields and compared it with Java and Android. This paper attempts to study the various features of both Java and Kotlinand in the end concludes which programming language fits the developers.

Ключевые слова: Андроид, Котлин, проверяемое исключение, ленивая загрузка, расширенные функции.

Keywords: Android, Kotlin, checked exception, lazy upload, extended functions.

Тематическая рубрика: IT-технологии и цифровые процессы.

 

ВВЕДЕНИЕ.

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

Цель этой статьи — сравнить и сделать вывод между Java и Kotlin в приложении для Android. Мы взяли разные области и сравнили их. В этой статье делается попытка изучить различные функции как Java, так и Kotlin, и в конце делается вывод о том, какой язык программирования подходит разработчикам.

МЕТОДОЛОГИЯ ИССЛЕДОВАНИЯ

Это исследование является пояснительным исследованием, которое приводит к пониманию роли Java в разработке Android и фокусируется на Kotlin как замене Java в приложениях для Android. Это качественное исследование, и вторичные данные были собраны из различных источников, опубликованных в электронных СМИ.

СРАВНИТЕЛЬНОЕ ИССЛЕДОВАНИЕ KOTLIN И JAVA 

A. Функции расширения (Extension Function):

Если требуется добавить какие-либо дополнительные функции в класс, в большинстве языков программирования создается новый класс. Функция расширения — это функция-член класса, которая определена вне класса.

Например, нам нужна функция класса String, которая должна возвращать новую строку с удаленными первым и последним символом; этот метод недоступен в классе String. Функция расширения, объявленная вне класса, создает функциональность указанного класса, расширяющую предопределенные функциональные возможности.

Kotlin предоставляет возможность расширять класс новыми функциями без необходимости наследовать от класса или использовать какой-либо шаблон проектирования, такой как «Decorator». Это делается с помощью специальных объявлений, называемых расширениями. Kotlin поддерживает функции расширения и свойства расширения.

Эта функция расширения отсутствует в Java. Для использования функций расширения обычно используются платформы Android. Но фреймворк Android иногда все усложняет, поэтому Java предоставляет только одно решение — создавать обёртки.

B. Проверяемые исключения (checked exception):

Java использует блок «try...catch» для обработки исключений во время выполнения. Он в основном использует проверяемые исключения (тип исключения, которое должно быть либо перехвачено, либо объявлено в методе, в котором оно создается).

В Java, если некоторый код в методе выдает проверяемое исключение, то метод должен либо обработать исключение, либо указать исключение с помощью ключевого слова «throws». У Kotlin нет проверяемых исключений. Все классы исключений в Kotlin являются потомками класса «Throwable». Каждое исключение имеет сообщение, трассировку стека и необязательную причину. В Kotlin также можно использовать выражение throw для обработки исключения.

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

С. Конструкторы (Constructors):

Kotlin может иметь первичный конструктор, а также вторичный конструктор. Ключевое слово «Constructor» используется для объявления вторичного конструктора. Он всегда должен ссылаться на первичный конструктор. Эта функция вторичного конструктора отсутствует в Java. Главная польза вторичного конструктора заключается в том, что он уменьшает количество строк кода.

D. Нулевая безопасность (Null safety).

Одна из наиболее распространенных ошибок во многих языках программирования, включая Java, заключается в том, что доступ к члену нулевой ссылки приведет к исключению нулевой ссылки. В Java это эквивалентно «NullPointerException» или сокращенно «NPE».

Kotlin использует функцию «Null Safety» для обработки ситуации с указателем NULL. Если это явно не требуется, Kotlin не генерирует исключение NullPointerException.

При написании кода на Kotlin исключение Null Pointer не нарушает поток кода, в отличие от Java, который вывод NULL.

E. Ленивая загрузка (lazy loading).

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

ЗАКЛЮЧЕНИЕ.

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

Во-вторых, существует огромное сообщество Java-программистов, а это значит, что мы находим ответы на критические вопросы программирования, когда застреваем. Когда мы ищем проблемы с Java, мы обязательно получаем ответы; этого нельзя сказать о Kotlin, который все еще является новым языком программирования.

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

С точки зрения разработчиков Kotlin предпочтительнее по следующим причинам:

1. Язык и среда созрели. Релиз Kotlin прошел много этапов перед выпуском финальной версии 1.0, в отличие от других языков программирования. Это может означать, что все вероятные проблемы, обычно возникающие в других языках программирования, уже были решены во время развития до финальной стадии.

2. Это значительно упрощает разработку Android. Kotlin упрощает программирование и делает приложения для Android лучше. Котлин — современный язык программирования, он открывает окно для большого количества возможностей для разработчиков приложений для Android, т.е. делает разработчиков более продуктивными.

3. Kotlin помогает уменьшить количество ошибок и багов в коде достаточно легко и быстро. Чтобы избежать ошибок во время выполнения и снизить затраты и усилия, необходимые для исправления ошибок, компилятор Kotlin выполняет множество проверок.

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

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

Kotlin желателен, так как повышает производительность. Класс, который занимает 50 строк кода на Java, может быть написан всего несколькими строками на Kotlin. Шаблонного кода можно избежать, например: нам не нужно указывать методы «setters()», «equals()», «hashCode()» или «toString()». Все это может быть сгенерировано Kotlin. Количество строк кода в Kotlin намного меньше, чем количество строк кода в Java для достижения того же результата.

 

ЛИТЕРАТУРА:

1. Tomasz Nurkiewicz,‎ Ben Christensen. «Reactive Programming with RxJava: Creating Asynchronous, Event-Based Applications», 2016; 372 с.;

2. Anders Goransson. «Efficient Android Threading: Asynchronous Processing Techniques for Android Applications», 2014, 280 с.;

3. Джош Скин, Дэвид Гринхол. «Kotlin. Программирование для профессионалов», 2019, 345 с.

4. Дмитрий Жемеров, Светлана Исакова. «Kotlin в действии», 2017, 253 с.

5. Marcin Moskala. «Effective Kotlin: Best practices», 2021, 321 с.

 

. . . . . . .