Новый язык программирования Swift: комментарии разработчиков

Костя Грибанов avatar | 28
FavoriteLoading В закладки
Новый язык программирования Swift: комментарии разработчиков
swift-developers1

Представленный на WWDC 2014 язык программирования Swift стал причиной большой шумихи в кругах разработчиков и породил массу вопросов. Нужно ли обучаться новому языку? Какие его основные преимущества перед Objective-C и C#? И что, собственно, делать тем, кто создает мультиплатформенные игрушки? Для того, чтобы получить ответы на эти вопросы, я обратился к разработчикам известных игр в App Store и подготовил небольшой опрос в формате «разработчик — его приложение — комментарий». Результат получились неоднозначными и где-то даже неожиданным.

swift-developers5

Игра Игры Дракона

Язык Swift устраняет проблемы, скопившиеся за 20 лет в языке Objective-C. Он призван, в первую очередь, упростить ситуацию тех разработчиков приложений, которым крайне неудобно работать с громоздкими, сложными конструкциями Objective-C. Язык Swift так же откроет новую эру для начинающих разработчиков, которые теперь помимо разработки маленьких игр на JavaScript, так же смогут выбирать и этот язык. Однако не следует забывать, что в настоящее время Swift не подходит для мультиплатформенных разработок

swift-developers7

Игра Blek

Swift — язык интересный и многообещающий, но мы активно используем Unity, так что нам вопрос нового языка программирования комментировать здесь трудно. Мы не собираемся использовать Swift при разработке наших игр.

swift-developers9

Игра Demolition Master 3D

На первый взгляд можно сказать, что код на языке Swift будет писаться быстрее, так как отсутствую какие-либо лишние символы. Все очень лаконично, кратко. Также этот язык дает больше гибкости (чего только стоит возврат функцией нескольких значений). Язык являет собой неплохой симбиоз C/C++/Objective C/Java. Трудно пока оценить насколько эта гибкость и лаконичность повлияет на читаемость кода.

В связи отсутствия кросплатформеного компилятора, Swift пока можно использовать только для нативных разработок под iOS и Mac. Пока разработчики игр как и раньше будут отдавать предпочтения Unity 3D, Cocos 2DX, Corona и т.д.

swift-developers8

Игра Leo’s Fortune

1) Swift — чистый и современный. Приятно было услышать, что в нем используется LLVM для компиляции нативного кода плюс все Cocoa API адаптированы;
2) Он — более легкий и удобочитаемый, чем Objective-C;
3) Самый большой недостаток таких специфичных платформ, как Objective-C и Swift — вопрос портирования. Мы разрабатываем наши игры в C++, чтобы было легче портировать на другие платформы. Swift улучшить наш Cocoa-код и всё, что касается API компании Apple.

swift-developers10

Приложение Clean My Mac

Swift – что-то, что никто не ожидал увидеть на WWDC Keynote. Apple взяла все самое лучшее из всех известных мне языков и воплотила это в Swift. Swift дает большие возможности по упрощению кода. То, что разработчик ранее писал с помощью verbose (слишком многословных) конструкций, сейчас можно заменить несколькими символами. Я не вижу Swift заменой Objective-C. Как выяснилось, он еще немного сырой для полного перевода своих проектов на Swift. Но использовать его можно для задач, которые хочется оптимизировать или визуально упростить. Преимущество для разработчиков игр здесь только одно – если ты видел конструкции, используемые в Swift, в языке, который используешь повседневно – значит все хорошо, переход не займет много времени.

Этот язык создавался в строжайшем секрете с 2010 года. Один из сотрудников Apple в разговоре с Крейгом Федериги сказал, что не ожидал, что от его команды скроют такой продукт. Много разработчиков были растеряны после keynote (Денис присутствовал на WWDC — прим. ред). Но нам всем нужно идти дальше и учиться :)

swift-developers11

Игра Викторина IRC

С одной стороны, Apple, видимо, делает ставку на привлечение в разработку под свою платформу опытных разработчиков на других языках (в Swift чувствуется влияние многих из них). С другой стороны, в новом Xcode появился также новый режим – REPL (Read-Eval-Print-Loop), который позволяет видеть результат выполнения кода “на лету”, что очень удобно для новичков. Swift вполне может стать их первым языком программирования. Необходимость в создании нового отдельного языка для меня не совсем очевидна, но время покажет, стоило оно того или нет.
Вообще, общее впечатление от API Swift — более простое, чистое, читабельное и понятное. Хоронить Objective-C, наверное, пока рано, но Swift вызвал у всех действительно неподдельный интерес. Единственная возможная причина медленного развития языка — если он так и останется “внутренним”, только для разработки под Apple.

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, общий рейтинг: 5.00 из 5)
undefined
iPhones.ru
Представленный на WWDC 2014 язык программирования Swift стал причиной большой шумихи в кругах разработчиков и породил массу вопросов. Нужно ли обучаться новому языку? Какие его основные преимущества перед Objective-C и C#? И что, собственно, делать тем, кто создает мультиплатформенные игрушки? Для того, чтобы получить ответы на эти вопросы, я обратился к разработчикам известных игр в...
Прокомментировать

