Go или Python? На самом деле, выбирать между языками лучший достаточно сложно. Каждый язык программирования обладает собственными достоинствами и характеристиками. Это касается всех языков программирования, а не только этих двух.
Другой момент, для чего выбирать Go или Python? Одно дело, когда выбор нужно осуществить для использования в какой-либо программе. В этом случае «в бой» за право выбора вступают такие критерии, как:
производительность в конкретном случае,
наличие библиотек, покрывающих необходимый функционал программы,
масштабируемость программы,
сложность поддержки приложения,
и др.
Совсем другое, когда новички выбирают Go или Python в качестве первого языка для изучения. В этом случае «в бой» за право выбора вступают совсем другие критерии отбора. Например:
легкость в изучении,
востребованность на рынке,
сферы программирования,
наличие сообщества,
наличие документации на родном языке,
зарплата программиста на этом языке,
и др.
Согласитесь, что для новичка совсем не важна будет производительность конкретного приложения на Go или Python. Ему важнее будет понимать, сколько он сможет заработать на своих знаниях. В общем, проведем небольшой сравнительный обзор этих двух языков программирования. А вы для себя решите, какие критерии для вас важны, а какие нет.
Go или Python
Go, он же Golang — это статический, типизированный язык программирования. Его разработали программисты компании Google в качестве альтернативы таким языкам, как C, C++ и Java. Go собрал в себе все лучшее от этих «старших собратьев» и презентует эти возможности с заметной легкостью. Считается, что те, кто знаком с С-подобными языками, легко разберется и с Golang, так как он имеет с ними много общего. Сфера применения его обширна — он применяется везде, где можно применить С, С++, Java, то есть в разработке веб-приложений, серверной части приложений, драйверов и др.
Python — язык общего назначения, который уже долгие годы входит в число самых популярных языков программирования. Вообще, это объектно-ориентированный, интерпретируемый, высокоуровневый язык программирования. Разработан еще в 1991 году, однако популярным стал только в последние 10-15 лет за счет того, что человечество вошло в эпоху искусственного интеллекта. А при работе с искусственным интеллектом Python является языком-лидером. Сфера применения обширна, но основная его деятельность — это искусственный интеллект, машинное обучение, большие данные, серверная часть приложений.
Go или Python: производительность
В сети можно найти результаты тестов различных видов программ на этих двух языках. В общем зачете Go выглядит более производительным, нежели Python, то есть программы на этом языке работают быстрее.
Небольшой список программ, выполняющих разные функции, в которых Go работает быстрее:
бинарный поиск,
сортировка «пузырьком»,
чтение из текстового файла,
обработка HTTP-запроса,
решение уравнения Мандельброта,
решение «проблемы классической механики»,
обработка последовательностей для извлечения нуклеотидных данных.
Go или Python: масштабируемость программ
Масштабируемость программы — это ее способность справляться с повышением нагрузки при текущем количестве ресурсов, а также сохранение производительности при добавлении ресурсов. Возможность масштабировать приложение — это приоритетная черта современных подходов к разработке.
Go изначально был рассчитан для работы в высоконагруженных системах, так как в основе его создания лежат языки из той же области. C, C++, Java не боятся больших нагрузок, и Go заимствовал у них это свойство. На данном языке можно написать масштабное серверное приложение, над которым будут трудиться тысячи программистов.
Python в этом плане уступает, но в нем для масштабируемости приложений есть отличное свойство — параллелизм. Параллелизм означает, что крупные задачи программы можно разбить на более мелкие подзадачи и выполнять их параллельно. Такие подзадачи не потребляют много системных ресурсов, поэтому в большинстве случаев предпочтительны. Таким образом, поток дополнительной нагрузки приложения в Питоне может разбиваться на несколько параллельных подзадач, что не влияет на производительность самой программы.
Параллелизм считается идеальным вариантом для масштабирования программ, поэтому можно сказать, что оба языка в этом плане одинаковы, но используют разные подходы.
Go или Python: принцип работы
Go или Python обладают собственными принципами работы, поэтому и невозможно достоверно их сравнить. Благодаря тому, что у них разные принципы и подходы, эти языки применяются в разных сферах программирования. Как мы уже писали, Go — это больше системное и серверное программирование, а Python — это искусственный интеллект, машинное обучение и анализ Big Data.
Если попытаться сравнить Go и Python для искусственного интеллекта, то Питон, безусловно, будет лидером по всем параметрам. Если попытаться сравнить Go и Python для написания операционной системы, то Go будет безусловным лидером.
То есть комплексно сравнить Go и Python по принципу работы не получится. Если их сравнивать, тогда в каждом конкретном случае.
Go или Python: библиотеки
Библиотеки нужны для расширения функциональности самого языка. Если чего-то не хватает в выбранном языке, тогда находится и подключается нужная библиотека, и на этом все. Поэтому наличие разносторонних библиотек считается явным преимуществом любого языка. В плане наличия библиотек Python однозначно будет впереди, по этому критерию нет смысла сравнивать его с Go.
Вот несколько распространенных библиотек, благодаря которым ценят Python:
Django — для веб-разработки;
Numpy — для обработки сложных математических функций;
TensorFlow — для машинного обучения;
OpenCV — для реализации компьютерного зрения;
Pandas — для работы с big data;
Matplotlib — для анимации и визуализации;
и др.
У Питона библиотек насчитывают несколько сотен. Но даже из списка, приведенного выше, видно их разнообразие в сферах применения. Go не может похвастаться таким обилием. У него есть собственные библиотеки, но все они держат его в неком «функциональном коридоре».
Go или Python: строгость синтаксиса
Питон обладает простым, понятным и читаемым синтаксисом. Его код очень просто читать. Обязательные отступы в синтаксисе заставляют разработчиков писать понятные и читабельные программы. В глобальном смысле это помогает одному разработчику с легкостью читать код другого.
У Go свой подход к реализации синтаксиса. Он по-своему строгий, однако так как он создан на основе С-образных языков, то и синтаксис у него похож на эти языки, поэтому новичкам Go покажется достаточно сложным для понимания. Хотя опытные разработчики утверждают, что его синтаксис не настолько сложный, как у С или С++.
Go или Python: зарплата и востребованность
Зарплата в программировании зависит от нескольких аргументов, таких как:
опыт в программировании;
знание дополнительных инструментов типа GIT, SQL, Linux, английского языка и др.;
месторасположение компании-работодателя;
уровень компании-работодателя;
и др.
Не будем вдаваться в тонкости, но если проанализировать сайт hh.ru, то можно увидеть, что зарплаты у программистов, владеющих этими языками, примерно одинаковы:
Python — это 40-160 тысяч рублей;
Go — это 50-150 тысяч рублей.
Что касается востребованности и количества открытых вакансий, то у Python их намного больше, чем у Go. Однако это объясняется тем, что Go относительно новый язык, который пришел к нам из-за рубежа. Когда Go пришел, Python уже во всю использовался. Если же сравнить «западные» открытые вакансии, тогда можно обнаружить, что открытых вакансий по Go тоже очень много. Поэтому переживать, что Go-разработчик останется без работы, не стоит. Если работы не будет «на месте», тогда можно устроиться дистанционно в любую другую зарубежную компанию.
Заключение
Что выбрать: Go или Python? Каждый из этих языков отлично справляется с работой в своей нише. А это значит, что выбор нужно начинать именно с этого пункта. То есть для начала нужно понять, для чего вам язык и что вы на нем собираетесь писать. Исходя из ответа, уже можно будет выбирать: Go или Python. Причем такой подход касается и новичков. Для начала нужно определиться, в какой сфере вы хотите состояться как программист, а только потом выбирать между языками. Есть вероятность, что вам не нужен будет ни Go, ни Python, а какой-нибудь Java, Kotlin, Swift, JavaScript или PHP.
Python