Перейти к содержимому

Почему лучше выбрать go чем python

  • автор:

Python vs. Go: почему компании переходят от первого ко второму

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

Обложка поста Python vs. Go: почему компании переходят от первого ко второму

Python и Go (также известный как Golang) — это два разных языка программирования, каждый со своими уникальными особенностями и применениями. Если вы в ходе работы встречали разработчиков, мигрирующих с первого ЯП на второй, и задумываетесь о переходе, то эта статья для вас. Вот некоторые ключевые различия между языками:

1. Создание и разработка

Python был создан в 1980-х как интерпретируемый язык, в котором код читается не самой машиной, а специальной предваряющей программой – интерпретатором. Go, в свою очередь, создали в Google в 2007 году. Это компилируемый язык, нацеленный быть быстрее Python. Во втором случае машина “переводит” код самостоятельно, что и добавляет скорости.

Python vs. Go: почему компании переходят от первого ко второму 1

Создатели языка (слева направо): Роберт Гризмер, Роб Пайк, Кен Томпсон на Google I/O, 2012

2. Производительность

Согласно статьe doit.software, Go быстрее в 30 раз. Привычная построчная обработка записей – вырезка подстрок, удаление разметки и т.д. – часто “вешают” питонический ноутбук на все два часа, пока условный Colab хранит сессию открытой. Golang здесь даст приятный прирост. В моем случае вместо 40 минут на предварительную подготовку данных потрачено 27 минут. Инвестиция временем создателей окупается сторицей у пользователей ЯП.

3. Параллелизм

Go имеет встроенную поддержку конкурентности и параллелизма с использованием goroutines (легковесные потоки), что делает его отличным выбором для разработки многопоточных приложений. Python также может поддерживать параллелизм, но это обычно сложнее реализовать и часто подвержено «Global Interpreter Lock» (GIL), то есть пресловутой блокировке одним потоком.

4. Синтаксис и удобство использования

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

Python vs. Go: почему компании переходят от первого ко второму 2

Переменная a эквивалентна i; b – j.

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

5. Сообщество и экосистема

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

Для сравнения, у Python более 8,2 миллионов активных пользователей (источник – zdnet.com), у Go – 1,1 миллиона (jetbrains.com).

6. Области применения

Python широко используется в научных вычислениях, анализе данных, машинном обучении и веб-разработке. Если компания занимается развертыванием облачных сервисов, то большее предпочтение отдаст Golang.

Заключение

На мой взгляд, перед нами только начинает разворачиваться эта интереснейшая битва языков-гигантов. Пройдет еще десяток-другой лет, и мы, скорее всего, увидим еще больший расцвет обоих технологий в разных областях.

В случае моей компании, переход на Golang пока не имеет смысла: с большими данными мы пока не работаем. С нашими датасетами из текста объемом до 3 гигабайт каждый Python справляется достаточно быстро. К примеру, в условиях теста уже пятой по счету ML-модели, классифицирующей обращения пользователей “без учителя”, гораздо проще и быстрее вырезать небольшой слайс, чем при сотом запуске прогонять весь набор данных через какую-нибудь медленную функцию на каждый ряд.

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

Следите за новыми постами по любимым темам

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

GO vs Python: Когда Вам Нужно Выбрать Только Один.

Если вас всегда интересовало противостояние GO vs Python, то вы пришли в правильное место. Узнайте, что лучше GO vs Python.

Обновлено: June 02, 2023

GO vs Python: Когда Вам Нужно Выбрать Только Один.

Если вас интересует программирование, и вы хотите начать изучать его, то есть шанс того, что вы уже встречали множество статей по сравнению языков. Такие темы как GO vs Python (или любой другой язык программирования) всегда были популярны на протяжение уже довольно длительного времени. Но почему? Что же, проще говоря подобные темы очень любимы как экспертами, так и новичками индустрии. Ветераны в программирование могут легко сравнить языки программирования и выделить из этого полезную информацию, тогда как новички могут использовать данные статьи для выбора подходящего для них языка программирования. Именно поэтому в данном руководстве мы расскажем, что лучше Python или Go.

Для начала мы расскажем о каждом из языков в отдельных разделах. В таком случае у вас будет возможность узнать основные аспекты каждого из языков. Позднее мы поговорим об их различиях, а как только определим их точки соприкосновения, то наконец проведём сравнение Python vs GO.

Введение

Очень важно узнать как можно больше базовой, фундаментальной информации о Golang и Python перед тем как мы начнём проводить сравнение GoLang vs Python. Как только мы разберём каждый из них в отдельности, вы станете лучше понимать слабые и сильные стороны языков. Итак, давайте начнём с языка GO.

GO

Go vs Python

GO (также известный как Golang) – это статически типизированный язык программирования, созданный Робертом Гризмером и его двумя коллегами – Кеном Томпсоном и Робом Пайком. Статически типизированный язык означает то, что его написание проверяется перед запуском программы, в отличие от динамически типизированного языка, который делает это после.

