Не перестаю задаваться вопросом — какие у Apple планы на Swift и Objective-C? Когда в 2014 году появился Swift, его создатель Крис Латтнер утверждал, что эти два языка смогут сосуществовать бесконечно долго. Из почтовой рассылки пользователям Xcode:
3 Июня 2014
McLaughlin, Michael P.
Кто-нибудь знает, действительно ли Apple собирается прекратить поддержку С и С++? Fortran уже не поддерживается, хотя осталось еще много кода на Fortran, и сравнительно нового, как в MultiNest.
Пожалуйста, скажите, что это не так. Не все считают, что «опытные пользователи» — это те, кто просто создает полнометражные мультики. Многие из них ученые и инженеры.

Здравствуйте, Michael,
Мы не строили планы на что-либо подобное. Swift — это просто новый вариант разработки под платформу. Мы не собираемся прекращать поддержку ни C, ни C++, ни Objective-C. Если вы разрабатываете на одном из этих языков, можете свободно продолжать его использовать.

— Крис.
Оригинальный текст письма
> On Jun 3, 2014, at 5:45 AM, McLaughlin, Michael P. <mpm...@mitre.org> wrote:
> Does anyone know, for real, if Apple intends to stop supporting C and C++?
> That’s what it sounded like. They already do not support Fortran even though
> there is a *lot* of Fortran code out there, even fairly new code like MultiNest.
>
> Please say it isn’t so. Not all of us consider “power users” to be just those
> who create feature-length cartoons. Many are scientists and engineers.

Hi Michael,

We have no plans to do anything like that. Swift is a new option for developing
on the platform. We have no plans to drop C, C++ or Objective-C. If you’re
happy with them, please feel free to keep using them.

-Chris


Дело в том, что в это никто не верит. Крис Латтнер уже давно покинул Apple, и если его утверждение окажется ложным, он не сможет принять критику от лица компании. В целом разработчики согласились на том, что Apple в конечном итоге откажется от Objective-C, и Swift станет единственным языком «первого класса» для разработки Cocoa-приложений. Слова «языком первого класса» имеют значение, потому что нет никаких оснований для прекращения поддержки компилятора для Objective-C или его удаления вообще. Компилятор поддерживает многие языки программирования, в том числе малоиспользуемые и старые. Так что утверждение Латтнера может быть формально истинным, но не в этом дело. Вопрос в выборе языка для разработки Cocoa-приложений под iOS и macOS.

Сообщество разработчиков, вероятно, право. Я согласен, что Objective-C и Swift не могут продолжать сосуществовать неопределенное время. Однако, я не так уверен, что будущее за Swift. Что, если это так? Этому варианту развития событий я бы и хотел посвятить эту статью. Во-первых, позвольте рассказать, почему Swift и Objective-C не могут мирно сосуществовать.

Новая надежда?


Ни Swift, ни Objective-C почти не используются за пределами платформ Apple. Это может поменяться в будущем, но на данный момент это факт. Так что если вы хотите разрабатывать приложения под платформы Apple, вам нужно изучить какой-либо из них, либо оба. «Какой именно язык изучать?» — довольно трудный вопрос для новичка. Если брать один язык, то стандартным советом будет Swift. Хотя я не согласен с ним, но признаю, что он стандартен. Умные головы предложат изучать оба языка. Но тут кроется загвоздка. Если нужно осваивать оба специфичных для платформы языка лишь для написания приложений, Apple-платформы теряют свою привлекательность для разработчиков. Swift понравился разработчикам из-за своей «современности» и «привычности», нежели Objective-C. Но если все равно нужно учить Objective-C, то в чем преимущество? Сторонние разработчики приняли Swift, гм … быстро (в оригинале тут получился каламбур, Swift = «быстро» — прим. пер.) — Apple сказали прыгнуть — они прыгнули. Как Аполлония в «Озеро Миннетонка». Swift стал очень популярным. Это вызвало огромный спрос на Swift-ресурсы. В почтовых рассылках, форумах, блогах, Stack Overflow, твиттере, да везде, — разработчики хотят знать о Swift и обсуждать его. Swift повлиял на техническую книгоиздательскую индустрию. Даже на рынок труда повлиял — многие компании намеренно, или из-за моды на язык, или просто из-за безграмотности, нанимают только Swift-разработчиков. Многие разработчики под платформы Apple не знают Objective-C. И многие Objective-С-разработчики берутся использовать исключительно Swift, причем до такой степени, что начинают забывать Objective-C и испытывают трудности, если приходится снова к нему возвращаться. Увлечение Swift, спрос на него среди разработчиков угрожают заглушить Objective-C. Эти два языка могут сосуществовать «официально» в сознании Apple, но могут ли они сосуществовать неофициально в чьем-либо еще? Могут ли приводиться двойные — на каждый язык — письма, блоги и вики-страницы? Что насчет опенсорсных проектов — Objective-C или Swift? И, если рынок труда движется почти исключительно к Swift, у разработчиков нет другого выхода, как идти в этом же направлении.

