Американская образовательная некоммерческая организация Kahn Academy завершила 500 000 строк кода на языке программирования Google Go для замены своего внутреннего сервера, ранее написанного на Python 2.
Кевин Дангур, главный архитектор программного обеспечения в Kahn Academy, подробно описывает большой переход организации от Python 2 в рамках проекта под названием Goliath.
Python 2 подошел к концу в 2020 году, поэтому организация готовилась к большой миграции — возможно, на Python 3 или другой язык. В конце концов, он остановился на Go — быстром языке, который используется в Google в облачных системах.
SEE: Самые популярные языки программирования и где их изучить
«Переход с Python 2 на 3 — непростая задача», Дангур заметил в 2019 году. Его команда посчитала Kotlin «привлекательной альтернативой», но в конечном итоге остановилась на Go, который, по мнению его инженеров, дает значительное преимущество в производительности по сравнению с Python 3.
«Как люди, пишущие код, мы можем выполнять итерации быстрее благодаря к молниеносно быстрому времени компиляции Go. Кроме того, члены нашей команды имеют многолетний опыт и мускулистую память, построенную вокруг множества различных редакторов. Go лучше поддерживается, чем Kotlin, большим количеством редакторов », — отметил он тогда.
Теперь, когда в разработке находится полмиллиона строк кода Go, Dangoor предоставила обновленную информацию о миграции Kahn Academy на Go для своих серверных служб.
«В целом инструменты Go — это фантастика», — пишет Дангур. «Компилятор работает быстро, и наличие форматирования, являющегося частью стандартной цепочки инструментов, помогает избавиться от большинства разговоров о форматировании. Хотя я все еще вижу в Интернете недовольство модулями Go, они работают лучше, чем предыдущие подходы к управлению пакетами в Go, а на данный момент
Google начал использовать Go внутри компании в 2007 году и выпустил Go версии 1.0 в 2012 году. Хотя это один из 20 самых популярных языков, год за годом опросы разработчиков Go показали, что Основная жалоба — отсутствие универсальных или универсальных типов.
Команда Дангура также требует дженериков в Go.
«В большинстве случаев писать код Go без общих типов — это нормально. В большинстве случаев но бывает много случаев, когда мы пишем код внутренней библиотеки или даже просто работал с ломтиками, когда мы чувствовали их отсутствие », — пишет он.
В начале этого года группа разработчиков Go выпустила предложение о включении универсального программирования, которое позволило бы разработчикам писать функции и структуры данных, в которых некоторые типы не были указаны позже. Он может появиться к концу 2021 года в следующем выпуске Go.
SEE: Что такое гибкая разработка программного обеспечения? Все, что вам нужно знать о том, как создавать лучший код и быстрее
Go не идеален, но некоторые инженеры из команды Дангура считали, что меньшее количество языковых функций Go, чем Python, сделало код Go более согласованным и более быстрым для чтения. Это может быть полезно для будущих программистов, которые поддерживают кодовую базу Go.
«Мы хотим писать немного меньше кода, и возможности, которые мы получаем с помощью дженериков, помогут в этом», — отмечает он.
Подчеркивая преимущество Go по сравнению с Python в скорости, Дангур указывает на класс из 1000 студентов, загрузка которого на Python может занять 28 секунд, а в Go — всего четыре секунды. Он сказал, что хотя Go «в целом более подробен», чем Python, он быстр, инструментарий надежен и хорошо работает в производственной среде.