Swift срещу Objective-C през 2019г

Objective-C е създаден от Брад Кокс и Том Лав през 1984 г. като разширение на C. Той добавя съобщения в стил SmallTalk и обектна ориентация към езика C.

Сравнително предимство на Objective-C:

  1. Оперативна съвместимост с C ++ и цел C ++
  2. Динамични функции като замахване на метод
  3. По-добра поддръжка за писане на двоични рамки.

Недостатъци на Objective-C:

  1. Тъй като Objective-C е построен на върха на C, той няма липса на интервал на имена. Всички класове в приложение на Objective-C трябва да бъдат уникални в световен мащаб. За да се избегне сблъсък, има конвенция за префиксиране на имената на класове. Това е причината да имаме префикс „NS“ за класа в Framework Framework и префиксът „UI“ за класовете в UIKit.
  2. Изрични указатели.
  3. Възможността да се изпраща съобщение върху нулев обект без сривове и липсата на строго въвеждане водят до грешки, които е трудно да се проследят и коригират.
  4. Езикът е синтактично многословен и сложен, но това се очаква при положение, че е доста стар език.

Swift е млад език, издаден през 2014 г. Той е проектиран да бъде безопасен и изпълняващ се със съвременен синтаксис и функции. Swift беше отворен през декември 2015 г.

Сравнителни предимства на Swift:

  1. Swift е по-безопасен поради статичното въвеждане и използването на опции и незадължително веригиране.
  2. Поддръжка за пространства от имена, ясен синтаксис на изменяемост, функционални модели и кратък синтаксис.
  3. Интерактивно развитие с помощта на детски площадки.
  4. Swift е по-лесен за научаване на нови програмисти, Официалният езиков наръчник от Apple е чудесен ресурс.
  5. Swift се представя и намира своето място в сървърните приложения. Предимствата на използването на Swift от страна на сървъра са обяснени в този разговор в Realm Academy от Крис Бейли, където той изтъква предимството, което Swift има над други рамки на сървъра и облака. Според него Swift е с висока производителност и има нисък отпечатък на паметта, което го прави идеален избор за развитие от страна на сървъра.
  6. Swift вече е стабилен със заключен ABI.
  7. Стандартният библиотечен код на Swift съдържа около 42,5% от неговия код в Swift. Разделянето на различните езици, използвани в стандартната библиотека, е както е показано на тази снимка по-долу. Този Swift код е може би най-добрият код на Swift, към който разработчиците могат да се позоват, за да подобрят кодирането на Swift. В тази беседа се обхваща много добре.

8. SwiftUI е само декларативна рамка на Swift за създаване на потребителски интерфейс за множество платформи с вградена поддръжка за тъмен режим и други функции за достъпност. SwiftUI е напълно съвместим с UIKit и SwiftUI изглед може да вгради UIView / NSView, който също може да вгради изглед SwiftUI.

9. Визуализацията на SwiftUI е достъпна точно с Xcode, без да стартирате проекта на симулатора (дава незабавна визуална обратна връзка). Също така, устройството за визуализация може да бъде включено в движение, като добавите модификатор за устройство за визуализация, без да създавате проблеми с изграждането и изпълнението на проекта на друг симулатор.

Сравнителни недостатъци на Swift:

  1. По-голямо време за компилиране.
  2. Няма директен начин за използване на C ++ библиотеки.
  3. Стабилността на формата на модула все още не е постигната и е необходима за разработчиците, които искат да споделят кода си като двоична рамка.

заключение

Swift вече е официално стабилен за ABI и може да се счита за зрял език. Бъдещите актуализации в Swift няма да нарушат текущия код, написан отсега нататък в Swift 5.

Apple предлага голяма оперативна съвместимост между Objective-C и Swift и не отказва скоро поддръжка за Objective-C. По-добре е екипите да започнат да мигрират части от техния код Objective-C към Swift, тъй като сега е ABI Stable.
Ако разработвате двоична рамка, бих препоръчал да изчакате Swift да постигне стабилност на модулен формат. Освен това, ако имате работа с кодова база или рамка C ++ и Objective-C ++, тогава ще ви е необходима комбинация от Objective-C и Swift. Частта Objective-C може да взаимодейства директно с частите C ++ или Objective-C ++ от вашия код, а частта Swift след това може да използва класове Objective-C за взаимодействие с кода C ++ или Objective-C ++.

Объркан за това дали трябва да мигрирате към Swift и какво не, моля, вижте тази статия, където тя е разгледана подробно.

Препратки:

  1. https://cocoacasts.com/namespaces-in-swift
  2. https://academy.realm.io/posts/tryswift-chris-robert-end-to-end-application-development-swift-backend/
  3. https://youtu.be/jWaO3rsNZU0
  4. https://youtu.be/wB-bi8_rSLs

Можете да се свържете с нас в Twitter, Linkedin, Facebook и Github.