Pull to refresh

Comments 16

Таким образом, эпоха Objective-C со всеми своими недостатками отмирает

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

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


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


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

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

UFO just landed and posted this here
А библиотеки Свифтовские то уже в IOS 13 есть в составе ОС или проги «hello world» так и весят по 20 мегабайт?
Рантайм свифта 5 версии включили в состав операционок ещё с iOS 12.2, tvOS 12.2, watchOS 5.2 и macOS 10.14.4
Одним из важных шагов, будет переход ноутбуков на ARM чипы ближайшие годы. Тут будет во всей красе работать приложения написаные для iPadOS запущеные на MacOs ARM без эмуляции.

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

Спорно. Уже сейчас скорость разработки и низкий порог вхождения являются одним из самых важных факторов в разработке. И как следствие — стоимость разработки. Objective-C здесь чуть лучше чем С++, но сильно хуже чем тот же Swift.
Sign up to leave a comment.