Империя наносит ответный удар


Судя по вышеуказанным аргументам, Objective-C обречен. Все больше разработчиков предпочитают Swift. Однако не все потеряно, потому что не разработчики управляют платформами Apple. Единственное место, где Swift еще не доминирует, это, как бы иронично ни звучало, сами Apple. Компания очень медленно осваивает Swift. К настоящему времени Apple внедрили удивительно мало Swift-кода. Хороший анализ этого можно найти в одном блоге. Было предложено несколько объяснений — многие могут называть это извинениями. Например, фреймворки Apple не могут использовать Swift, потому что он еще не достиг ABI-стабильности (или даже source-стабильности, если уж на то пошло). Каким бы ни было объяснение, факт остается фактом: внутренняя кодовая база Swift у Apple относительно крошечная, в то время как база Objective-C, скорее всего, самая большая в мире.

Если Apple придется отказаться от одного языка прямо сейчас, то от какого именно? Отказ от Swift будет чрезвычайно болезненным для сторонних разработчиков. С другой стороны, для самих Apple это пройдет почти незаметно — слишком мало Swift-кода придется конвертировать в Objective-C. Разумеется, Apple приложили немало усилий в Swift, особенно в отношении Xcode, однако, это невозвратные затраты. Apple не будут кидать денег на ветер. В Objective-C тоже было вложено немало, и эти затраты даже более невозвратны, чем у Swift. Значение имеет не цена, которую уже заплатили, а цена, которую придется заплатить в будущем. Apple ничего не имеют против невозвратных затрат. По слухам, они вложили огромную кучу денег в автомобильный проект, по которому еще ничего нет, и что он был по большей части отложен.

Apple могут переписать весь свой Objective-C-код на Swift, если захотят. Конечно, у них есть на это ресурсы. Объем ликвидных активов, которыми они владеют, просто ошеломителен, беспрецедентен в истории. Тем не менее, их нынешняя корпоративная культура предполагает, что они не могут или не будут выполнять это преобразование. За этим стоит несколько факторов. Во-первых, Apple перешли на годовой цикл выпуска для всех своих основных версий ОС. Действительно, по сообщениям, компания ударилась в Agile-философию разработки ПО. Такой подход оставляет слишком мало времени для полных переделок. И мы уже видели, как качество идет на спад, а функциональность теряется, когда Apple переписывает технологию или приложение с нуля.

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

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

Внутренние исследования Apple также указывает, что если бы Софи пришлось выбирать (означает тяжелый выбор — прим.пер.) между двумя языками сегодня, то остался бы точно не Swift. Если вы сторонний разработчик, полностью окунувшийся в Swift, эта мысль, как минимум, должна вас напугать. И спросите себя, если сегодня маятник качнется в этом направлении, сколько времени должно пройти, и что должно произойти, чтобы он качнулся обратно? В какое время, в каком году для компании будет более болезненным отказаться от Swift, нежели от Objective-C?

Возможно, вы сейчас ворчите, мол, Apple не может так предать разработчиков, отказавшись от Swift. Как вообще руководителям Apple спится по ночам? Подозреваю, на матрасах, начиненных наличкой. Они не станут думать дважды. Они даже могут хвалить себя за смелость. Если вы посмотрите историю взаимоотношений Apple с разработчиками, то увидите целую цепочку отказов в поддержке, разочарований, страданий и несдержанных обещаний. Сборщик мусора в Objective-C, 64-битный Carbon, интерфейс Cocoa-Java, Yellow Box для Windows, Dylan. Нужно ли продолжать? Я мог бы. Евангелисты Apple скажут вам, что Swift — лучший язык программирования, а затем передумают и заявят, что они всегда были против Swift.

Приквелы


