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



Книга 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 века реализовать свои идеи гораздо лучше, чем любой другой язык.


601   0  

Comments

    Ничего не найдено.