Swift для TensorFlow был впервые представлен на TensorFlow Dev Summit в марте 2018 года. Теперь это открытый исходный код, и будет интересно посмотреть, как он повлияет на то, как инженеры используют TensorFlow, и, конечно же, как может измениться набор инструментов.
Но что именно? Посмотрите видео ниже, записанное на саммите разработчиков TensorFlow, чтобы узнать больше.
Вот что команда TensorFlow сказала о Swift для TensorFlow в подробном посте на Medium.
«Swift для TensorFlow предоставляет новую модель программирования, которая сочетает в себе производительность графов с гибкостью и выразительностью выполнения Eager, уделяя особое внимание повышению удобства использования на каждом уровне стека. Это не просто оболочка TensorFlow API, написанная на Swift — мы добавили в Swift усовершенствования компилятора и языка, чтобы обеспечить первоклассный пользовательский интерфейс для разработчиков машинного обучения».
Почему TensorFlow выбрал Swift?
Это, пожалуй, ключевой вопрос: почему команда TensorFlow решила использовать Swift для этого проекта? Сами коллективы отмечают, что им самим часто задают этот вопрос. Учитывая, что многие функции Swift для TensorFlow могут быть легко реализованы на других языках программирования, возникает резонный вопрос.
Чтобы правильно понять, почему TensorFlow выбрал Swift, нужно вернуться к целям проекта. И они на самом деле довольно просты — команда хочет сделать TensorFlow более удобным в использовании. Объясняют:
«Мы быстро поняли, что наш основной алгоритм извлечения графических программ, основанный на статическом анализе, не будет хорошо работать для Python, учитывая его очень динамичный характер. Это привело нас к необходимости выбрать другой язык для работы, и мы хотели подойти к этому методично».
Пост на GitHub стоит прочитать. Он дает подробное представление о том, как лучше всего оценивать преимущества и недостатки одного языка программирования по сравнению с другим.
Между прочим, команда TensorFlow сообщает, что в финальный список языков вошли Swift, Rust, Julia и C++. Swift в конечном итоге победил — вокруг C++ и Rust были «проблемы с удобством использования», и по сравнению с Julia не только было больше и более активное сообщество, но и гораздо больше похоже на Python с точки зрения синтаксиса.