Objective-C vs Swift

Собственно тема откуда: на многих конференциях заметил что obj-c программисты про obj-c особо тем больше и не рассказывают, но поголовну обсуждают Swift. При этом, за кофе они яро обсуждают тему, что знания obj-c важны, и никто никогда от obj-c не откажется пушо легаси. Ваше мнение? Стоит ли начинающим учить obj-c, или же сразу учить Swift?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Objective-с хотя сейчас приходится писать и на том и на втором

Обычно Apple не оборачивается назад. Если они ввели SWIFT, значит Obj-C будет потихоньку отмирать.
В Obj-C довольно много недостатков, чтобы учить его как осонову для Swift. Возможно, как основа подошел бы C++ (:)) или JAVA. Но наверное это слишком большие затраты для новичков по времени и трудоемкости.
Новичкам не стоит тратить время на Obj-C, лучше практиковать на Swift.

Це просто трендець :-)

А в чем проблема? «Учить ObjC» — это что, квантовая механика? Вполне можно потратить 2-4 недели на освоение этого, и будете во всеоружии. Основная часть работы по освоению программирования на этой платформе все равно уйдет на освоение всяких API. И, рано или поздно, среди необходимых API появятся юниксовые сишные, кстати.

Ну да, сам по себе objc туп как пробка, в нем и осваивать-то нечего. 4 недели будет слишком жирно. Чего не скажешь про гигатонны родных и сторонних API, библиотек, фреймворков, и примеров кода, на укрощение которых нужны годы. Ключевой момент в том, что Cocoa при переходе на Swift останется тем же, и к старому стороннему коду можно легко интерфейситься, так что беседа вообще ни о чем.

в начале учить С, потом obj-c а потом swift

С потрібна як база для програмування. Але для чого знання obj-c?
А людині яка вчить лише obj-c потрібні знання swift? Поясніть, будь ласка, залежності між цими мовами?

obj-c по сути есть макронадстройка над С со своим рантаймом и моделью памяти.

Swift использует модель памяти obj-c и похожий, но улучшенный, ран-тайм. swift призван убрать бОльшую часть boiler plate присущую obj-c.

Т.о. без swift можно будет удобно педалить на obj-c еще года 3. без obj-c вы не будете понимать большую часть происходящего в вашем апе, как только вы будете выходить за пределы простейших манипуляций с UIView.

без С вы не будете понимать ничего, что происходит в CoreFoundation и других либах, которые не получили obj-c оберток.

Осталось ещё Assembler упомянуть. :-)

Assembler
Было бы неплохо читать, чтобы стэк-трейсы лучше понимать, писать всё-равно нельзя.

Взгляд со стороны (я не иОС/Мак программист):
Swift — это что-то новое, про него говорить будут по крайней мере до официального релиза + 0,5-1 год.

знания obj-c важны, и никто никогда от obj-c не откажется пушо легаси.
Если Эппл не сотворит чудо (а чудо возможно, учитывая что это Эппл), то таки правда. Примеры это Джава и Скала/Груви, или платформа МСа. Посему obj-c будет надо еще долго, особенно «синьорам, которым надо фиксить сторонние либы».
Стоит ли начинающим учить obj-c, или же сразу учить Swift?
ИМХО, начинающему можно начинать со Swift-а. По тому что показали, вполне может быть что для простых приложений Swift — это самое оно.
Но все же есть большая вероятность того что obj-c таки прийдется изучить (как и чистый Ц).
ИМХО, начинающему можно начинать со Swift-а.

Я пока склоняюсь к тому, чтобы подождать год (или сколько там), до выхода следующей версии Swift и учить только его. И делать что-то своё, после появления годных идей.
А всё это время продолжать заниматься тем же, чем сегодня.

В целом согласен, но для новичков есть ньюанс: obj-c хоть и громоздкий но в нем не запутаешься в параметрах и он способствует выроботке привычек написания хорошо читаемого кода. Т.е. написать простенькую прожку с парой кнопок будет проще на свифте. Написать прогу с табличкой, правильно настроенными делегатами и датасосами и понять как это все работает и почему именно так — более наглядно ИМХО на obj-c

А що не дає зробити те саме на Swift (я стороння людина, хоч про Obj-C маю уявлення, питання серйозне)?

как я написал ИМХО наглядность, не больше. Все фреймворки теже.

но в нем не запутаешься в параметрах

та навіть в тому ж C# аргументи можна хоч всі іменувати, і що? це підвижує читабельність дуже рідко (напр. два і більше параметри одного типу поруч)

он способствует выроботке привычек написания хорошо читаемого кода

і яких саме?

Судя по Вашему ответу речь идет такраз о тех навыках, которые C# не выробатывает )

не запутаешься в параметрах
— це досить смішний критерій оцінки мови. От я і намагався витягнути щось по суті. А суть у Swift дуже навіть хороша порівняно із Obj-C (контроль над null, algebraic data types і взагалі відносно потужна типова система, іммутабельність і т. д.).

Мова йшла не про переваги мови, а про мову те, що вчити першим початківцям. Якщо на слово (сам не перевіряв і наврядчи буду) епловцям — то програми на Swift краще оптимізуються і повинні ще у перформансі значно вигравати. А це вже суттєво.

он способствует выроботке привычек написания хорошо читаемого кода
Я с вами согласен. Но почему-то, у большенства людей при употреблении «Обдж-Ц» и «хорошо читаемый код» начинаютсо приступы истерики.

У меня первое время волосы шевелились на голове при виде кода :) Но к нему привыкнуть намного быстрее, чем кажется. И оно того стоит.

Мое мнение — таки стоит учить ObjC (для чего вообще начинать с «С»).
Хотя бы по причине того, что до сих пор не все части Apple SDK реализованы на ObjC, не говоря уже о сторонних библиотеках и фреймворках.

Підписатись на коментарі