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

Наглядный обзор текущего состояния Swift 3 можно найти на Странице статуса предложения по эволюции Swift.

Итак, без лишних слов, вот изменения в Swift 3, которые меня больше всего волнуют.

SE-0099 — Условия реструктуризации

Этот! Тысячу раз это!

В прошлом у меня было так много возможностей использовать одно простое, читаемое «защитное» выражение, связанное с предложением «где», и отбрасывать его, потому что компилятор просто не понял моего намерения. Все сводилось к сложным и часто запутанным правилам работы условных предложений. (на самом деле, я должен винить не компилятор, а себя ;))

SE-0117 — Разрешить различать публичный доступ и публичную переопределяемость.

На первый взгляд это казалось довольно «грязным» решением проблемы, с которой я тоже столкнулся, работая над быстрым фреймворком. Но, в конце концов, он выполняет свою работу, то есть дает мне, как разработчику, инструменты, необходимые мне для создания понятного и красивого API.
Тем не менее, я ожидаю, что Swift 4 продолжит работу в этой области.

SE-0046 — установить согласованное поведение меток по всем параметрам, включая первые метки.

Как я упомянул ранее, мой подход к этому таков: принудительно использовать метку первого параметра. Swift 3 сделает это поведением по умолчанию. #nomoretwofoldfirstparameterlabelsinswif ;)

SE0086 — удаление префикса NS в Swift Foundation, SE0005 — улучшенный перевод API-интерфейсов Objective-C в Swift

Эти два действительно заставляют код Swift сиять!

И чтобы объяснить, почему и как, я бы хотел, чтобы вы посмотрели это видео WWDC16:



Просто взгляните на пример CoreGraphics  — оба эти предложения по развитию имеют огромное влияние и, похоже, работают правильно.

Удачного стрижа!