Go на пороге третьего десятилетия 21 века: язык программирования для искусственного интеллекта и науки о данных

Python появился 30 лет назад, но только через 20 лет получил признание разработчиков. Он колоссально вырос за это время, особенно за последние пять лет и к 2019 году стал вторым по популярности языком программирования.

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

Сейчас самое подходящее время изучить проблемы Python в области разработки систем с искусственным интеллектом (ИИ) и науки о данных и попробовать найти этому языку альтернативу, которой может стать Golang.

Причина популярности Python

Основная причина популярности Python  —  лёгкость освоения. По сравнению с другими языками у него проще синтаксис, поэтому любой желающий может изучить основы Python за несколько часов или дней.

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

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

Проблемы с Python

Скорость

Python  —  это интерпретируемый язык. Отсюда вытекает его самая большая проблема  —  медленное выполнение. В сравнении с другими, компилируемыми языками, такими как C++ и Go, выполнение в Python происходит очень медленно.

Сильно замедляет выполнение и тот факт, что Python  —  это динамически типизированный язык и здесь тип данных переменных присваивается автоматически во время выполнения.

Использование C/C++

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

Глобальная блокировка интерпретатора

Глобальная блокировка интерпретатора Python (GIL) позволяет выполнять только один поток одновременно, улучшая при этом его производительность.

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

Примечание: в реализациях Python, таких как Jython и IronPython, нет GIL (глобальной блокировки интерпретатора). GIL есть только в CPython.

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

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

Go разработали в Google 10 лет назад как язык общего назначения. Рассмотрим его преимущества перед Python и другими языками программирования.

Скорость

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

Вот сравнение Go и Python при тестировании производительности программ. Go почти так же быстр, как C++ и Java. Кроме того, Go намного быстрее компилирует код.

Лёгкость освоения

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

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

Растущая популярность

В опросе, проведенном в Hackearth, в котором приняли участие более 16 000 разработчиков из 76 стран, Go оказался самым востребованным языком программирования 2020 года.

32 % опытных разработчиков и 29 % студентов хотят изучать GO, и это неудивительно.

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

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

Горутины легковесны и требуют всего 2 КБ памяти, поэтому одновременно могут выполняться тысячи горутин.

В Go есть много и других преимуществ.

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

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

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

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

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

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Dasaradh S K: Go Programming Language for Artificial Intelligence and Data Science of the 20s