Когда Apple решили создать Swift, каков был их план? Я вижу три варианта.

  1. Они действительно намеревались поддерживать оба языка какое-то неопределенное время.
  2. Планировали в конце концов отказаться от Objective-C и перейти на Swift, во что и верят разработчики.
  3. У них не было конкретного плана, да и вообще не были уверены, что Swift даже выстрелит.

Первый вариант не подходит по вышеописанным причинам, так что его сразу можно отмести.

Если действующим был второй план, я бы очень хотел, чтобы Apple в открытую его выразили. Сообщение от Латтнера, как минимум, вводит в заблуждение. Если Swift — будущее, так почему бы не быть откровенными с разработчиками, не делиться с ними своими планами, чтобы те смогли подстроиться под них? Неопределенность — худшее, что может быть в этом отношении. Мы сможем согласиться, что Swift — наше будущее, если у нас не останется выбора. Но если Swift — выбор Apple, и они кормят нас иллюзиями, что выбор все еще есть, тогда некоторые из разработчиков могут сделать неправильный выбор, что губительно для всех.

Я считаю, что верен третий вариант. Я знаю, многие люди думают, что Apple работают в соответствии с каким-то грандиозным, секретным, мегабольшим планом. Есть ли у Apple долгосрочные планы? Несомненно. Являются ли эти планы конкретными? Сомневаюсь. В технической сфере вы можете делать долгосрочные планы, но не рассчитывайте, что сможете им придерживаться. Технологии меняются… быстро. Вам надо быть гибкими (не как Agile, а просто гибкими). Вы должны уметь реагировать на то, что делают ваши конкуренты. Например, уход Леттнера — было ли это в планах Apple? Планы меняются. Они должны меняться. Сторонние разработчики сразу же набросились на Swift, но Apple также должны были учесть возможность того, что он пройдет незаметно для них. Надеясь на лучшее, планируй худшее.

Изгой-один


По общему мнению, проект «Swift» был секретным даже внутри Apple. О нем знали лишь несколько избранных. Когда о нем объявили в открытую, для большинства инженеров Apple это стало такой же неожиданностью, как и для разработчиков. Сотрудники Apple оказались не готовы для этого. И это представляет собой самую большую проблему для Swift: внутренние конфликты между командами разработки в Apple. Команда-за-Swift с поддержкой в лице руководства преподносят Swift как будущее разработки приложений Apple. Но Команда-за-Swift не может просто так отмести настоящее и поставить на его место будущее как установленный факт. Настоящее для Apple — Objective-C. Много Objective-C. Десятилетия Objective-C, накопившиеся еще до покупки NeXT. Вся кодовая база Objective-C не может просто так исчезнуть, как по мановению волшебной палочки. Вы представляете Swift группе команд Apple, которые ограничены как во времени, так и в ресурсах, все, что они сделают — пошлют вас к черту. Им может понравиться сама идея, но WWDC близко и нужно выполнить кучу работы. Может быть, через год… Или через два.

Как Apple может согласовать эти конкурирующие интересы? Они хотят закрепить будущее за Swift, но также есть тонна Objective-C-кода, и они хотят продолжить свою гибкую разработку ПО, при этом нанимая исключительно лучших инженеров. Да еще и поддерживать качество ПО. (Надеюсь, можно предположить, что там все-таки заботятся о качестве.) Чем-то придется пожертвовать. Между тем, сторонние разработчики будут предъявлять бОльшие требования к ресурсам Swift. Описания API, вероятно, в значительной степени автоматизированы, так что двойной стек не будет большой проблемой, но разработчикам на Swift потребуется документация и примеры кода. Если официальная позиция Apple состоит в поддержке обоих языков, они пишут двойную документацию и двойные примеры кода? И как много усилий они вкладывают в обновление старой Objective-C-документации?

Какова реакция сообщества на эту проблему? Люди, считающие, что Apple откажется от Objective-C, — как вы думаете, как они с этим справятся? Некоторые предположат, что Apple откажутся от внешнего использования Objective-C, но продолжат использовать его внутри компании. Однако, я думаю, что эти люди недооценивают проблему. Учитывая объем кодовой базы Objective-C и ограничения, с которыми Apple работают, переход на Swift действительно затянется. По-вашему, как долго компания будет поддерживать все инструменты для Objective-C? Если ваш ответ не 5 лет, не 10 лет и даже не более 10 лет, я думаю, вы не представляете объема всей задачи. Для меня кажется крайне маловероятным, что Apple будет выделять отдельные ресурсы для разработки и поддержки внутренней версии Xcode, внутренних Objective-C API, внутренней Objective-C-документации (всем нужна документация) и т. д. И еще раз, если бы компания официально отказалась от Objective-C, количество Objective-C-разработчиков падало бы еще более стремительными темпами, чем сейчас, так что где вообще Apple собирается найти людей для поддержки кодовой базы в будущем?

