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 века реализовать свои идеи гораздо лучше, чем любой другой язык.
Читайте также:
- Обработка ошибок в Go
- Сравнение Go и Rust через написание CLI-инструмента
- Использование инверсии зависимостей в Go
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Dasaradh S K: Go Programming Language for Artificial Intelligence and Data Science of the 20s