Свежие веяния и нововведения языка программирования Swift от Apple

Дата публикации:Июнь 16, 2014

Появление нового языка программирования Swift – это первый раз, когда Cupertino серьезно изменили основы своего программного обеспечения после покупки NeXT, который затем, как мы все знаем, превратился в «начинку» Mac OS X. Насколько сильны отличия Swift? И, что более важно – зачем исправлять то, что прекрасно работало?

«Это просто супер, чувак» — такой была первая реакция бруклинского старшего iOS-разработчика Кристофера Уайта после того, как он увидел новость об этом. Уайт – ведущий разработчик приложения Cameo на Vimeo  (а также мой бывший партнер по бизнесу в компании разработки под iOS, расположенной в Уильямсбурге). «Именно этого и ждали многие разработчики», ответил он мне. «Хотели получить что-то больше похожее на скриптовый язык».

Такие ожидания обусловлены тем, что все больше и больше программистов открывают для себя веб-языки. Уайт отметил, что скриптовый синтаксис Swift модернизирует среду разработки под Apple, которая теперь станет более знакомой для веб-девелоперов. «Тем самым снижается порог входа для тех, кто пришел из скриптовой среды», говорит Уайт, что, естественно, помогло бы привлечь массу веб-разработчиков – особенно разработчиков, которые используют для написания кода PHP или Perl. «Их приложение Hello World – это одна строка, что очень даже напоминает скриптовый язык», отметил Уайт. «Таким образом, они просто модернизировали стиль».

Есть также и улучшения в плане производительности, однако Уайт заметил, что возможность песочницы – «где вы можете выполнять разные вещи в Playgrounds, меняя код на лету без повторной компиляции» — является еще большим благом. «В целом, синтаксис очень напоминает Javascript – переменные не имеют жесткой привязки к типу», указал Уайт. Он называет Swift смешением скриптового языка со всеми преимуществами компилируемого языка. «Swift, естественно, является самостоятельным языком, однако он эксплуатирует тот стиль программирования, к которому привыкли многие люди – особенно бэкэнд-разработчики».

Есть и другой аспект введения Swift – не отставать от своих конкурентов. «По большей части компания Apple сейчас старается усовершенствовать свои языки и добиться технического доминирования, конкурируя с Google, у которого есть Go», рассуждает Уайт. «Это знак. Вы сделали свой собственный язык, Google? Мы сделали свой язык тоже, придурки!»

Однако изменения в Swift не являются целиком и полностью положительными — по крайней мере, на первый взгляд. Objective-C был очень многословен, т.е. его было легко читать. «Swift, определенно, выглядит менее многословным, тогда как Objective-C – ужасно многословный! Вы можете практически всегда следовать за кодом в Objective-C, поскольку имена методов очень детализированы. Однако в Swift вам понадобится сначала ближе ознакомиться с языком, перед тем как программировать на нем. Особенно если это – написанный кем-то код».

Дополнительным препятствием является кривая обучения. «Это займет не так много времени», говорит Уайт. Разработчики будут задаваться вопросом: начну ли я изучать Swift или сделаю счастливым своего менеджера проектов? «Большинство людей собираются изучать этот язык по ночам и на выходных, поэтому, ели они получат задание, они могут справиться с ним, написав код на Swift», отмечает Уайт. Смешивание кода также означает и переключение контекста, о чем рассказал Уайт: «Сообществу потребуется некоторое время, чтобы смириться с этим. Прежде, чем крупные предприятия примут этот язык, они захотят увидеть больше инженеров, использующих его».

Тем не менее, Уайт решил углубиться в данный язык. «Я обычно использую все новое от Apple и не смотрю назад, поскольку оглядка назад – это не путь Apple. Изучить Swift очень полезно, поскольку именно он является дорогой в будущее для Apple».

Чем действительно уникален Swift? «Тем, что Apple долгое время держали в секрете – возможностью выполнять вещи удивительным образом», отметил Уайт. Мы хотели бы получить большую определенность в этом вопросе, и поэтому мы приступаем к быстрому обзору руководства по Swift, которое было представлено Apple, и которое покажет нам, чем Swift отличается от Objective-C и других C-подобных языков.

Чем Swift отличается от C и Objective-C

Первое, что вызвало наш интерес – это возможность использования смайликов emoji в вашем коде.

3031400-inline-p41

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

3031400-inline-swift-pg-44

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

3031400-inline-swift-pg-44-2

Операторы в Swift упрощают выполнение арифметических действий, а также более продвинутых вычислений с плавающей точкой. Это поможет вам избежать небрежных ошибок при записи этих операций.

3031400-inline-swift-pg-76

3031400-inline-swift-pg-71

3031400-inline-swift-pg-73

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

Примечание ниже напоминает обращение к веб-разработчикам. Традиционно в Objective-C отдельные экземпляры типа называются «объектами», как в «объектно-ориентированном программировании», откуда и название Objective-C. Однако в объектно-ориентированном программировании на JavaScript, к примеру – достаточно новом паттерне программирования для веб-разработки – эти отдельные объекты называются экземплярами. Apple решили воспользоваться в Swift родным для web-среды «словарем».

3031400-inline-swift-pg-221

Подсвойствами экземпляра также гораздо проще управлять:

3031400-inline-swift-pg-226

Объектное наследование в Swift также работает традиционным образом, что спасет веб-разработчиков от проблем в ходе отладки, когда люди пытаются понять, почему их объект/экземпляр наследовал свойства из ниоткуда.

3031400-inline-swift-pg-328

Источник: fastcolabs.com

Поделиться

4 комментария

  1. vovasik says:

    для чего вообще он нужен веб разработчику, не для чего.

    • Дмитрий Алёшин says:

      ну какие-нибудь веб-приложения писать с полезным функционалом :)

  2. Статья хорошая, автор молодец поработал для нас а славу.
    Жду новых знаний для себя)

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.