Как стать автором
Обновить

Комментарии 33

Зачем переписывать имеющийся код на Swift, когда достаточно просто писать новый? Кстати ресурсы Apple по обучению программированию под macOS и iOS давно заточены под Swift.

А вот пройдёт 5 лет, программисты на Objective-C на пенсию уйдут, а кто будет этот их код в ядре и ключевых компонентах системы поддерживать? Ресурсы, как вы верно заметили, заточены под Swift, новые специалисты по Objective-C растут плохо…
Что-то я очень сильно сомневаюсь что код в ядре пишут на Objective-C, там даже C++ не особо-то видно, все пишется на старом добром C который никуда не денется. Все что в ядре написано на Objective-C или Swift это в основном интерфейсы чтобы вы могли SDK на этих языках использовать.
В ядре BSD может и нет, а вот ключевые фреймворки точно на ObjC. Причём, и приватные фреймворки, насколько можно видеть, тоже.
Вы прямо сами себе же и противоречите:

программисты на Objective-C на пенсию уйдут, а кто будет этот их код в ядре и ключевых компонентах системы поддерживать

SDK/фреймфорки != ядро/OS. Драйвера для устройств и все компоненты системы низкого уровня там написаны на C/C++, графическая оболочка и прочие надстройки это отнюдь не «ключевые компоненты системы».
Просто вам захотелось поспорить на ровном месте. Если действительно хочется, давайте формально определим, что есть ядро, что есть ключевые компоненты. Является ли GUI ключевым компонентом с точки зрения программиста ядра ОС? А с точки зрения руководителя разработки пользовательских приложений? А что является ядром системы с точки зрения CEO компании?

Пока у нас нет формальных определений — спорить не о чем. Я выразил свою мысль бытовым языком, и она была понята. Хотите профессиональную дискуссию — давайте определяться с определениями.
Автор прям фанат звездных войн)
Зря переводили. Статья слабая, более того — желтовато-конспиралогическая.
Статья слабая, но ограничение объёма средств в мировой экономике, которые можно потратить на разработку потребительского ПО вполне реальное. И с таким ростом ИТ скоро в этот потолок упрётся. Первыми от такого пострадают потребительские технологии, замкнутые на одну конкретную организацию. Вот Шаттлворту внезапно стало очевидно, что продукты, завязанные только на Ubuntu скоро помрут, и он повернулся к остальному сообществу. Вот в Микрософт осознали, что со слоем совместимости развиваться как-то проще и безопаснее (хотя, не без участия помянутого Шаттлворта).

Автор эту идею в воздухе ухватил, но понесло его куда-то не туда. Тут вопрос совсем не в том, какой язык выживет.

Разработчики, знающие Swift и не знающие Objective C? Оксюморон.


Опять же, Objective C будет жить ещё долго хотя бы ради более простой интеграции с C++.

Отнюдь.
На Swift в основном накинулись школьники / безумные экспериментаторы / менеджеры / Java макаки / входящие в ИТ. Этот контингент верует что знания Objective-C и иже с ним высшая математика и теория алгоритмов это все старье.
Нормальный программист знает что сырые технологии в серьезный проект внедрять опасно.

Ну так они просто не знают Swift. В процессе полноценного изучения Swift выучишь Objective C автоматически. Ну, может, для перехода с языка на язык придётся повторить синтаксис.

В процессе полноценного изучения Swift выучишь Objective C

Это как?

Это в смысле библиотеки общие, подход общий и вообще отличия минимальны — кроме синтаксиса, который изучить недолго. Плюс в процессе изучения/работы регулярно придётся смотреть какой-то код на Objective C, интегрироваться с C/C++ и т.д., и т.п.


Ну да, Swift посовершеннее, но торчащий из под него слой модели объектов ObjC никуда не девается, и если его не понял — значит, не знаешь Swift. А если понял — почти что знаешь Objective C.

В Obj-C много заморочек по поводу управления памятью и указателей. Например такие вещи, как properties, в Swift гораздо проще создаются. Ну и просто синтаксических нюансов хватает.

Это всё синтаксический сахар. И на уровне мидла и выше — следует знать, что за ним стоит (да и джуниору неплохо)

Только учить это придётся отдельно, в Swift оно в таком виде не фигурирует.

Разработчики, знающие Swift и не знающие Objective C? Оксюморон.
У жены на работе очень долго пытались найти джуна на Obj-C:
— У вас проект на Obj-C? Прощайте.
Так все-таки
Apple могут переписать весь свой Objective-C-код на Swift, если захотят.

или
Вся кодовая база Objective-C не может просто так исчезнуть, как по мановению волшебной палочки. Вы представляете Swift группе команд Apple, которые ограничены как во времени, так и в ресурсах, все, что они сделают — пошлют вас к черту.

