Acronis corporate blog
Development for iOS
Development of mobile applications
Comments 16
-1
Таким образом, эпоха Objective-C со всеми своими недостатками отмирает

Если можно конкретнее о каких недостатках идет речь.
+2

Язык ObjC очень старый, и требует большей внимательности. Компилятор и рантайм Swift берут очень много рутинной работы на себя.


Это, например,


  1. null-безопасность;
  2. работа с памятью; в MRC-эпоху ObjC был, действительно, очень требовательным к внимательности и, в целом, к способностям разработчика;
  3. работа с множественным наследованием протоколов, что было описано в предыдущей статье;
  4. статистическая типизация помогает значительно уменьшить количество ошибок, по сравнению с динамической;
  5. качественно улучшенные перечисления в Swift;
  6. C++ подобный синтаксис и интеграция C++ кода, которая зачастую раньше была обычным делом, в ObjC значительно повышает порог вхождения программиста в понимание того, что происходит;
  7. качественно иной подход к написанию кода при использовании SwiftUI, и родной Combine, на мой взгляд, должен помочь ускорить разработку, и снять с разработчика достаточно большой объём работы.
    Причём, я оставляю за скобками слишком странный и громоздкий синтаксис языка. Тут, как говорится, на вкус и цвет. Но ObjC – не язык 2019 года. У него роль обвязки C++ кода, и то, если это требуется. И, может быть, по мелочи, есть что-то, что ещё не научился Swift.
    Да, это, безусловно, требует хорошего компилятора, но команда языка Swift весьма хороша, так что в перспективность этой технологии лично я субъективно верю.
    Да, есть моменты падения рантайма Swift, и периодически встречающиеся баги компилятора, но они исправляются, и их количество незначительно.
    И, конечно, можно ещё найти какие-то различия и улучшения.
-1
Objective-C является надмножеством С а не С++. Меня не так заботит синтаксис Swift он довольно приемлим сколько скорость его компиляции в Xcode. Если следовать вашей логике Objective-C плох тем что Apple перестала его развивать. Но это решение Apple с которым можно поспорить. Так же зачем вспоминать MRC если это давно было исправлено на ARC. Ведь никто не вспоминает первые версии Swift и их недостатки.
0
Динамическую типизацию не исправить. Это ограничение языка. Это не является удобным, так как приводит к ошибкам. Я понимаю, что
Objective-C является надмножеством С а не С++.
, но я не об этом, а о том, что C++ совместно с ObjC++ превращает зачастую код в весьма сложную солянку.
-1
Никто не запрещает использовать статическую типизацию. Если используют значит кому то это нужно. А по поводу с++ теперь чтоб его использовать нужна обертка в виде Objective-C.
-2
Другими словами, основным недостатком ObjC более высокие требования к профессиональным навыкам и компетенции кодера.
0

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

0
1. Приложение натыкается на null и падает — это и есть ваша хваленая безопасность? Равно как и дописывать до кучи лишнего кода из-за того, что кто-то решил оперировать опционалами, когда там обязательно должны быть какие-то значения?
2. почему-то в других языках люди вполне себе нормально живут с подсчетом ссылок вручную. А тут кто-то не смог, поэтому язык плохой?
3. Если сравнивать с другими языками, то Obj-C нормально работает с множественным наследованием, но в нем нет абстрактных классов. Ваша статья по сути и описывает реализацию абстрактных классов в Swift. Вот только Swift появился недавно, а в нем это сделано уже через костыли (добавлять реализацию методов в протоколы).
4. пустые слова. Зато 2+2.5 на Obj-C будет равно 4.5, а на Swift — ошибка. И таких примеров много
5. я бы согласился, но часто приходится иметь дело с перечислениями, которые вложены в перечисления, которые вложены в перечисления, которые ну вы сами поняли
6. язык внешне больше похож на какой-нибудь javascript или другой скриптовый, но никак не на с++
7. по слухам в SwiftUI вещи, которые просто делать, делать еще быстрее и проще, вещи, которые делать сложно, вроде взаимодействия с БД, с сервером и т.п. делать настолько сложно, чтобы вы пожалели, что выбрали SwiftUI
Combine — не могу ничего сказать, существует +100500 библиотек, делающих то же самое, apple решила выпустить 100501-ю. Лишь бы не получилось как с cocos2d — клонировали идею, сделали нативную реализацию, cocos2d в результате «умер», и одновременно эти клоуны прекратили развивать свою нативную библиотеку (видимо от недостатка фантазии)
0
А библиотеки Свифтовские то уже в IOS 13 есть в составе ОС или проги «hello world» так и весят по 20 мегабайт?
+1
Рантайм свифта 5 версии включили в состав операционок ещё с iOS 12.2, tvOS 12.2, watchOS 5.2 и macOS 10.14.4
0
Одним из важных шагов, будет переход ноутбуков на ARM чипы ближайшие годы. Тут будет во всей красе работать приложения написаные для iPadOS запущеные на MacOs ARM без эмуляции.
0

Objective-C — имхо, лучшее, что случалось в программировании. Если, вдруг, его перестанут поддерживать вообще, я, пожалуй, сменю профессию.

0
Спорно. Уже сейчас скорость разработки и низкий порог вхождения являются одним из самых важных факторов в разработке. И как следствие — стоимость разработки. Objective-C здесь чуть лучше чем С++, но сильно хуже чем тот же Swift.
Only those users with full accounts are able to leave comments., please.