Apple пошла на потерю обратной совместимости в Swift 3.0

20 сентябрь, 2016 - 16:45
Apple пошла на потерю обратной совместимости в Swift 3.0

В блоге, где компания Apple анонсировала релиз Swift 3.0, она сообщила, что эта версия стала переломной для языка, призванного заменить Objective-C. Разработчики использовали её, чтобы произвести первую полную ревизию кода с тех пор как в декабре 2015 г. Swift стал проектом Open Source.

При этом, Apple намеренно сделала Swift 3.0 несовместимым с прежними версиями. Как и в случае с Python 3, это порождает много проблем, но в долгосрочной перспективе язык только выиграет, став более удобным инструментом кросс-платформенной разработки приложений.

Для Python потеря обратной совместимости сделала переход от Python 2.x к 3.0 весьма болезненным, так как за бортом оставалась огромная масса наработанного программного кода. Swift гораздо более молодой язык, поэтому такая ревизия для него менее проблемна.

В числе главных изменений, Apple называет улучшенную трансляцию прикладных интерфейсов Objective-C API в Swift: транслированный код будет легче читаться и будет более похож на «родной» код Swift. Весь код, который был импортирован раньше, не сможет работать в Swift 3, его потребуется импортировать повторно. Кроме того, большинство компонентов стандартной библиотеки получили более компактные имена, из-за чего всем, знакомым с кодовой основой Swift придётся переучиваться.

Разработчики имели несколько месяцев на ознакомление со всеми особенностями синтаксиса и поведения языка в preview-редакции Swift 3.0. Но все решения Apple для облегчения перехода, такие как инструменты миграции кода в версии 8.0 среды XCode IDE, относятся только к её собственной реализации этого языка.

Что произойдёт с портами Swift на Linux и (неофициальным) на Windows пока никому неизвестно, впрочем, эти версии далеко не так распространены как основные — для MacOS/iOS.