Эпизод C


Позвольте опровергнуть возможные контраргументы к вышеуказанным мной. Контраргумент состоит в том, что Apple и так тянут двойной стек технологий: Objective-C и C. Foundation и Core Foundation. Поэтому добавление еще одного языка не является чем-то новым и неизведанным. Это возражение на первый взгляд кажется убедительным, но тут есть брешь. Да, Objective-C и C являются двумя разными языками, но провести аналогию со Swift нельзя, потому что Objective-C — это, по сути, надстройка над C. Если вы изучаете Objective-C, и изучаете хорошо, значит вы знаете и C тоже. Не имеет значения, что многие берутся сначала за C, а потом за Objective-C. На самом деле, я шел именно по этому пути, и советовал бы следовать ему и другим. Но изучение C и затем Objective-C — не то же самое, что учить два языка программирования. Фактически, это попросту двухэтапное изучение Objective-C. Все, что вы узнали о C, применимо и к Objective-C. Это просто работает, так сказать. Но Swift это не касается. Конечно, есть некоторые пересечения, потому что Swift был разработан людьми, оперирующими Objective-C, но ни в коем случае ни один из них не является надстройкой над другим. Swift и Objective-C несовместимы гораздо хуже, чем, скажем, C++ и C, которые весьма близки, но не совсем совместимы.

Кроме того, C не является языком разработки приложений под iOS и macOS. Можете ли вы создать приложение на чистом C? Возможно, но, конечно, не легко. API для разработки на C был не Cocoa, а, скорее, Carbon, а от Carbon Apple в значительной степени отказались. Существует несколько поддерживаемых API для C в Apple-платформах, но все же C не так близок к разработке iOS- и macOS-приложений, как Objective-C и Swift.

Какая-то там месть


Это лишь мои подозрения, но мне кажется, что Apple не ожидали, что Swift так быстро станет популярным. Вся эта стратегия имела бы больший смысл, если бы Swift медленно развивался в течение долгих лет. Двойной стек выгоден, если разработчики распределены на два лагеря примерно равномерно. У Apple и сторонних разработчиков было бы достаточно времени, чтобы переписать существующий код с Objective-C на Swift. Swift может быть нашим будущим, может быть единственным языком для разработки, но это отдаленное будущее. Может оказаться ошибкой в планировании или игрой воображения, что Swift может внезапно подавить Objective-C в мышлении разработчиков. И теперь Apple столкнулась с трудным выбором. Как они справляются с неожиданной популярностью Swift за пределами компании, когда внутри нее к нему еще не готовы?

Я подозреваю, что Apple отступятся от Swift. Как я думаю, отставка Леттнера делает эту возможность еще более вероятной. Многие разработчики положили все свои ресурсы на Swift. Это могло казаться неплохим вложением в то время, и возможно, оно окупится. Вероятно, это окупится. Что, если нет? Вдруг произойдет смена управления, или просто изменятся настроения внутри управления? Что если Apple внезапно решит, что их внутренние ограничения труднее преодолеть, чем они ожидали и смена языка невыгодна? Можете ли вы исключить эту возможность? Боюсь, многие не готовы к настолько жестокому миру. Если это произойдет, будет много слез и криков. Но не среди разработчиков Objective-C, которые будут смеяться и веселиться, как будто на дворе 1999. В крайнем случае, 2001.

