Python vs. Go: почему компании переходят от первого ко второму
Если вы в ходе работы встречали разработчиков, мигрирующих с Python на Golang, и задумываетесь о переходе, то эта статья для вас.
33К открытий38К показов
Python и Go (также известный как Golang) — это два разных языка программирования, каждый со своими уникальными особенностями и применениями. Если вы в ходе работы встречали разработчиков, мигрирующих с первого ЯП на второй, и задумываетесь о переходе, то эта статья для вас. Вот некоторые ключевые различия между языками:
1. Создание и разработка
Python был создан в 1980-х как интерпретируемый язык, в котором код читается не самой машиной, а специальной предваряющей программой – интерпретатором. Go, в свою очередь, создали в Google в 2007 году. Это компилируемый язык, нацеленный быть быстрее Python. Во втором случае машина “переводит” код самостоятельно, что и добавляет скорости.
2. Производительность
Согласно статьe doit.software, Go быстрее в 30 раз. Привычная построчная обработка записей – вырезка подстрок, удаление разметки и т.д. – часто “вешают” питонический ноутбук на все два часа, пока условный Colab хранит сессию открытой. Golang здесь даст приятный прирост. В моем случае вместо 40 минут на предварительную подготовку данных потрачено 27 минут. Инвестиция временем создателей окупается сторицей у пользователей ЯП.
3. Параллелизм
Go имеет встроенную поддержку конкурентности и параллелизма с использованием goroutines
(легковесные потоки), что делает его отличным выбором для разработки многопоточных приложений. Python также может поддерживать параллелизм, но это обычно сложнее реализовать и часто подвержено «Global Interpreter Lock» (GIL), то есть пресловутой блокировке одним потоком.
4. Синтаксис и удобство использования
Python известен своим простым и понятным синтаксисом, который делает его особенно полезным для новичков в программировании. Go также стремится к простоте и предсказуемости, но его синтаксис может быть менее интуитивным для новичков.
Сравните, сколько строк потребовалось для вывода суммы двух переменных в случае Python и Go на изображении выше. Но все же легкочитаемостью кода жертвуют, чтобы пользователь получил возможность взаимодействовать с продуктом, завязанным на больших данных.
5. Сообщество и экосистема
Python имеет одно из самых больших и активных сообществ программистов с огромным количеством сторонних библиотек и фреймворков. Go также имеет активное сообщество, но оно меньше, чем у Python.
Для сравнения, у Python более 8,2 миллионов активных пользователей (источник – zdnet.com), у Go – 1,1 миллиона (jetbrains.com).
6. Области применения
Python широко используется в научных вычислениях, анализе данных, машинном обучении и веб-разработке. Если компания занимается развертыванием облачных сервисов, то большее предпочтение отдаст Golang.
Заключение
На мой взгляд, перед нами только начинает разворачиваться эта интереснейшая битва языков-гигантов. Пройдет еще десяток-другой лет, и мы, скорее всего, увидим еще больший расцвет обоих технологий в разных областях.
В случае моей компании, переход на Golang пока не имеет смысла: с большими данными мы пока не работаем. С нашими датасетами из текста объемом до 3 гигабайт каждый Python справляется достаточно быстро. К примеру, в условиях теста уже пятой по счету ML-модели, классифицирующей обращения пользователей “без учителя”, гораздо проще и быстрее вырезать небольшой слайс, чем при сотом запуске прогонять весь набор данных через какую-нибудь медленную функцию на каждый ряд.
В общем, выбирая ЯП, учитывайте объем данных, с которыми работаете, “соприкасается” ли этот код напрямую с конечным пользователем или же остается в рамках, скажем, аналитического проекта. Немаловажно наличие у вас и команды желания осваиваться на новом поприще – такие апгрейды требуют немало времени.
Какой язык будет жив спустя 20 лет?
Python
Golang
Оба останутся на плаву
33К открытий38К показов