Kotlin более зрелый, в отличие от Swift 1.x / 2.x

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

«Kotlin в Android» - это как «Swift в iOS».

Но из моего личного опыта разработки под Android и iOS. Я думаю, что «Kotlin в Android» НАМНОГО ЛУЧШЕ и более зрелый, чем «Swift в iOS».

Если у вас есть опыт кодирования Swift в iOS с использованием Xcode, вы должны были испытать действительно очень плохие. И я хотел бы поделиться своим списком жалоб:

  • Слишком много критических изменений в стандартном API Swift (с Swift 1.0 на 3.0). Давайте подождем, чтобы увидеть критические изменения в Swift 4: стр.
  • Xcode * продолжает вылетать - бум! «Xcode неожиданно завершил работу».
  • Xcode * продолжает показывать «внутреннюю ошибку» - бум! Вся подсветка синтаксиса исчезла, и вы можете только дождаться самовосстановления Xcode, внеся некоторые изменения в строку.
  • В Xcode * НЕТ функций рефакторинга для Swift
  • Компилятор Swift слишком слаб, чтобы работать с «выводом типа» - приводит к долгому времени компиляции. Если выражение слишком сложное и не может найти правильный тип, компилятор попросит вас ввести его вручную. Серьезно, иногда компилятор сталкивается с «ошибкой сегментации» из-за вывода типа.
  • Проверка Xcode * Swift выполняется очень медленно - лучший подход - никогда не ждать, пока Xcode выдаст синтаксическую ошибку, после написания большого количества кода и сразу нажмите ⌘ + B, чтобы скомпилировать, и дождитесь, когда компилятор запросит любую синтаксическую ошибку. вы сделали.
  • Проверка Swift SourceKit неточна. Например, отсутствие } закрытия приведет к появлению несвязанного сообщения об ошибке XXX is not convertible to YYY. Это действительно раздражает и сбивает с толку, особенно для новичков.
  • Проверка Swift SourceKit разрушительна - каждый раз, когда я делал опечатку в синтаксисе. т.е. отсутствует { или }, Xcode помечает строку красным и STOP выделяет синтаксис в более позднем коде или даже вылетает из-за «внутренней ошибки». Это действительно раздражает мой нормальный рабочий процесс. Я решаю эту проблему с помощью кода приложения Intellij, который, как мне кажется, более продуктивен и не вызывает раздражения при кодировании некоторых логик, не связанных с пользовательским интерфейсом.
  • Синтаксис Objective-C слишком странен для Swift-Only разработчика. Многие полезные сторонние библиотеки все еще используют Objective-C, но Swift очень быстро растет, и я считаю, что «Pure Swift iOS Project» решит эту проблему. .

* Опыт работы с Xcode ≥ 7.0 && ≤ 8.1, iMac 27 '(Retina) 2014 г., поздняя версия i7, 32 ГБ ОЗУ

Котлин с лучшей IDE

Все вышеупомянутые недостатки «Swift в iOS» НЕ действительны для «Kotlin @ Android Studio». JetBrain предоставил очень хорошую поддержку IDE для Kotlin.

Android Studio (≥ 2.0) с Kotlin:

  • Очень плавный и стабильный, почти БЕЗ сбоев
  • Проверка и автозаполнение выполняются быстро
  • Краткое и точное сообщение об ошибке синтаксиса
  • Компилятор достаточно умен, чтобы работать со сложным выводом типов (например, с вложенной Lamda)
  • Надежный рефакторинг
  • Работа с Instant Run

Далее - Часть 4: Советы по Kotlin Pro и наши варианты использования Kotlin (продолжение следует)