После того, как Swift сделали открытым, представители трех ведущих корпораций — Google, Facebook и Uber – встретились в Лондоне для обсуждения нового языка. Источники The Next Web говорят, что Google рассматривает возможность сделать Swift главным языком для Android, в то время как Facebook и Uber также намереваются отвести Swift главные роли в своих разработках.
Android сейчас поддерживает Java как главный язык, и, по данным источников, Swift не должен будет полностью заменить ее, по крайней мере, на начальном этапе. Просто продолжающиеся судебные разборки с Oracle заставляют Google искать альтернативы. Swift является открытым (open source) языком и это значит, что Google может принять его для своих разработок, также не меняя своей открытой структуры.
Может ли Google сделать это?
Рожденный в Apple как замена Objective-C, Swift быстро обрел популярность среди разработчиков. Язык был представлен на WWDC 2014 и уже поддерживается IBM, работает в Lyft, Pixelmator и Vimeo, которые переписали на нем свои приложения.
Хотя Swift и не переносим между платформами. Так, Android как минимум понадобиться среда выполнения для Swift – и это только для начала. Google также потребуется изменить все свои стандартные библиотеки для Swift, а также внедрить поддержку языка в API и SDK.
Например, некоторые низкоуровневые API Android используют C++, и Swift не может к ним обращаться. Все это надо будет переписывать. Swift также не сможет использовать и программные вызовы более высокого уровня, их придется переделывать с Java.
Однако, использование Swift в Android не невозможно. В прошлом году разработчик Ромен Гойе работал с Swift в Android – и добился некоторого успеха. Хотя это было задолго до того, как Swift перешел в разряд open source, это показывает, что такая работа может быть проделана. Он использовал Android NDK, который позволяет реализовывать использование других языков в Android.
Все говорит о том, что Google стоит перенаправить свои усилия с Java на Swift. Если компания захочет, вполне возможно реализовать это без ущерба открытости или помех для разработчиков.
Kotlin
Источники издания также упоминают, что одним из рассматриваемых языков стал Kotlin.
Как и Swift, Kotlin это объектно-ориентированный язык с акцентом на безопасности. В отличие от Swift, он работает с Android Studio, средой разработки Google. Препятствием, однако, является медленная скорость его компиляции.
С другой стороны, Kotlin позиционируется как язык, «работающий везде, где работает Java», и предлагающий бесшовную поддержку для проектов, в котором соединен он и Java.
Для Google будет гораздо проще взять Kotlin и использовать его в Android, но для разработчиков это может быть сложным переходом.
Facebook и Uber
Интерес Facebook в Swift основан на его технической инновационности. Преимущество языка в том, что он может работать как в приложениях, так и на серверах. Для такого проекта как Facebook это важно – приложения и сервера смогут без проблем «общаться», что позволит компании более широко развивать свои API.
Что касается Uber, то тут все немного проще. У платформы есть много компонентов (приложения, сервера, API), но примером тут может послужить переход Lyft на Swift. Перевод приложений Lyft на новый язык занял много сил и средств, однако в результате приложения стали легче, гибче и их стало проще поддерживать. Неизвестно, насколько в бэк-енде Lyft использует Swift, но компания в текущих приложениях использует его очень широко.
Когда возможен переход на Swift?
Короткий ответ: не очень скоро. Причина? Android.
Swift быстро набирает популярность. Это один из самых быстрорастущих языков, по данным GitHub он сейчас на 11 месте по популярности. Спрос на разработчиков, знающих Swift, также растет, что как минимум говорит о том, что все эти три компании должны изучить его более внимательно.
Переход Google на Swift может быть долгим, компании надо будет переписать все сервисы, приложения и API в Android. Google также придется возглавить поддержку Swift в Android. Так или иначе, Google уже начал отказываться от «привкуса Oracle». Сейчас в Android используется Open JDK, а не проприетарные Java API, что уже определяет дальнейшую жизнь после Java. Переговоры в Лондоне были разведкой, Google пока активно не отказывается от Java. Переход на Swift был бы большим делом, с точки зрения скорости и безопасности, к тому же план развития Swift намекает на то, что его будет не так уж и трудно использовать на других платформах, особенно когда дело касается C++.
Хотя Kotlin является альтернативой, язык пока находится на ранней стадии развития и не обладает таким сообществом, которое есть у Swift.
У Facebook и Uber похожие по объемам задачи, если говорить о Swift, но главным тут остается Google с Android. Если планы на Swift и правда большие (как в плане приложений, так и серверов), то поддержка Android тут является неотъемлемой их частью.
Переход на Swift имеет мало смысла для компаний, если только он не осуществляется полностью, но, вероятно, это не так страшно, как кажется. Сервисы, такие как Perfect, доказали, что серверный Swift уже готов к использованию, и возможно инженеры Facebook (может даже из команды Parse) работают над этим.
IBM также работает на серверными функциями Swift.
Но ждать скорых анонсов от Google, Facebook или Uber не стоит. У двух первых компаний вскоре будут большие конференции для разработчиков, но никаких анонсов, связанных со Swift, на них скорее всего не будет.