🙈 Комментарии 28

  1. Gr0m avatar
    Gr0m9 июня 2014
    0

    Надо попробовать будет. Судя по комментариям это что-то годное. Я веб разработчик. Учить джаву или Обджектив Си мне не хотелось. А тут что-то интересное и новое. Можно будет влиться в это все с нуля вместе со всеми и не отставать. Начну с какого-нибудь простого веб-аппа (попробую перевести свой же сайт). Как минимум появится интересный опыт.

    t.r.o.n. avatar
    t.r.o.n.9 июня 2014
    0

    а джава та тут причем? она не подходит для ios, а ведрофоны не поймут свифт.

    Gr0m avatar
    Gr0m9 июня 2014
    0

    @t.r.o.n.,

    Я именно андроид и имел ввиду. Не хотел с ним связываться из-за Джавы. Мне по сути без разницы под какую платформу. Это не ради заработка. Так, для себя…

    t.r.o.n. avatar
    t.r.o.n.9 июня 2014
    0

    @Gr0m, ну так осовйте Adobe AS3. И простой, и родная документация на русском, и .. его тормоза не заметны рядом с тормозами ведрофона.

    Andrew avatar
    Andrew9 июня 2014
    0

    @t.r.o.n., Не учите человека гадостям. На AS можно написать универсальное приложение под iOS и Android, но оно будет тормозить и работать коряво и там и там. Единственный вариант написать что-то годное – писать на нативном языке. Почти все стартапы проходят путь PhoneGap или подобное -> Adobe AC3 или HAXE или подобное -> нативное приложение. Не нужно повторять чужие ошибки, пишите нативный код

    t.r.o.n. avatar
    t.r.o.n.9 июня 2014
    0

    @Andrew, для себя, что и просил автор – самое оно.
    Более того, для ios не редко использую – весь достойный результат.
    А сильные тормоза – это у тех, кто не понимает как оптимизировать нужно.
    И еще раз – никто не против нативного, но аффтору, не хочется это учить.

    Gr0m avatar
    Gr0m9 июня 2014
    0

    @t.r.o.n.,

    Я знаю AS 3. И второй тоже.

    t.r.o.n. avatar
    t.r.o.n.9 июня 2014
    0

    @Gr0m, тогда в чем проблема. В нем все есть что может понадобится. а если не полезете в аппаратное ускорение графики -то все будет достойно.

    Gr0m avatar
    Gr0m9 июня 2014
    0

    @t.r.o.n.,

    Хочется чего-то нового. Со флешем покончено пару лет назад, когда еще сайты на нем заказывали.

    Да и Свифт как-то ближе к нативному, по-моему. А на флеше делать – так кажется, что это будет нечто подобное, как делать приложения под мак на АИРе.

    t.r.o.n. avatar
    t.r.o.n.9 июня 2014
    0

    @Gr0m, и что странного. Много полезного и удобного софта получается….
    Криво получается когда лень умножается непониманием.
    Вы главное определитесь, вам сфифт, для себя или андройда )))

    crashk1n avatar
    crashk1n9 июня 2014
    0

    @Gr0m, веб-апп на свифте? мисье знает толк в извращениях )

    А по теме: язык няшка. Может будет третьим-четвертым языком в арсенале.

    Gr0m avatar
    Gr0m9 июня 2014
    0

    @crashk1n,

    Нормально. Яж говорю, что бы было с чего начинать. Цель просто нужна. Как раз функционал обычного сайта запихать в приложение – это самое то для начала. Навигация, вывод данных, галереи, букинг формы и т.д.

    t.r.o.n. avatar
    t.r.o.n.9 июня 2014
    0

    @Gr0m, поверьте, это путь извращения. И не кислого.

    Gr0m avatar
    Gr0m9 июня 2014
    0

    @t.r.o.n.,

    За-то это сразу же реальная задача, а не “Хелло Ворлд”, на котором большинство свой путь и заканчивают.

    Я когда-то такими же образами учил ПХП (в далеком 2000-ом году ничего не зная решил написать с нуля простейшую гостевую книгу) и джаваскрипт (впервые его увидев хотел сделать обычные всплывающие окна).

    t.r.o.n. avatar
    t.r.o.n.9 июня 2014
    0

    @Gr0m, задача реальная – но вот тольок не правильная. Перенос сайта в приложение и есть извращение. Сама поведенческая логика слишком разная.

    Rezon avatar
    Rezon9 июня 2014
    0

    @t.r.o.n., создатели всех клиентских приложений для различных сайтов, включая VkApp, с Вами не согласны)

    t.r.o.n. avatar
    t.r.o.n.9 июня 2014
    0

    @Rezon, да ну… тогда назовите хоть что-то общего в поведении помоек (вк,фб и прочего) и их приложений ))))
    кроме общего API они не имеют ничего

    Rezon avatar
    Rezon10 июня 2014
    0

    @t.r.o.n., во-первых, создание мобильного приложения для сайта — это не повторение интерфейса сайта нативными контролами, а адаптация. Во-вторых, откройте мобильную версию того же vk, вы удивитесь.
    К слову, у vk на данный момент лучший мессенджер из мне известных. Но, конечно же, он наверняка не чета Вашим поделкам на AS. Я перешёл на личности, Вы победили.

    t.r.o.n. avatar
    t.r.o.n.10 июня 2014
    0

    @Rezon, при чем ту поделки и прочее – так и не понял.
    Вы сами подтвердили моси слова – они не копируют сайт. а вы, по сути, говорили именно это.
    Качество месенджера, я не обсуждал вовсе (помойка == любая социальная сеть). Вы как-то нервно реагируете, не находите?
    Все что до вас хотел донести, это то6 что совершенно не важно на чем написана клиентская часть, главное чтобы она соотвествовала потребителю и имела под собой очень-очень хорошее серверное API (не путайте с сайтом)

  2. maximka1093 avatar
    maximka10939 июня 2014
    0

    было бы хорошо если бы стал мультиплатформенным)вроде интересное что то получилось

    Andrew avatar
    Andrew9 июня 2014
    0

    @maximka1093, Вряд ли, Apple не хочет делиться своими приложениями с ведроидом.

    Alex12 avatar
    Alex129 июня 2014
    0

    @maximka1093, если компилятор будет иметь открытый исходный код, то не вижу проблем. На Objective-C под андроид писать можно (на тех же условиях, что и C/С++).

    Silmaril avatar
    Silmaril10 июня 2014
    0

    @Alex12, впервые слышу, но если это так то со Swift проблем не будет ведь это надстройка над Objective-C

    Shannon avatar
    Shannon10 июня 2014
    0

    @Silmaril, нет, это не надстройка, даже близко не недстройка

    Silmaril avatar
    Silmaril10 июня 2014
    0

    @Shannon, Ну вы не первый мне это говорите, но после чтения документации у меня сложилось именно такое мнение. Да может надстройка немного другого плана чем сам Objective-C над C, но с моей точки зрения всеравно надстройка и причин менять свое мнение у меня пока нет, да это и не сильно важно.

    Shannon avatar
    Shannon10 июня 2014
    0

    @Silmaril, тогда зачем своё ошибочное мнение высказывать, если не разбираетесь и даже не хотите разобраться?

    Swift – это совершенно самостоятельный язык, поэтому он не может быть надстройкой над чем-то в принципе (даже элементарно логически, не говоря уже про реальное содержимое).

    То, что он 100% совместим с ObjC – это лишь одно из его свойств, и многие ошибочно думают, что могут в коде swift’а писать на objc и наоборот – это не так. Они совместимы за счет бриджа, специального механизма для совместимости, и в том файле где вы пишите на swift’e вы не можете писать на ObjC (или просто С), в то время как надстройка позволяет использовать синтаксис оригинала

    Silmaril avatar
    Silmaril11 июня 2014
    0

    @Shannon, То что в одном и том же файле нельзя писать на разных языках ничего не говорит. Да технически Objective-C и Swift разные языки. Но практически можно использовать и тот и другой в одном проекте, а рантайм и компилятор общий. Так что вы меня не убедили

    Shannon avatar
    Shannon11 июня 2014
    0

    @Silmaril, дааа, что такое логика в этом мире все меньшее и меньше кол-во людей знает.
    Говорить глупости, потом противоречить самому себе, и потом других в это болото тянуть – современный стандарт.

    Сами же и говорите: “технически Objective-C и Swift разные языки”, что впринципе исключает возможно одного языка быть надстройкой другого.

    Конкретно:
    1. Использовать их можно в одном проекте только благодаря тому, что Apple специально облегчила разработчикам жизнь и разработан механизм совместимости (точно так же можно было сюда Java или Python засунуть)
    2. Компилятор у ObjC и swift разный
    3. Было бы очень смешно, если бы runtime (если вы конечно знаете, что это такое) был у них разный.

    Ааа, я знаю в чем дело. Вы говорите “это надстройка”, но не понимаете значения этого слова, а имеете ввиду “Swift – это новый язык программирования […], который сочетает в себе все лучшее от C и Objective-C. Разработчикам Objective-C Swift покажется знакомым”,

    Вы ошибочно думаете что, раз он в себе что-то сочетает и он кажется знакомым, значит он надстройка и спустя множество раз когда вам указали на вашу ошибку, вы продолжаете бездумно ляпать слова куда непоподя.
    Тогда действительно, вас не убедить, раз вы бездумно ляпаете слова в качестве аргументов (runtime, компилятор, практически в одном проекте, надстройка). Не буду тратить на это время, даже отпишусь от комментариев.

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь