JavaScript vs Python vs GO — решающая битва

Светлана Шаповалова, коммерческий автор и переводчик, специально для «Нетологии» перевела статью Доминика Т с анализом всех сильных и слабых сторон JavaScript, Python и GO. Проанализируем бекэнд, фронтэнд и возможности нативной разработки.

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

Давайте сравним

Вот языки, которые я хочу сравнить:

  • Golang
  • JavaScript — Node.js
  • Python

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

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

2. Node.js — платформа, основанная на C и работающая на движке V8. Производительность «из коробки» зачастую выше, чем у Python.

3. И Python на последнем месте: далеко не первый по производительности, он, тем не менее, отлично подойдет там, где не нужна сверхскорость — например, в обучении.

Удобство

aJ3ktFp6DtMJjKaMBXD6DSWRhqAT_n1svNtu8lRh
Вертикальная ось — «Легкость и понятность». Горизонтальная ось — «Скорость и эффективность»

1. Go и Python. Если вы когда-либо использовали фреймворк Django, написанный на Python, то знаете, что создать с его помощью полноценное приложение с MySQL можно буквально за минуты. Впрочем, Go — это язык с сильной типизацией, множеством библиотек и неограниченными возможностями.

2. JavaScript. Хотя после релиза ES2015 пользоваться им стало удобнее, но не могу сказать, что эстетика языка сильно улучшилась. Конечно, не считая множества временных функций, которые новички часто игнорируют.

Масштабируемость

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

2. JavaScript тоже хорош за счет инструментов сборки вроде webpack, хотя и не поддерживает нативный импорт.

Фронтэнд и бэкэнд

Скажу, что здесь сложно ошибиться с выбором — все три языка действительно хороши и вы не пожалеете, какой бы выбор вы не сделали. Однако, если вам необходимо использовать базы данных, то node.js — это практически стопроцентное «нет».

1. Go хорош как для бекэнда, так и для фронтэнда, и успешно балансирует между ними.

2. JavaScript отлично подходит для фронтэнда благодаря библиотекам вроде React. Но использовать его для бекэнда и интеграции с базами данных — это сплошное мучение.

3. У Python есть Django, поэтому для бекэнда он лучше, чем JavaScript. Однако JavaScript отлично работает в связке API + React и набирает все большую популярность.

Популярность

Qgt3qfSQ3cGAdqii6IIG0lXB3D0wGg-gugfRcyHz

1. Согласно рейтингу TIOBE, Python в 2017 году займет пятое место среди самых популярных языков программирования, однако со временем сместится ниже.

2. JavaScript — на восьмом месте, однако его перспективы оптимистичнее, чем у Python.

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

Совместимость

1. JavaScript работает в браузерах и на серверной стороне, в нативных и мобильных приложениях — во многом благодаря Angular и React.

2. Go работает практически повсюду: отчасти из-за мощной поддержки разработчиков и фулстек-библиотекам, отчасти из-за Android NDK. Кто знает, не станет ли Go для Google нативным и основным android-языком вместо Java? Ведь именно Google — создатели Go.

3. Python работает на телефонах и десктопе, однако загружается дольше, чем ОС Windows после обновлений, и не стоит этого времени. Совсем.

Машинное обучение.

1. Python. TensorFlow, Scikit-learn Чтобы «обучить» машину различать изображения или речь, понадобиться лишь одна из этих библиотек и немного математики.

2. Язык Go хорош, но, в сравнении с Python, недостаточно. Почти все ученые используют Python для машинного обучения, и это не скоро изменится. По крайней мере, пока Google не решат выпустить TensorFlow для Go.

3. JavaScript — полный лузер в этой категории. Разве что какой-нибудь мазохист додумается использовать его для машинного обучения.

Работа

1. JavaScript — это отец фронтэнда и всей веб-разработки. Кроме веб-сборки, JavaScript — единственный язык, нативно поддерживаемый браузерами. Очевидно, что на сегодняшний день полно вакансий для JavaScript-разработчика.

2. Для Python-разработчиков тоже много работы, особенно в областях обработки данных, бекэнда и машинного обучения.

3. Язык Go относительно молод, поэтому будет возникать все больше стартапов, использующих именно его.

Итого

  • Go: 10 очков
  • JavaScript: 9 очков
  • Python: 9 очков
Выводы

Каждый из этих языков по-своему крут, так какой же выбрать? Советую ориентироваться на следующий список:

  • наука о данных Python
  • бекэнд или фулстак Python или Go
  • React или Angular + бекэнд JavaScript или Go
  • гибридные и нативные приложения JavaScript + React или Go
  • первый язык для новичка Python
  • скорость и эффективность Go

Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации.

Полный текст статьи читайте на Нетология