Python или Go: какой язык лучше применять в ИИ и науке о данных?

Python или Go: какой язык лучше применять в ИИ и науке о данных?

История Python началась в конце 1980-х, но признание айтишников он завоевал всего лет 10 назад. С тех пор язык растет колоссальными темпами, и в 2019 году ему удалось достичь второго места по популярности.


Python стал главным инструментом программистов, которые занимаются Data Science, AI и Machine Learning. И в ближайшем будущем он вряд ли перестанет доминировать в этих сферах. Тем не менее, позиция Python может пошатнуться из-за некоторых его недостатков, особенно выделяющихся на фоне новых перспективных языков. 


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


Секрет популярности Python

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


Так как в стандартной библиотеке этого языка есть почти все необходимое, разработчики чаще всего возвращаются к нему и после изучения других языков вроде C++ и Java.


Таким образом, Python – это идеальный вариант для начинающих, ведь разработка на нем продуктивная и при этом максимально простая.



Недостатки Python

Низкая скорость

Интерпретируемый характер языка является причиной его самого главного минуса — медленного выполнения. По сравнению с остальными, компилируемыми языками, например, C++ и Golang, здесь выполнение происходит слишком медленно.


Снижает скорость выполнения и то, что Python относится к динамически типизированным ЯП, т.е. тип данных в нем присваивается всем переменным автоматически в процессе выполнения, тем самым замедляя его.


Применение C или C++

Чтобы решить эту проблему, разработчикам приходится дополнительно использовать другие языки. Для повышения скорости чаще всего используют библиотеки вроде Tensorflow и Numpy, частично написанные на C/C++.


Отсутствие многопоточности

Global Interpreter Lock дает возможность выполнять лишь 1 поток одновременно, тем самым улучшая производительность. Т.е. в Python на самом деле нет настоящей многопоточности.


Примечание: GIL присутствует только в версии CPython, в Jython глобальной блокировки интерпретатора нет, как и в IronPython.



Почему именно Go?

Golang — это ЯП общего назначения с открытым исходным кодом, предназначенный для создания простого, надёжного, качественного и эффективного ПО.


Он был разработан в Google в ноябре 2009 года.


Скорость

Так как Go — это компилируемый язык со статической типизацией, выполнение в нем происходит в разы быстрее. И для этого ему не приходится заручаться помощью других языков, как в случае с Python.


Здесь вы можете познакомиться со сравнением Golang и Python по результатам тестирования производительности софта. Обратите внимание, что по скорости Go недалеко ушел от Java, да и C++ он уступает не сильно. А еще Go нужно гораздо меньше времени для компиляции кода.


Простота в освоении

Синтаксис Go несложный и похожий на C. Поэтому его можно легко выучить, особенно если вы уже владеете основами C/Java.


Начинающим советуем, прежде всего, посмотреть интерактивный тур-экскурсию A Tour of Go. Также по ссылке вы можете ознакомиться с официальной документацией языка.


Рост популярности

Hackearth провел опрос больше 16 тысяч разработчиков из 76-и стран мира, и Go оказался наиболее востребованным ЯП в 2020 году. Его хотят изучить 32% квалифицированных разработчиков и почти 30% начинающих/студентов, что вполне ожидаемо.



Параллельное выполнение

Вот мы и подобрались к одной из наиболее сильных сторон языка Go. Параллельное выполнение в нем обеспечивается горутинами – функциями, способными работать одновременно.


Горутины просто запускаются и очень легковесны (им нужно лишь пару килобайт памяти), поэтому параллельно могут выполняться хоть 1000 горутин.


Почему Go отлично подходит для разработчиков в сфере ИИ?

Несмотря на то, что Go не обладает особенными преимуществами для исследователей искусственного интеллекта и Data Science, этим специалистам все равно нужно начинать использовать именно его. Почему? Сейчас объясним, но сначала вернемся к Python.


Python был создан 3 десятка лет назад, и не для того, чтобы писать на нем алгоритмы Machine и Deep Learning или визуализировать данные. Сейчас Python используют с этой целью лишь потому, что разработчики так привыкли изначально, ведь это простой язык, дающий им возможность создавать те программы, которые они хотят создавать.


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


Таким образом, для исследований AI и Data Science следует применять именно Go: он позволит разработчикам воплощать свои идеи в жизнь намного лучше, чем если они будут использовать любой другой ЯП.

()
Количество показов: 3
8 декабря 2020

Возврат к списку