Комментарии (31)


  1. yarric
    14.11.2017 17:15

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


    1. SBKarr
      14.11.2017 17:27

      А вот пройдёт 5 лет, программисты на Objective-C на пенсию уйдут, а кто будет этот их код в ядре и ключевых компонентах системы поддерживать? Ресурсы, как вы верно заметили, заточены под Swift, новые специалисты по Objective-C растут плохо…


      1. akamensky
        17.11.2017 06:35

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


        1. SBKarr
          17.11.2017 08:39

          В ядре BSD может и нет, а вот ключевые фреймворки точно на ObjC. Причём, и приватные фреймворки, насколько можно видеть, тоже.


          1. akamensky
            17.11.2017 09:09

            Вы прямо сами себе же и противоречите:

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

            SDK/фреймфорки != ядро/OS. Драйвера для устройств и все компоненты системы низкого уровня там написаны на C/C++, графическая оболочка и прочие надстройки это отнюдь не «ключевые компоненты системы».


            1. SBKarr
              17.11.2017 09:25

              Просто вам захотелось поспорить на ровном месте. Если действительно хочется, давайте формально определим, что есть ядро, что есть ключевые компоненты. Является ли GUI ключевым компонентом с точки зрения программиста ядра ОС? А с точки зрения руководителя разработки пользовательских приложений? А что является ядром системы с точки зрения CEO компании?

              Пока у нас нет формальных определений — спорить не о чем. Я выразил свою мысль бытовым языком, и она была понята. Хотите профессиональную дискуссию — давайте определяться с определениями.


  1. Enmar
    14.11.2017 17:41

    Автор прям фанат звездных войн)


  1. PapaBubaDiop
    14.11.2017 17:45

    Зря переводили. Статья слабая, более того — желтовато-конспиралогическая.


    1. SBKarr
      14.11.2017 18:24

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

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


  1. aamonster
    14.11.2017 18:26

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


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


    1. svistkovr
      14.11.2017 21:02

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


      1. aamonster
        15.11.2017 10:28

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


        1. yarric
          15.11.2017 14:52

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

          Это как?


          1. aamonster
            15.11.2017 15:02

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


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


            1. yarric
              15.11.2017 16:49

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


              1. aamonster
                15.11.2017 19:31

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


                1. yarric
                  15.11.2017 20:17

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


    1. ad1Dima
      15.11.2017 06:02

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


  1. snuk182
    14.11.2017 18:47

    Так все-таки

    Apple могут переписать весь свой Objective-C-код на Swift, если захотят.

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

    ?


  1. mix2000
    14.11.2017 20:04

    Статья – жалкий наброс, к сожалению. Жаль ваше время.


    1. solariserj
      17.11.2017 10:34

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

      PS и вот через 3 года начал и я переходить понемногу на свифт, и переписывать проекты. поэтому логично предположить что через определенное время (имхо 5 лет) все(90%) новые проекты будут на Свифте, а дальше все сделает эволюция. Конечно хороня Obj-C могу порвать пару баянов, но это мое видение тенденции


  1. V1tol
    14.11.2017 22:13

    Статья человека, который явно не разбирается в вопросе. Из текста получается, что весь 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.


    1. Gorthauer87
      17.11.2017 09:58

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


  1. alex_ter
    15.11.2017 00:45

    Все таки Swift это язык, а не новомодная платформа, поэтому выстрелит. В отличие от «новейшей», «перспективной» .NET, которой уже 20 лет в обед, а MS ее игнорирует для своих продуктов )


    1. granit1986
      15.11.2017 11:12

      Дичь какая. Даже сказать нечего


      1. alex_ter
        15.11.2017 22:23

        Да? И какие компоненты Windows 10 написаны на .NET?


        1. ad1Dima
          16.11.2017 08:42

          А что на свифте какие-то ос написаны?


        1. granit1986
          16.11.2017 10:41

          А причем тут компоненты Windows 10? Вроде бы не про это речь.
          Они как минимум сами пишут приложения для Windows Store, плюс позволяют расширять почти все свои продукты плагинами, написанными на .NET языках


        1. inf2k
          16.11.2017 21:15

          Ну как минимум UWP, и все что относится к Windows Store


          1. ad1Dima
            17.11.2017 11:30

            Не совсем. UWP работает на WinRT, написанном на плюсах. .Net там работает поверх этого всего.
            А само приложение Windows Store скорее всего написано на WinJs.


  1. svanichkin
    17.11.2017 12:38

    Objective-C ламповый и няшный, на нём ещё сам Джобс кодил ) Остальные языки все в той или иной степени похожи на C своим синтаксисом, что Java, что JavaScript, что теперь Swift. Моё мнение таково — Swift создавали для уменьшения порога вхождения на платфрому со всех похожих языков, и он со своей задачей справился. Но убить всех Objective-C программистов задачи не было, зачем? да и как это сделать? Запретить разработку на нём если только? Добровольно, увы разработчики старой закалки, на Swift переходить не будут. Я говорю про программистов которые пилили приложения в эру до айфона, про молодых и адаптивных речи нет, те могут скакать по языкам и технологием по 10 раз в месяц а то и в неделю…