Главной идеей создания GO стало улучшение продуктивности программирования. Язык был создан в Google и по сей день он используется компанией на повседневной основе. Несмотря на то, что разработка Golang велась с 2007 года, широкой публике он стал доступен только лишь в 2012.

Ещё одно особенностью языка GO является то, что его очень легко выучить и понять. Причиной этому является небольшой и простой синтаксис – нечто, что тяжело назвать обыденным в современных языках программирования. Более того, на GO очень сильное влияние оказал язык C – эти языки имеют много общего, но GO старается улучшить некоторые аспекты C. С учётом сказанного, стоит отметить, что если вы знакомы с языком C, то синтаксис Golang для вас не должен стать проблемой.

Другой особенностью Golang можно назвать (хотя в противостоянии GO vs Python этот фактор присутствует у обеих сторон) его производительность и скорость работы. Поскольку GO компилируется в машинный код, то это позволяет языку превзойти многие другие популярные варианты. Однако важно отметить, что скорость в последнее время стала не таким важным фактором, каким она была раньше. В наши дни мощные процессоры способны компенсировать медленную скорость некоторых языков. Именно поэтому “быстрый” язык программирования уже не вызывает такого восторга в нынешней среде программирования. Хотя если говорить только о самом языке, то это всё равно является важным аспектом.

Итак, теперь у вас должно появиться базовое представление о языке GO и некоторых его аспектах. В продолжении нашего сравнения GO vs Python, давайте перейдём к Python.

Python

Go vs Python

Python – это высокоуровневый язык программирования, который появился ещё в далёком 1980 году. Он был создан человеком по имени Гвидо ван Россум и являлся объектно-ориентированным языком программирования с самого первого дня своего существования.

Python, являясь высокоуровневым языком программирования, зарекомендовал себя в качестве простого для изучения и использования языка. На самом деле это является его основополагающим концептом – поставить читабельность превыше всего остального. Высокоуровневые языки программирования предлагают очень простой синтаксис, да и в процесс программирования вовлечено не так много НАСТОЯЩЕГО кодинга – всё основано на терминах схожих с английским языком.

Объектно-ориентированное программирование также стало чем-то вроде нормы, когда дело касается языков кодинга. Такой тип программирования фокусируется на объектах, классах, функции инкапсуляции, абстрагировании данных, наследовании и нескольких других основных концепциях. Среди прочих вещей (и здесь их довольно много) объектно-ориентированное программирование позволяет разработчикам повторно использовать определённые части их проектов или даже целые проекты для других обязанностей на их работе.

Несмотря на то, что многие статьи по сравнению GO vs Python говорят о Python или более привычном нам Питон как о языке веб-разработки, это не совсем так. Да, Python часто используется для веб-разработки, но он также отлично подходит для разработки приложений на базе LInux. Кроме того, с течением времени Python получил широкое распространение среди научных кругов.

Итак – теперь вы знаете больше про пару языков Go Python. Это послужит для вас основой для нашего следующего раздела. Давайте теперь поговорим об основных различиях между двумя языками программирования. Как только мы разберёмся с этим, то приступим к настоящему сравнению GO vs Python.

Самые Полюбившиеся Статьи

Ищете более подробную информацию по какой-либо связанной теме? Мы собрали похожие статьи специально, чтобы вы провели время с пользой. Взгляните!

Что Такое Дополненная Реальность: Разбираемся в Работе AR

Что Такое Дополненная Реальность: Разбираемся в Работе AR

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

How to become a teacher: teacher in classroom

Как Стать Учителем: Со Степенью и Без Неё

Мечтаете стать преподавателем? Узнайте, как стать учителем со степенью и даже без неё, а также быть частью сообщества учителей.

Python Или C++: Что Лучше? Давайте Узнаем!

Python Или C++: Что Лучше? Давайте Узнаем!

После прочтения этой статьи у вас сложится полное понимание того, какой язык программирования вам лучше выбрать Python или C++.

GO vs Python – В Чём Различие?

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

Другим важным отличием в споре GO vs Python всегда являлось их назначение. Python чаще всего связывают с веб-разработкой и управлением приложений на базе Linux. Golang, в свою очередь, чаще всего считается в качестве системного языка. Системными языками называют те, которые используются для создания и разработки самих операционных систем, нежели программ, запускаемых на этих системах. Хотя Golang также используют для веб-разработки.

Наконец, самым значимым отличием при выборе Go Python является объектная-ориентированность. Как мы упоминали ранее в этом руководстве GO vs Python, Python объектно-ориентированный от начала и до конца. Однако с GO совсем иная история. Он строго типизирован и мало чего имеет общего с объектно-ориентированностью.

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

Критерии Сравнения

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

Вы когда-либо хотели узнать, какие платформы для онлайн обучения лучше всего подходят для вашей карьеры?

Поддержка Сообщества

Это может показаться не настолько значимым (особенно, если вы только начинаете своё знакомство с программированием), но поддержка сообщества очень важный аспект языка программирования. Для этого существует по крайней мере несколько причин.

