Всё, что нужно знать про Swift

Jun 05, 2014 16:11


Фрагмент презентационного слайда с WWDC
В рамках знаменитой конференции WWDC для разработчиков программного обеспечения продуктов Apple, компания представила новый язык программирования Swift. stepancheg объясняет, как он устроен, а justy-tylor делится сомнениями относительно его целесообразности.
Пользователь stepancheg пишет:
Всё, что вам надо знать про Swift, чтобы с умным видом поучаствовать в разговоре.

Swift - это Objective C с нормальным синтаксисом. C# с ARC вместо GC.

Есть классы и структуры (как в C#). Классы передаются по указателям, ARC считает, когда объекты можно удалять. Есть слабые ссылки. Всё, как в Objective C. Есть instanceof, только называется короче, и использовать удобнее.

Есть структуры, они копируются. Указателей в языке нет.

Swift использует Objective C runtime. Это значит, что всё API, которое за 30 лет написала Apple, можно продолжать использовать.

По-мелочам:

- локальный вывод типов, сигнатуру функций надо указывать, хорошо
- nullable-типы как в Kotlin - это хорошо (и, вероятно, C#, не настолько хорошо знаю C#)
- нормальный синтаксис для методов, а не квадратные скобки
- extension functions как в C# - хорошо
- есть простенький pattern matching, tuples
- синтаксический сахар для массива и словаря, удобно
- integer overflow по-умолчанию - ошибка - хорошо, безопасность
- есть перегрузка операторов, и даже можно писать нестандартные операторы (типа +++). Один из авторов Clay (в котором тоже можно сделать любую последовательность знаков препинания оператором) ушёл в Apple, вероятно, это он такое туда протащил.
- если я правильно понял, тайпклассов не будет, а будут интерфейсы, как в Java. Увы.
- по всей видимости, в Swift не будет упячки с заголовочными файлами и реализацией, и это очень-очень хорошо
- вы не сможете ещё несколько месяцев попробовать Swift, если вы не купили доступ за 100 долларов

Swift остаётся таким же медленным языком программирования, как и Objective C, не замена C++, не конкурент Rust. Однако большинству разработчиков этого будет достаточно, и это точно гораздо удобнее, чем Objective C. С чем я Apple и поздравляю. Обсудить в комментариях у автора
А вот justy_tylor считает:
Прочитал документацию нового эппловского языка Swift - https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html

Зрелище бессмысленное, на уровне прочих дартов и тайпскриптов. Главный рецепт - надёргать фишек попроще из мощных языков в свой особый синтаксис, а затем впарить хипстерам, которым стрёмно вылезать из привычного Objective-C гадюшника в мир взрослых.

Сейчас такое время, что любой новый язык "для написания кода" будет плохим. Нужны языки "для не-написания кода". Потому что даже те, которые всё ещё "для написания", двигаются в этом направлении. В Haskell делаются EDSL на комбинаторах, в Scala и Clojure идут по пути макросов. И если в новом языке такие вещи оказываются не учтены, то получается уже не прогресс а скучная деградация. Обсудить в блоге автора

main, s_технологии, science

Previous post Next post
Up