Pull to refresh

Comments 32

А зачем вообще нужно всё это переписывание статей под Swift? Как бы, структура кода вообще не поменялась, только язык стал читабельнее.
Вот и мне непонятно. Тем, кто на Obj-C программировал — работа со всем этим знакома, а остальным можно пока и на obj-c потренироваться, язык как язык, а вот все фреймворки как раз за время, пока там все стабилизируется, выучить можно.
Например тем, кто вообще не начинал кодить под iOS.
Ну да, начинать надо, разумеется, через неделю после выхода языка. И обязательно перед этим зайти на stackoverflow (ну или на другой профильный сайт) и спросить: «Я знаю JavaScript и C#, а надо ли мне учить Swift?»
Почему нет? От iOS разработки многих отталкивал синтаксис ObJ C (он достаточно непривычный и несколько многословный). Swift ведь для этого и сделали, чтобы таких вот разработчиков таки подключить к iOS разработке, предоставив более современный язык с улучшенным синтаксисом. Самое время начать учить сейчас, чтобы к выходу релиза уже быть готовым к профессиональной разработке.
не хотелось бы «таких вот разработчиков» плодить
Т.е. если мне привычна семантика языков, например Java, Python, С++ и Go я должен ломать мозг и перестраивать его восприятие на нечто трудно читаемое(для новичков)? Увольте, но лично мне жалко своего времени для этого. Хоть эти знания за плечами не носить, эти знания лично мне избыточны.
А вот Swift весьма прост, относительно беглого взляда в книжку достаточно, чтобы начать писать код. И пусть это и привлечет много слабых программистов, однако это привлечет не мало и сильных, а также сделает со временем из слабых сильных, которые внесут весьма хорошую лепту в разработку фреймворков и приложений.

Да никто никому не должен
Научиться ставить скобки в нужных местах сможет любой дурак, но ведь суть не в этом. А Swift кстати не так прост на самом-то деле.
Дело не в скобках, а в восприятии.

В каждом языке дьявол кроется в деталях, поэтому тоже самое можно сказать и про Python и про Ruby, и тем более про С.
Важен порог входа и необходимое время на освоение базовых принципов языка.
Как говорится, писать на фортране можно на любом языке. А Swift тут имхо пока мало что меняет, от UIKit и прочих все равно не убежать. Чтобы сделать что-то большее, чем кнопка, textField и hello world в любой среде нужно потратить больше 5 минут на изучение.
А вы пробовали нормально программировать на Obj-C, именно сами? Он попроще С++ будет, а синтаксис — дело привычки, не более. Ничего ужасного лично я не вижу. И более того, не понимаю, раз уж люди не в состоянии программировать на Obj-C, то почему они все вдруг решили, что смогут программировать на Swift? Из-за пары лишних вызовов alloc и init? Из-за квадратных скобок?
Пробовал, но не было такого 5 минут и уже пишу код. Заняло не мало времени, чтобы просто свыкнуться с синтаксисом.
Это было сделано лишь только для общего познания.

И что значит люди не в состоянии программировать на Obj-C? Если я пишу драйвера для видеокарт(к примеру просто, не пишу я их, но задачи часто сопоставимые), это значит я не в состоянии осилить Obj-C? Не нужен он просто, ну аж никак. Но иногда кое-какую UI-ку написать хочется, мне для этого надо изучать нечто кардинально новое?
Да поймите же, нет в Obj-C ничего кардинально нового, особенно для человека, знакомого с С++.
А по поводу изучения особенностей языка или синтаксиса — скажете, что Swift прям изучать не надо? Уж у него то особенностей скорее всего поболе, чем у Obj-C. Простота синтаксиса еще ничего не говорит о самом языке.
Я бы сказал, что сходство с плюсами только в наличии объектной модели (и та сильно разная), да и умные указатели, который в Obj-C сделаны людьми для людей, а не как в плюсах чужими для хищников.
Всё остальное базовое взято из старого лампового С.
Я вот не пробовал долгое время из-за синтаксиса. Смотрел исходники и ужасался. Потом, таки пересилил себя и да, вы правы, язык не такой и плохой. Но если бы был swift, я бы наверное на пару лет назад начал под ios програмы писать. Хотя, он скорее, сложнее ObjC, чем проще. Просто, приятнее гораздно на первый взгляд.
не хотелось бы «таких вот разработчиков» плодить
Конкуренции боитесь? :)

amureki: Статьи переводить! Больше статей и туториалов, хороших и разных! Что-нибудь по созданию виджетов хотелось бы почитать.
да нет, я хотел поиронизировать насчет самой фразы "таких вот"
Как раз, надо. Хотя, текущие iOS программисты могут бояться конкуренции, но в целом для отрасли я вижу следующие плюсы:

1. Приход опытных разработчиков с других платформ: .NET, Java и т.д. Можно сколько угодно рассказывать, что хороший разработчик разберется с любым синтаксисом, но мотивация учить новый язык гораздо выше, когда он приятен со старта.

2. Приход новичков в сферу. Можно сколько угодно рассказывать про засилье быдлокодеров, но платить разработчику большие деньги, чтобы он делал аггрегатор новостей или форму заказа для парихмахерской, неразумно. Многие заказчики просто отказываются от такой затеи. А с приходом массы неопытных разработчиков с желанием попрактиковаться, цены на простые разработки просядут и свое приложение сможет позволить себе и тот, кто раньше считал это неоправданно дорогим.
При этом, правила appstore и то, что swift все-же не php4, позволят держать планку выше откровенного быдлокодерства. На сложные приложения новички влияния оказывать особо не будут, но избавят опытных людей от ваяния очередного приложения по простенькому шаблону.

Пострадают только те, кто научился писать на ObjC простенькие вещи и остановился на этом, не желая развиваться. Ну и ладно, тех кто не развивается, все равно подвинули бы с рынка.
Соглашусь. Ходит байка, что у начинающих программистов от Objective-C начинают вытекать глаза.
А вообще, я очень рад, что добавили Generics и перегрузку операторов. Только не понимаю, почему нельзя было реализовать перегрузку функций.
>почему нельзя было реализовать перегрузку функций.
Потому что это такое же зло, как и множественное наследование?
А зачем так много var, хотя практически везде его можно заменить на let? У вас получается практически тупое переписывание кода ObjC.

Да и вывод типов при присваиваниях в let работает очень читабельно и надежно (особенно при создании новых объектов):

let imgData = NSData(contentsOfURL: imgURL)
Затем что язык только-только вышел и толпа разработчиков, которые последние 5-6 лет программировали на Objective-C и привыкли делать вещи определенным образом, полезла изучать его и выдавать статьи на-гора, используя Swift не столько как новый язык со своими подходами, сколько как большую кучу синтаксического сахара для Objective-C.

Поэтому в ближайшие несколько месяцев (если не лет) нас ждет огромная куча статей с «плохими практиками программирования на Swift».
Обязательно переводить следующие статьи!
Уже понятно, что язык обещает быть перспективным. Нужно хотя бы минимально заполнить нишу для новичков.
Я например писал под WP, только начал изучать iOS и тут Swift выходит. Теперь хочется не просто перейти под кодинг на iOS но и начать знакомство с молодого языка.
Буду ждать новых публикаций.
NSURLConnection уже давно может быть не делегатным, можно убрать эти три жутких метода connection*
Да и NSURLSession почти год назад появился
Кстати, в оригинальной публикации автор использует NSURLSession.
Автор несколько обновил статью, в ближайшее время я приведу перевод в порядок.
Перевод любых статей по Swift — дело нужное, поэтому спасибо вам за него! Но мне кажется, что переводить следующие части не стоит потому, что туториалы более эффективны в видео формате, а не в текстовом. К тому же, к ним не прилагаются исходные файлы проекта, чтобы можно было сразу открыть их в X Code 6 и поиграться.

Намного полезнее будет потратить силы на перевод статей, объясняющих преимущества Swift перед Objective-C, поскольку некоторым может показаться, что преимущества Swift заключаются в основном только в более читабельном синтаксисе языка. В то время как Swift является мультипарадигмальным языком, поддерживающим как ООП, так и ФП! Т.е. можно сказать, что он соотносится с Objective-C, как Scala с Java.

Заинтересовавшимся предлагаю ознакомиться с подробностями в статье "Functional Paradigms in Swift" по ссылке:
http://blog.tackmobile.com/article/functional-paradigms-in-swift/
var err: NSError

var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options:    NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary


Объявили переменную err и не используете её.
Не пойму, раньше такой шлак никто не плюсовал. Если это на Obj-c написать, что поменяется?
И что это за говнокод?

var rowData: NSDictionary = self.tableData[indexPath.row] as NSDictionary
cell.text = rowData[«trackName»] as String

// Обращаемся к ключу artworkUrl60 для получения ссылки на обложку объекта
var urlString: NSString = rowData[«artworkUrl60»] as NSString

Swift нормально типизированный чтобы не писать так. Пример кода — это Objective-C подход на языке Swift.
Ужас один.

Sign up to leave a comment.

Articles