Для начала сильная поддержка сообщества означает очень высокий шанс найти ответ на вопрос или решение проблемы, которая у вас возникла. Возможно, это какой-то баг или недоработка после последнего обновления. Популярные языки программирования имеют огромные отдельные сообщества, которые обсуждают многочисленные темы по данному языку. Конечно же, с такой поддержкой вы сможете найти ответ практически на любой ваш вопрос (или получить его от участников сообщества на форуме).

В дополнение к этому, если язык программирования популярен, то вы сможете найти множество информации о нём в сети. Это отлично для разработчиков, но особенно важно для начинающих программистов. Представьте, если бы вам пришлось обучаться языку программирования без какой-либо информации о нём в Интернете. Это было бы настоящей пыткой и отбило бы у вас любую мотивацию продолжать обучение! К счастью, большая часть языков программирования имеет огромную поддержку сообщества – вы можете найти многочисленные онлайн-курсы, руководства и отдельные статьи по целевому языку.

Простота Использования

Это может быть не так важно для некоторых людей, но многие люди ищут простой для изучения язык программирования. Если синтаксис языка легко запомнить и он не включает много настоящего кодинга – отлично! Значит он подходит под это описание!

Главной причиной для этого является конкуренция на рынке труда. Чем раньше человек освоит программирование, тем быстрее он или она сможет найти стабильную и высокооплачиваемую работу. Так как программирование в последнее время стало очень популярным, то и конкуренция на рынке становится всё более ожесточённой. Именно по этой причине многие люди не хотят слишком долго уделять времени на обучение – хорошо это или плохо, вы должны решить сами. Давайте просто выделим это в качестве нашего аспекта.

Зарплаты

Ни для кого не секрет, что зарплата программиста является тем, к чему стремятся многие люди. Сфера информационных технологий в целом имеет одни из самых высоких заработных плат в мире – программирование это лишь одна из профессий в этой сфере. Тем не менее, стоит учитывать, что различные языки программирования предлагают различные заработные платы. Это зависит от целого ряда факторов, но хорошая зарплата является определяющим аспектом для многих начинающих разработчиков.

Теперь вы должны иметь полное представление о предстоящем сравнении GO vs Python. Итак, давайте начинать.

Сравнение

Мы пройдёмся по каждому пункту сравнения один за другим, чтобы сделать правильный выбор между Golang vs Python.

Какой Язык Имеет Более Крупное Сообщество?

Пара языков GO Python имеет отличную поддержку сообщества. Но стоит отметить Python в качестве самого популярного языка программирования. С тех самых пор, после новостей об его использовании в компаниях YouTube, Instagram и процессе разработки в других крупных платформах его популярность взлетела до небес. Если вы хотите научиться Python, то вы сможете найти огромное количество информации в сети.

Какой Язык Проще?

Это даже не обсуждается – Python не зря называют одним из самых простых языков для освоения. Даже несмотря на стремление GO стать простым и удобным для изучения, он и близко не может сравниться с Python, когда дело касается читабельности кода.

Преимущества

  • Простой в использовании
  • Предлагает качественный контент
  • Очень открытый в своих ценах

Особенности

  • Бесплатные сертификаты об окончании
  • Фокус на навыки науки о данных
  • Гибкое расписание занятий

Преимущества

  • Простой дизайн (без бесполезной информации)
  • Хорошее качество курсов (даже бесплатных)
  • Разнообразие возможностей обучения

Особенности

  • Программа Nanodegree
  • Подходит для корпоративного обучения
  • Платные сертификаты об окончании

Преимущества

  • Огромное разнообразие курсов
  • Простая навигация
  • Нет технических проблем

Особенности

  • Огромное разнообразие курсов
  • Политика 30-дневного возврата средств
  • Бесплатные сертификаты об окончании

Где Лучше Зарплата?

По данным сервиса Glassdoor.com, разработчик на Python может ожидать получение заработной платы в размере $92,000 USD в год или практически $7670 USD в месяц. В противоположность этому Ziprecruiter.com утверждает, что средняя зарплата разработчика на GO может достигать $106,700 US ежегодно или $8890 USD в месяц! Это довольно значительная разница!

Разработчики на Python в основном сфокусированы на веб-разработке, тогда как программисты GO чаще всего заняты в сфере системного программирования. Это может быть одной из причин различий в заработных платах. Хотя честно говоря, в сравнении GO vs Python – каждый из этих языков может обеспечить вам достойную заработную плату!

Самые Популярные Статьи

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

Лучшие Онлайн Юридические Курсы: Всё, Что Вам Нужно Знать

Лучшие Онлайн Юридические Курсы: Всё, Что Вам Нужно Знать

Если вас интересует изучение юриспруденции онлайн, взгляните на наш список, где представлены популярные юридические курсы.

Лучший Антивирус: Узнаём и Выбираем Самые Лучшие

Лучший Антивирус: Узнаём и Выбираем Самые Лучшие

Прочитайте наш обзор на лучший антивирус и компании. Узнайте, что означает быть безопасным в Интернете.

Udacity VR Nanodegree: Начните Вашу Карьеру в Качестве VR Разработчика

Udacity VR Nanodegree: Начните Вашу Карьеру в Качестве VR Разработчика

Заинтересованы в Udacity VR Nanodegree? Узнайте о курсе через этот обзор!

Заключение

Что же, GO vs Python – какой язык вам выбрать? Если вам нравится веб-разработка, и вы ищете простой язык для обучения, то Python должен стать для вас правильным выбором. В то же время, Golang станет отличным подспорьем для тех, кто интересуется системным программированием и имеет немного больше времени на обучение. Кроме того, GO может предложить более высокую заработную плату по сравнению с Python.

Вот и подошло к концу наше руководство GO vs Python. Мы искренне надеемся, что вы нашли ответы на все ваши вопросы. Запомните, выбор между двумя языками Golang vs Python вы должны делать на основе своих собственных потребностей и нужд. Однако какой бы выбор вы не сделали, мы желаем вам удачи в обучении!

Оставьте ваше честное мнение

Оставьте ваше честное мнение и помогите тысячам людей выбрать лучшую платформу для онлайн обучения. Все отзывы, позитивные или негативные, будут приниматься, если они честны. Мы не публикуем предвзятые отзывы и спам. Поэтому, если вы хотите поделиться вашим опытом, мнением или дать совет — у вас есть всё необходимое!

Что учить сейчас Python или Golang?

Что лучше новичку учить для бэкенда Python или Golang? Многие советуют Go но по нем сейчас не так много информации для изучения начинающему если ты ничего не знаешь, а по Python куча всего. Ну и на Go как я слышал переходят с других языков например с PHP. Какие можете дать советы?

Henry
26.01.23 14:04:15 MSK
← 1 2 3 4 5 6 7 →

Для бэка, кмк, более подходит Go. Скорость разработки думаю будет ниже (за счет того, что Python — более высокоуровневый и слаботипизированный), но производительность и расход ресурсов явно сильный аргумент в сторону Go. Но python вообще, более универсальный язык, в случае если захочется выйти за рамки бэка.

Demacr ★★
( 26.01.23 14:10:40 MSK )
Последнее исправление: Demacr 26.01.23 14:11:08 MSK (всего исправлений: 1)

Что лучше новичку учить для бэкенда

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

Так что, не ЯП надо учить, а как можно быстрее влиться в разработку и следовать за рынком.

vvn_black ★★★★★
( 26.01.23 14:12:04 MSK )
Последнее исправление: vvn_black 26.01.23 14:28:11 MSK (всего исправлений: 1)

Я бы сказал что оба востребованы, но python популярнее. Если нет объективного критерия (а-ля в конторе куда ты хочешь пишут на), выбери какой больше нравится, а второй изучи хотя бы по верхам.

У обоих языков качественная официальная документация. Остальное — кривые васянские гайды и книжонки, не надо их даже смотреть.

slovazap ★★★★★
( 26.01.23 14:13:23 MSK )

Лучше учить оба, так как языки имеют общую нишу применения, близки идеологически и зачастую используются одними и теми же компаниями

annulen ★★★★★
( 26.01.23 14:17:04 MSK )

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

Goury ★★★★★
( 26.01.23 14:53:30 MSK )

Лучше всего go конечно, там один бинарник на выходе получается, запихиваешь его в докер контейнер from scratch и хоть в продакшен. А на питоне заманаешься свой хелловорлд в контейнер запихивать чтобы никто не доколупался

slyjoeh ★★★
( 26.01.23 14:57:48 MSK )

Я заметил, что сейчас рынок очень мощно ужел в node.js. У меня, старого жабиста, уже хлеб отбирают и говорят, что я легаси.

untitl3d ★
( 26.01.23 15:02:08 MSK )

Бэкенд понятие растяжимое конечно. Но по-моему оба недоязыка там что корове седло. А писать все равно будете на том, на чём прикажут. И вероятнее всего на PHP.

bread ★
( 26.01.23 15:13:04 MSK )
Ответ на: комментарий от untitl3d 26.01.23 15:02:08 MSK

У меня, старого жабиста, уже хлеб отбирают и говорят, что я легаси.

А жабисты пусть едят пирожные.

Aber ★★★★★
( 26.01.23 15:13:25 MSK )

лучше штангу поднимать. А те, кто пишет на Go back — уже заготовлен отдельный котёл.

JleHb
( 26.01.23 15:17:00 MSK )

Все от цели зависит. Если чисто шкурный интерес в духе вайтивайти, то подойдут оба два, если же цель более фундаментально то Го выглядит интересней — в нем хоть указатели есть есть, про GC много говорят.

urxvt ★★★★★
( 26.01.23 15:17:44 MSK )
Ответ на: комментарий от JleHb 26.01.23 15:17:00 MSK

Чем он хуже других языков в этой нише?

urxvt ★★★★★
( 26.01.23 15:18:21 MSK )
Ответ на: комментарий от urxvt 26.01.23 15:18:21 MSK

Я, как профессионал, могу тебе напомнить владельца «свободы», это, «барабанная дробь» — MS!

Лучшее, что есть на рынке: npm и c#.

JleHb
( 26.01.23 15:21:27 MSK )
Ответ на: комментарий от vvn_black 26.01.23 14:12:04 MSK

Я просто не знаю даже на какой рынок вакансии лучше ориентироваться, в моём регионе не так много вакансии веб Python(Django) всего 33, по Goland примерно также , я из Казахстана

Henry
( 26.01.23 15:32:00 MSK ) автор топика

вначале учишь питон, а потом го

umren ★★★★★
( 26.01.23 15:32:53 MSK )
Ответ на: комментарий от annulen 26.01.23 14:17:04 MSK

Оба конечно лучше , но мне для начала хотя бы на одном писать нормальный код

Henry
( 26.01.23 15:33:22 MSK ) автор топика
Ответ на: комментарий от Henry 26.01.23 15:33:22 MSK

Если вообще нулевой опыт программирования, то наверное лучше с питона начать

annulen ★★★★★
( 26.01.23 15:34:19 MSK )
Ответ на: комментарий от Henry 26.01.23 15:33:22 MSK

но мне для начала хотя бы на одном писать нормальный код

И что за задачи ты собрался на нём решать? И что такое ‘нормальный’?

JleHb
( 26.01.23 15:38:38 MSK )
Ответ на: комментарий от Henry 26.01.23 15:33:22 MSK

А, так ты из этих? Ну напиши нам, интересно, почему именно так ты хочешь коверкать пунктуацию?

JleHb
( 26.01.23 15:40:17 MSK )
Ответ на: комментарий от JleHb 26.01.23 15:40:17 MSK

На next регистрации?

JleHb
( 26.01.23 15:40:47 MSK )

При таком выборе я бы советовал Go, это современный, статически типизированный язык, после него на python перейти будет легче, чем наоборот, с python на go.

Aber ★★★★★
( 26.01.23 15:43:45 MSK )
Ответ на: комментарий от JleHb 26.01.23 15:21:27 MSK

fluorite ★★★★★
( 26.01.23 15:45:32 MSK )

Стажером иди куда-нибудь. Реальная разработка сильно отличается от «изучения языка» и пет-прожектов. Это примерно как учиться плавать по книжке ни разу не зайдя в воду.

upcFrost ★★★★★
( 26.01.23 15:46:04 MSK )
Ответ на: комментарий от JleHb 26.01.23 15:40:17 MSK
Henry
( 26.01.23 15:48:58 MSK ) автор топика
Ответ на: комментарий от fluorite 26.01.23 15:45:32 MSK

А то я не знаю. Ха. Баба Ванга в треде!

JleHb
( 26.01.23 15:52:58 MSK )
Ответ на: комментарий от Henry 26.01.23 15:48:58 MSK
JleHb
( 26.01.23 15:54:33 MSK )
Ответ на: комментарий от JleHb 26.01.23 15:54:33 MSK

Что ты хочешь от меня? Не нравится что-то, не читай.

Henry
( 26.01.23 15:57:33 MSK ) автор топика
Ответ на: комментарий от Henry 26.01.23 15:57:33 MSK

Это как так, не читать? Дай case на котором ты споткнулся в выборе ЯП. А я поверну дуло пушки в твою сторону. Без троллинга типа троллей тут не выжить.

JleHb
( 26.01.23 15:59:31 MSK )
Ответ на: комментарий от Henry 26.01.23 15:32:00 MSK

Я просто не знаю даже на какой рынок вакансии лучше ориентироваться

Что ж вы всё так прямолинейно воспринимаете и до конца не читаете. Смысл в том, что когда вы что-то выучите, оно будет уже не совсем актуально.

Поэтому, хорошо бы просто в разработку вкатиться с минимальными общими знаниями. ЯП по месту выучите.

vvn_black ★★★★★
( 26.01.23 16:02:18 MSK )
Ответ на: комментарий от bread 26.01.23 15:13:04 MSK

А писать все равно будете на том, на чём прикажут. И вероятнее всего на PHP

Соболезную. Чего уж там.

На самом деле уже лет десять как не видел php в продакшне. А чистый backend на нем наверное вообще никогда. Я не спорю, возможно оно и существует где-то.

А так в основном golang, python, nodejs и c# сейчас. И выбор стека обычно идет от задач.

adn ★★★★
( 26.01.23 16:02:52 MSK )
Последнее исправление: adn 26.01.23 16:03:20 MSK (всего исправлений: 1)

Вакансий и документации по обоим полно. Бери то, что больше нравится. На мой взгляд питон проще, но это вкусовщина

Aswed ★★★★★
( 26.01.23 16:34:20 MSK )
Ответ на: комментарий от slyjoeh 26.01.23 14:57:48 MSK

Лучше всего go конечно, там один бинарник на выходе получается, запихиваешь его в докер контейнер from scratch и хоть в продакшен

чтобы бинарник на go можно было запихнуть в контейнер scratch, он должен быть статически слинкован. Что далеко не всегда тривиальная задача. Особенно с учетом что речь о бэкенде, где чуть меньше чем всегда подключается net/http

Lrrr ★★★★
( 26.01.23 16:40:02 MSK )

Go как первый язык кмк выглядит лучше, навскидку

  • писать дичь сложнее
  • отличная стандартная библиотека
  • скорость и статические типы — приятно
  • нет дремучего легаси

ddidwyll ★★★★
( 26.01.23 16:42:54 MSK )
Последнее исправление: ddidwyll 26.01.23 16:44:02 MSK (всего исправлений: 1)

Ответ на: комментарий от Lrrr 26.01.23 16:40:02 MSK

С чем он должен быть статически слинкован?

slyjoeh ★★★
( 26.01.23 16:45:33 MSK )
Ответ на: комментарий от Lrrr 26.01.23 16:40:02 MSK

он должен быть статически слинкован. Что далеко не всегда тривиальная задача.

там в зависимости только несколько системных либ (ld-linux, linux-vdso, libpthread, libc). не уверен, что их статически возможно встроить. не знаю подробностей докера from scratch, но думаю он предоставляет какой-то базовый набор системных либ.

ergo ★★
( 26.01.23 16:48:06 MSK )

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

у меня в голове когда-то был питон. уже почти 10 лет как не пишу на нем. не особо скучаю. го в моих задачах несопоставимо выигрышнее в сравнении с питоном.

Golang vs. Python — Что выбрать в 2021?

В Интернете множество примеров отличного кода. Они лежат в основе огромного количества инфраструктур. Даже платформа, на которой вы читаете эту статью, создана из кода. Хотя обычный пользователь не особо обращает на это внимание, хорошие разработчики всегда стремятся сделать свои приложения и, следовательно, их код лучше.

В основе хорошего кода лежат навыки разработчика и выбранный им язык программирования. Это неизбежно приводит к некоторому конфликту между программистами не только на уровне квалификации, но и в плане предпочитаемого языка. Примером такого конфликта может стать сравнение таких двух отличных языков программирования, как Golang (Go) и Python.

Давайте оценим оба языка с точки зрения достоинств и функциональности. Уберем личные предубеждения и предпочтения. Будем отталкиваться от уровней мастерства. Перед нами два варианта: Go и Python. Всплывает главный вопрос — какой язык подойдет лучше именно вам?

История языка программирования Python

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

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

По меркам программирования, Python является довольно старым языком. Концепт появился в далеком 1991 году. С возрастом вырисовываются определенные преимущества. У Python много поклонников, которые помогают поддерживать стабильность языка и прекрасную документацию. На Python можно найти примеры кода практически на каждый возможный случай. Это значит, что разработчики и предприниматели выбирают Python отталкиваясь от богатого опыта, следовательно, ожидается успешный исход.

Огромное количество проектов с открытым исходным кодом используют Python как основу, поэтому зачастую начинать что-то с нуля вовсе не требуется. Язык хорошо интегрирован в корпоративные приложения и может использоваться в машинном обучении или в приложениях с ИИ. Но есть и минусы. К примеру, язык не идеален для задач, где важна память, медленно выполняется и не подходит для разработки мобильных приложений.

Поговорим о Golang (Go)

Разработанный командой Google в 2009, язык Go стал решением многих проблем. Целью было создание языка, что забрал бы весь багаж и излишки языков C, C++. Это повышает производительность и скорость, что делает работу с ним более приятной. Кроме того, большинство разработчиков, впервые использующих Go, быстро вникнут в суть дела из-за знакомых элементов и простоты использования.

Это не значит, что язык идеален во всех случаях. Несмотря на то, что скорость и элегантность поднимаются на следующий уровень, некоторые вещи оставляют желать лучшего. У Golang нет обширной библиотеки или поддержки наследования. Кроме того, нет GUI библиотеки или поддержки объектно-ориентированного программирования. Для этого используются горутины, стандартная библиотека, надежная встроенная безопасность и легкий код с минимальным синтаксисом.

Разница в производительности между Golang и Python

Говорить о преимуществах и недостатках Golang и Python можно бесконечно, однако в конечном итоге все сводится к производительности. Было произведено несколько тестов на Intel® Core™ i7-9700K CPU @ 3.60GHz × 8 ядер. Используемый код доступен по ссылке.

Бинарный поиск

Мы создали списки целых чисел от 1 до 100 000 и затем использовали бинарный поиск, чтобы находить всегда одно и то же число «729». Результаты следующие:

Язык Скорость
Go 20.8 наносекунд/операцию
Python 2442.13377 наносекунд/операцию

Сортировка пузырьком (Bubble Sort)

Мы вновь сгенерировали списки из целых чисел (на этот раз случайных, длиной в 10 000 элементов) и отсортировали списки, используя алгоритм bubble sort.

Язык Скорость
Go 90805247 наносекунд/операцию (0,09s)
Python 6708160950.6 наносекунд/операцию (6,7s)

Чтение из файла

Язык Скорость
Go 5305 наносекунд/операцию
Python 58359 наносекунд/операцию

Обработка HTTP запроса

Мы проверили, сколько времени потребуется, чтобы получить в ответ простое сообщение «hello world!» от веб-сервера на Go и Python.

Язык Скорость
Go 0.070 наносекунд/запрос
Python 1.261 наносекунд/запрос

Отзывы больших компаний о Golang

Golang широко используется ведущими компаниями. По всему миру более миллиона разработчиков работают с Go — его задействуют в таких сферах, как банковское дело, торговля, игры, мультимедиа, технологии и другие отрасли. В число известных предприятий входят PayPal, Capital One, IBM, Salesforce, Twitch, Uber, Dropbox и, конечно, Google.

Далее представлены некоторые отзывы компаний с ссылками на тематические исследования.

«Ценность Go в создании чистого и эффективного кода, который легко масштабируется по мере развертывания программного обеспечения, это делает язык надежным средством поддержки целей PayPal».

«Go предоставляет American Express скорость и масштабируемость, необходимые для сетей платежей и переводов».

«Salesforce объясняет, почему язык программирования Go для Einstein Analytics лучше, чем Python и C».

«Stream является небольшой командой разработчиков, что обеспечивает каналы и чат для более чем 500 миллионов конечных пользователей. Комбинация Go с великолепной экосистемой, удобной адаптацией для новых программистов, высокой производительностью, надежной поддержкой параллелизма и продуктивной средой разработки делает этот язык отличным выбором».

«Pydio, облачное хранилище до Dropbox, превратилось в полноценную платформу Sync-and-Share, приложение привязалось к своему первоначальному техническому стеку: LAMP, как в Linux/Apache/MySQL/PHP. Ознакомьтесь со статьей о мотивах переписывания кода на Golang, новой архитектуре и возможностях выбора».

«Миграция сократила количество необходимых экземпляров EC2 на 85% и среднее время ответа на вызов API с 100 до 10 мс. Из-за сходства между Python и Go они смогли быстро переопределить наши модульные тесты, чтобы соответствовать структуре, которая требуется Go, с помощью нескольких простых sed-сценариев».

Веб-фреймворки Python и Golang

Одним из самых больших преимуществ Python является обширная коллекция доступных библиотек и фреймворков. Django и Flask являются двумя наиболее популярными веб-фреймворками Python, которые позволяют создавать веб-приложения или API в кратчайшие сроки.

У Golang нет единой доминирующей среды, такой как Django для Python или Laravel для PHP, и сообщество Go в некотором смысле не имеет отношения к этим средам. Результаты опроса Go 2018 показывают, что веб-разработка Golang является самой распространенной (65%), и она увеличила свое доминирующее положение по сравнению с 61% в прошлом году. Начиная с 2016 года веб-разработка была наиболее распространенной областью применения Golang.

Далее представлены самые популярные веб-фреймворки на Golang.

Web-Framework Gin

web framework Git Golang

Gin являктся веб-фреймворком Golang, который ценится разработчиками высокопроизводительных API. Это также один самых простых фреймворков для изучения. Требуется приблизительно 10 минут, чтобы привыкнуть к нему. Если вам нужна хорошая производительность, Gin вам определенно понравится.

Веб-Фреймворк echo

Golang echo Kit

Echo является высокопроизводительным, расширяемым и минималистичным веб-фреймворком Go, обеспечивающим оптимизированный HTTP-маршрутизатор, групповые API, привязку данных для JSON и XML, поддержку HTTP/2 и многое другое.

Хотя Gin немного более популярен (40 тысяч звезд GitHub), многие разработчики выбирают Echo (17 тысяч звезд GitHub), потому что его документация лучше и он немного быстрее.

Фреймворк Go Kit

framework go kit

Go Kit представляет собой программный инструментарий для построения микросервисов (или элегантных монолитов). Go Kit является необязательным фреймворком. Он решает общие проблемы в распределенных системах и архитектуре приложений, поэтому вы можете сосредоточиться на бизнес-сторону проекта.

Python или Go — Что быстрее для веб-разработки?

Кому знакома ситуация, когда хочется поскорее закончить работу и как-то развлечься? Конечно всем. А ведь скорость увеличивает производительность. Python быстр при разработке сайтов и является многофункциональным языком, но Golang может оказаться быстрее, чем Python.

Golang является неплохим языком для написания серверных сценариев и для высокой производительности. Golang предлагает быстрые циклы разработки. Производительность — это ключ, а Golang — мастер скорости и производительности.

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

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

Python или Golang — Что легче и быстрее выучить?

Знаете ли вы, что многие терпеть не могут Java, несмотря на его возможности? Все оттого, что Java сложен. Если речь заходит о сложных крупных программ, таким же становится и Python.

Golang является простым для понимания языком программирования с несложным синтаксисом. Хотя в Python также легкий синтаксис, Golang проще выучить и работать на нем. Golang основан на языке C, поэтому можно полагаться на его ясность.

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

Python или Golang — Где легче исправить ошибки?

Ошибки в коде ненавидят все программисты. Всех расстраивает, когда не получается найти способ для их исправления.

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

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