?
Статья – жалкий наброс, к сожалению. Жаль ваше время.
Ну почему вброс?
Просто размышления на тему свифта
Когда он вышел 3 года назад я сразу понял что за ним будущее(хотя он мне не нравился) и Эпл будет его постепенно продвигать, так как он сделан для новичков, и имеет низкий порог входа. и вот через 3 года создавая проекты в xCode он уже по умолчанию устанавливает Swift. документация уже тоже первой показывает Swiftовая, все больше стороннего кода с CocoaControls пишется и переводится на свифт, даже несмотря на то что многие утверждают что он будет стабильный только с 5 версии.

PS и вот через 3 года начал и я переходить понемногу на свифт, и переписывать проекты. поэтому логично предположить что через определенное время (имхо 5 лет) все(90%) новые проекты будут на Свифте, а дальше все сделает эволюция. Конечно хороня Obj-C могу порвать пару баянов, но это мое видение тенденции
Статья человека, который явно не разбирается в вопросе. Из текста получается, что весь iOS\macOS просто обмазан Objective-C и избавиться от него никак нельзя. Однако, если немного копнуть, то выясняется, что ядро написано на C++ и С, официальный фреймворк для разработки драйверов IOKit являет собой ограниченное подмножество С++. Весь Objective-C сидит в юзерспейсе — все приложения в системе и интерфейсы системных фреймворков. Именно интерфейсы, потому что если опять же копнуть поглубже (например, брейкпоинтами при отладке), то можно увидеть, что внутри фреймворки большей частью написаны на С++ и С.

Про прекращение поддержки С++ и С опять же полный бред. Я выше уже упомянул, на чём написана сама система, фреймворки и драйвера. Опять же в Xcode 9 завезли рефакторинг C++ кода. Про CoreFoundation, CoreAudio и остальные Сишные фреймворки вообще можно не говорить. Странные действия для компании, которая якобы хочет отказаться от поддержки С и С++.

Swift стал популярен благодаря тому, что это язык с С-подобным синтаксисом и программист на Java или том же JavaScript может через 15 минут уже начать что-то писать. Да и его среда использования уже не ограничена macOS и iOS — некоторые уже его используют в качестве языка для бекенда (у фронтендщиков для своих бекендов есть NodeJS, у андроидщиков — Java, теперь и иосникам счастья привалило). С точки зрения интеграции с С, как мне кажется, у Swift как раз преимущество перед Objective-C. С помощью аннотаций (definов) можно сделать так, что код какой-нибудь С библиотеки из структур и функций будет виден в Swift как класс. Например, та же работа с CoreAudio\Video или Acceleratе во многих случаях получается куда удобнее. Чтобы использовать код на С в Swift проекте, не приходится писать на C. Конечно недостаток, что нельзя использовать C++, но пока это решается обёрткой на Objective-C. Про интеграцию Swift с Objective-C можно и не говорить.

В общем, я придерживаюсь мнения, что следующим языком, который умрёт, может быть Objective-C. Возможно, Apple разродится вариантом Swift без ARC, чтобы можно было писать низкоуровневые вещи, но я в это слабо верю. Но Objective-C точно не умрёт раньше, чем все системные фреймворки получат хотя бы интерфейс на Swift.

Мне кажется, что в качестве swift без arc просто подошел бы rust.

Все таки Swift это язык, а не новомодная платформа, поэтому выстрелит. В отличие от «новейшей», «перспективной» .NET, которой уже 20 лет в обед, а MS ее игнорирует для своих продуктов )
Дичь какая. Даже сказать нечего
Да? И какие компоненты Windows 10 написаны на .NET?
А что на свифте какие-то ос написаны?
А причем тут компоненты Windows 10? Вроде бы не про это речь.
Они как минимум сами пишут приложения для Windows Store, плюс позволяют расширять почти все свои продукты плагинами, написанными на .NET языках
Ну как минимум UWP, и все что относится к Windows Store
Не совсем. UWP работает на WinRT, написанном на плюсах. .Net там работает поверх этого всего.
А само приложение Windows Store скорее всего написано на WinJs.
Objective-C ламповый и няшный, на нём ещё сам Джобс кодил ) Остальные языки все в той или иной степени похожи на C своим синтаксисом, что Java, что JavaScript, что теперь Swift. Моё мнение таково — Swift создавали для уменьшения порога вхождения на платфрому со всех похожих языков, и он со своей задачей справился. Но убить всех Objective-C программистов задачи не было, зачем? да и как это сделать? Запретить разработку на нём если только? Добровольно, увы разработчики старой закалки, на Swift переходить не будут. Я говорю про программистов которые пилили приложения в эру до айфона, про молодых и адаптивных речи нет, те могут скакать по языкам и технологием по 10 раз в месяц а то и в неделю…
Джобс кодил? А вот это уже интересно)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории