Котлин против Java – Розеттский камень разработчика


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

Что касается того, почему вы хотели бы познакомиться с Котлином, есть несколько причин. Во-первых, в отличие от Java, он современный и как таковой не несет бремени прошлого, пытаясь любой ценой оставаться совместимым с ним.

Тем не менее, Java по-прежнему сильна, как мы видели в разделе “Как поживает Java?-Состояние Java в 2019 году”, несмотря на то, что его объявили “старой лошадью” коллектива языков программирования:

Java всегда была фаворитом – предприятия говорили и до сих пор говорят на Java. Не смотрите дальше списка Fortune 500 компаний, полагающихся на него. Да, Голубым фишкам это нравится.

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

Конечно, давайте не будем забывать о тех, кто имеет дело с Android, платформой, которая возглавляет принятие Kotlin. Это что-то довольно очевидное, когда ведущие преподаватели, такие как Udacity, переходят от Java к Kotlin в своей учебной программе разработки Android. Мы в значительной степени задокументировали способ работы Java на Android в нашем подробном руководстве для разработчиков Android из 7 частей для разработчиков Udacity Android Nanodegree, но, хотя эти учетные данные все еще доступны, их зависимость от Java была тихо, но по существу, заменена. См. Мой обзор разработки приложений Udacity для Android с помощью Kotlin, в котором я заявил:

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

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

Это похоже на то, что новая технология полностью вытеснила свою предшественницу, со степенью оттока и скоростью изменений, которые мы неоднократно комментировали с новыми выпусками Android studio.  Говоря это, это правда, что Нанодепрессант сделал обновление в комнате, но ИМХО этого недостаточно.

Однако, отражая наш недавний отчет, Как обстоят дела с Java?-Состояние Java в 2019 году, принятие Котлина, похоже, очень вялое:

Во-первых, что несколько удивительно и интересно, так это то, что 62,6% разработчиков используют только Java, как и в прошлом году (62,8%). Я определенно ожидал, что это число снизится, учитывая сильное принятие Котлина, но, похоже, пока этого не произошло.Тем не менее, Kotlin все еще вырос с 13% в прошлом году до 16,5% сегодня.

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

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

Kotlin vs Java размещает параллельное сравнение, разделенное на несколько категорий, таких как Основы, Классы, Коллекции, Параллелизм , Функции и т. Д., Обеспечивая обзор спектров обоих языков с высоты птичьего полета.  

Например, в разделе Основы мы наблюдаем, как переменные объявляются на обоих языках:

Javavar x; // ошибка времени компиляции var xx; // ошибка времени компиляции var y = 1;

Kotlinval x: Int // ошибка времени компиляции y // ошибка времени компиляции z = 2

или как установить для них значение null :

Имя строки Javafinal = null;

Строка Фамилия;Фамилия = null;

Имя Котлинваля: Строка? = null

var Фамилия: Строка?Фамилия = null

var FirstName: StringfirstName = null // Ошибка компиляции!!

Классы и конструкторы :

Файл Javafinal var = новый файл(“file.txt”);

Файл Kotlinval = Файл(“file.txt”)

Объявление классов :

Пользователь конечного класса Javapublic {}

Пользователь Kotlinclass

Сборники:

Javafinal var map = Map.of( 1, “Один”, 2, “Два”, 3, “Три”);

Kotlinval numbers = listOf(1, 2, 3)

val map = mapOf(от 1 до “Одного”, от 2 до “Двух”, от 3 до “трех”) и так далее.

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

Javapublic CompletableFuture doBothAsync(){    DoSomethingAsync()        .thenAcceptBoth(doSomethingElseAsync()) ( (один, два) -> { // объединить результаты обоих вызовов здесь        )}}

public CompletableFuture dosequentialyasync() { DoSomethingAsync().thenCompose( something -> { doSomethingElseAsync(что-то)    })}

Kotlinsuspend fun doSequentially() { val something = doSomething() doSomethingElse(что-то)}

приостановить fun doBoth() = сопрограмма {    val deferredOne = асинхронный { doSomething() } val two = doSomethingElse() // пока doSomething работает val one = deferredOne.ожидание()    // объединить результаты обоих вызовов здесь}

Не говоря уже о том, что сопрограммы-это гораздо большая конструкция, чем CompletableFutures.

Быть лаконичным-это одно,а включать современную функциональность-совсем другое,как показали сопрограммы.Другими такими примерами в этой категории могут быть:

Функции расширения

Нулевая Безопасность

Ленивая Загрузка

Перегрузка оператора

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

Этот сайт основан на cheatsheet от Java до Kotlin , но был расширен гораздо большим количеством материалов.

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

Наконец, на этом пути к мудрости Kotlin я бы также рекомендовал связать cheatsheet с рефакторингом Codelab разработчиков Google в Kotlin, где вы узнаете, как преобразовать Java в Kotlin, используя идиомы Kotlin. О,я почти забыл о “Udacity Kotlin BootCamp для программистов” и копии Руководства программиста по Kotlin, части библиотеки I Programmer либо в печатном виде, либо в виде печатной копии Kindle Edition.

Надеюсь, я убедил вас хотя бы взглянуть на путь Котлина. Если это так, то просто начните погружаться в эти руководства!


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