Python или Golang — Что лучше работает с конкурентностью?

В Python нет встроенной конкурентности, в то время как Golang поддерживает конкурентность. Это еще один плюс использования Golang для эффективной разработки.

Python или Golang — Что безопаснее?

Python 3.8.1 — достаточно безопасный язык для работы, как и Golang. Поскольку Golang улавливает все ошибки во время компиляции, вы можете быть уверены в безопасности типов при работе с языком Go.

Python или Golang — Где лучше поддержка библиотек и пакетов?

В Python довольно много библиотек. Python более приспособлен к работе с библиотеками, чем Golang, но в Golang больше библиотек для веб-разработки, шифрования и конкурентного программирования.

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

Golang vs. Python — Сравнительная таблица

go vs python

Go Python
Парадигмы языка Go являются частью процедурными, функциональными и конкурентными. Парадигмы Python являются объектно-ориентированными, императивными, функциональными и процедурными.
Статически типизированный язык. Динамически типизированный язык.
Больше сфокусирован на том, чтобы быть системным языком. Больше сфокусирован на создании веб-приложений, машинное обучение, обработка данных.
Go также работает с менеджментом памяти. Python предлагает менеджмент памяти.
Синтаксис Go основан на открывающихся и закрывающихся скобок. Синтаксис Python для выделения блоков кода использует отступы.
Веб-программирование Go предоставляет несложный способ исправления ошибок. Python является динамически типизированным, а значит он проверяет наличие багов во время выполнения, тратя при этом больше времени и ресурсов.
Предлагает ограниченную поддержку для объектно-ориентированных и функциональных концептов. Объектно-ориентированное программирование, что поддерживает функциональные концепты.
Go не предоставляет исключения. Python поддерживает исключения.
Go не поддерживает объектно-ориентированное программирование. В нем нет классов и объектов. В Python есть классы и объекты.
Go не поддерживает наследование. Python поддерживает наследование.
Go идеален для системного программирования. Python является популярным языком, что используется для Data Science.
По сравнению с Python более многословен. Менее многословен по сравнению с языком Go.
Поддерживает конкурентность. Нет встроенного механизма конкурентности.
Go нуждается в большем количестве кода для осуществления тех же действий. Python нуждается в меньшем количестве кода по сравнению с Go.
74.7 K Github звезд 32.6 K Github звезд
В США разработчики Go получают приблизительно $64,089 в год. В США средняя зарплата разработчика Python составляет около $120,359 в год.

Недостатки Go

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

  • При интеграции API с Go нет официально поддерживаемого Go SDK;
  • Плохая поддержка библиотек;
  • Фрагментированный менеджмент зависимостей.

Недостатки Python

Далее представлены минусы/недостатки использования языка Python:

  • Слабый в мобильных вычислениях, следовательно, не используется в разработке мобильных приложений;
  • Python является динамическим и выдает больше ошибок во время выполнения;
  • Отсутствует коммерческая поддержка.

Go или Python — Что выбрать?

В то время как Python остается фаворитом сообщества, удерживая второе место в первом квартале 2019 года за самый быстрый язык программирования на GitHub по количеству запросов (+ 17%), Golang не так уж сильно отстает и крепко держится на четвертом месте (+ 8%). Выбор между Golang и Python становится еще более размытым. Можно выделить несколько важных аспектов, которые следует учитывать при выборе.

  • Масштабируемость: Golang был создан с учетом масштабируемости. Он поставляется со встроенной конкурентностью для обработки нескольких задач одновременно. Python использует конкурентность, но она не встроена. Он реализует конкурентность через потоки. Это означает, что если вы собираетесь работать с большими наборами данных, то Golang может показаться более подходящим выбором;
  • Производительность: Python нельзя назвать лучшим по отношению к памяти или CPU, однако с его огромным количеством библиотек, Python эффективно выполняет основные задачи разработки. Golang обладает встроенными функциями и больше подходит для архитектур микросервисов;
  • Приложения: Python великолепен при написании кода для искусственного интеллекта, анализа данных, глубокого обучения и веб-разработки. Принимая во внимание, что Golang использовался для системного программирования, его любят разработчики, которые используют его для облачных и кластерных вычислений;
  • Сообщество и Библиотека: Как упоминалось ранее, возраст Python дает ему определенные преимущества. Одно из них — это большое количество библиотек и огромное сообщество, которое их поддерживает. Golang, с другой стороны, все еще является растущим языком и не имеет такого количества библиотек и поддержки сообщества, которыми обладает Python. Тем не менее, не стоит недооценивать Golang — его скорость роста и принятия разработчиками невероятна, и она растет с каждым днем.
  • Выполнение: Если скорость — самое важное, тогда выбор за Golang.

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

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

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

Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.

E-mail: vasile.buldumac@ati.utm.md

Образование
Universitatea Tehnică a Moldovei (utm.md)

  • 2014 — 2018 Технический Университет Молдовы, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
  • 2018 — 2020 Технический Университет Молдовы, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *