Ques/Help/Req Python vs. Go: почему компании переходят от первого ко второму

XakeR

Member
Регистрация
13.05.2006
Сообщения
1 912
Реакции
0
Баллы
16
Местоположение
Ukraine
Python и Go (также известный как Golang) — это два разных языка программирования, каждый со своими уникальными особенностями и применениями. Если вы в ходе работы встречали разработчиков, мигрирующих с первого ЯП на второй, и задумываетесь о переходе, то эта статья для вас. Вот некоторые ключевые различия между языками:

1. Создание и разработка​


Python был создан в 1980-х как интерпретируемый язык, в котором код читается не самой машиной, а специальной предваряющей программой – интерпретатором. Go, в свою очередь, создали в Google в 2007 году. Это компилируемый язык, нацеленный быть быстрее Python. Во втором случае машина “переводит” код самостоятельно, что и добавляет скорости.

Python vs. Go: почему компании переходят от первого ко второму0


Создатели языка (слева направо): Роберт Гризмер, Роб Пайк, Кен Томпсон на Google I/O, 2012

2. Производительность​


Согласно статьe doit.software, Go быстрее в 30 раз. Привычная построчная обработка записей – вырезка подстрок, удаление разметки и т.д. – часто “вешают” питонический ноутбук на все два часа, пока условный Colab хранит сессию открытой. Golang здесь даст приятный прирост. В моем случае вместо 40 минут на предварительную подготовку данных потрачено 27 минут. Инвестиция временем создателей окупается сторицей у пользователей ЯП.

3. Параллелизм​


Go имеет встроенную поддержку конкурентности и параллелизма с использованием goroutines (легковесные потоки), что делает его отличным выбором для разработки многопоточных приложений. Python также может поддерживать параллелизм, но это обычно сложнее реализовать и часто подвержено «Global Interpreter Lock» (GIL), то есть пресловутой блокировке одним потоком.

4. Синтаксис и удобство использования​


Python известен своим простым и понятным синтаксисом, который делает его особенно полезным для новичков в программировании. Go также стремится к простоте и предсказуемости, но его синтаксис может быть менее интуитивным для новичков.

Python vs. Go: почему компании переходят от первого ко второму1


Переменная a эквивалентна i; b – j.

Сравните, сколько строк потребовалось для вывода суммы двух переменных в случае Python и Go на изображении выше. Но все же легкочитаемостью кода жертвуют, чтобы пользователь получил возможность взаимодействовать с продуктом, завязанным на больших данных.

5. Сообщество и экосистема​


Python имеет одно из самых больших и активных сообществ программистов с огромным количеством сторонних библиотек и фреймворков. Go также имеет активное сообщество, но оно меньше, чем у Python.

Для сравнения, у Python более 8,2 миллионов активных пользователей (источник – zdnet.com), у Go – 1,1 миллиона (jetbrains.com).

6. Области применения​


Python широко используется в научных вычислениях, анализе данных, машинном обучении и веб-разработке. Если компания занимается развертыванием облачных сервисов, то большее предпочтение отдаст Golang.

Заключение​


На мой взгляд, перед нами только начинает разворачиваться эта интереснейшая битва языков-гигантов. Пройдет еще десяток-другой лет, и мы, скорее всего, увидим еще больший расцвет обоих технологий в разных областях.

В случае моей компании, переход на Golang пока не имеет смысла: с большими данными мы пока не работаем. С нашими датасетами из текста объемом до 3 гигабайт каждый Python справляется достаточно быстро. К примеру, в условиях теста уже пятой по счету ML-модели, классифицирующей обращения пользователей “без учителя”, гораздо проще и быстрее вырезать небольшой слайс, чем при сотом запуске прогонять весь набор данных через какую-нибудь медленную функцию на каждый ряд.

Senior Python-разработчик КРОК, Москва, можно удалённо, По итогам собеседования tproger.ru Вакансии на tproger.ru

В общем, выбирая ЯП, учитывайте объем данных, с которыми работаете, “соприкасается” ли этот код напрямую с конечным пользователем или же остается в рамках, скажем, аналитического проекта. Немаловажно наличие у вас и команды желания осваиваться на новом поприще – такие апгрейды требуют немало времени.


Какой язык будет жив спустя 20 лет?

  • Python
  • Golang
  • Оба останутся на плаву

Написать свой вариант
 
198 217Темы
635 189Сообщения
3 618 417Пользователи
Kai AngelНовый пользователь
Верх