Python или Ruby
Один из классических вопросов в мире программирования: «Что выбрать — ruby или python?». На первый взгляд, оба языка имеют схожие преимущества, востребованы, активно развиваются. Сторонники каждого из лагерей переманивают сомневающихся на свою сторону, оперируя спорными аргументами.
Проведём собственное сравнение python и ruby по 6 критериям, чтобы выяснить, какой язык подходит именно вам.
История
Сегодня в это тяжело поверить, но долгое время у начинающих веб-гиков не было дилеммы: «что изучать — ruby или python?».
Официально Python старше на 4 года своего главного конкурента, он был разработан в 1991 году. Все эти 26 лет он степенно развивался, проникал во все сферы IT от десктопных приложений до искусственного интеллекта, наращивал сообщество.
Юкихиро Мацумото, создатель Ruby, имел достаточно времени, чтобы оценить все плюсы и минусы не только Python, но и других языков (в частности, perl). Однако первые годы после рождения дались Ruby тяжело — несколько лет готовилась официальная документация, сообщество развивалось не так стремительно, как хотелось Мацумото. Значительный прогресс наметился лишь в 2005 году, когда появился Ruby on Rails — фреймворк с богатыми возможностями веба. Новые возможности заинтересовали массы и с этого момента Руби стал полноправным конкурентом питона в мире веба.
Простота изучения
Однозначного ответа на вопрос: «Что легче — python или ruby?» не существует. Это как с кинематографом: среди мировых блокбастеров можно найти и содержательный экшн, и фильмы, где во главе угла стоит игра актёров. Одни не исключают другие, а лишённый стереотипов зритель увидит прекрасное в каждом подходе.
Питон или руби в этом сравнении — экшн или драма. Python — прямолинейный, предельно упрощённый язык с кучей спецэффектов. Ruby — более тонкий, изящный, но тоже понятный после короткого знакомства. Вот простое сравнение синтаксиса на примере вычисления времени:
Ruby:
require8 'active_support / all'
new_time = 1.month.from_now
Python:
from datetime import datetime
from dateutil.relativedelta import relativedelta
new_time = datetime.now() + relativedelta(months=1)
Python привычнее и проще, но подход Ruby выглядит более элегантным и профессиональным.
Сообщество
Здесь безоговорочную победу одерживает Python. Правда, характеризует это не столько качество и продуманность языка, сколько большее количество сфер применения. Благодаря тому, что в Python есть множество математических и статистических библиотек, о нём больше спрашивают на студенческих и научных форумах. У приверженцев Ruby почти все ресурсы посвящены вебу. Эта тема изучена вдоль и поперек, поэтому активность стимулируется в основном новыми ошибками Ruby on Rails.
Тем не менее, однозначного ответа на то, python или ruby лучше для начинающих, нет, в обоих сообществах вы найдёте исчерпывающие ответы на любые вопросы.
Сфера применения
Очевидное преимущество Python. Как уже было сказано выше, Python применяется в:
- веб;
- мобильных и десктопных приложениях;
- играх;
- больших данных;
- искусственном интеллекте;
- сетевом администрировании.
Ruby может ответить на это только развитостью в вебе.
Если брать за мерило успеха имена компаний, официально поддерживающих язык — здесь наблюдается равенство:
Python: Google, Instagram, Pinterest, Mozilla Firefox и National Geographic.
Ruby: Apple, Airbnb, Twitter, Github и Groupon.
Так что для рядового программиста актуален вопрос выбора python или ruby для web. Если же нужна ширина применения – тогда Python.
Производительность
С точки зрения скорости написания кода Python является победителем и этого раунда. Дело тут и в объеме кода, и в общем желании разработчиков языка предельно ускорить написание программ. Однако согласно свежим сводкам с форумов, работать с Ruby удобнее и из-за большей «человечности» языка, и развития платформы Ruby on Rails.
А вот производительность исполняемого кода помогут оценить специальные тесты. Один из них приведён здесь. Взглянем на адаптированную гистограмму сравнения Perl Python Ruby PHP:
Очевидно, что современный Ruby значительно обходит в производительности своих «основателей», что подводит нас к 6 пункту сравнения.
Перспектива
Если смотреть динамику развития — у Ruby она куда круче. Более того, если говорить именно о вебе, несмотря на всю развитость Django, именно Ruby on Rails обладает большими возможностями и фичами: скоростью, инструментами, реакцией на тренды.
Python же всё больше уходит от веба в другие дисциплины. Сегодня он развёрнут едва ли на каждой Linux-машине, практически на равных борется с MATLAB в области комбинаторики и нейросетей и т.д.
Поэтому неправильно говорить, что Ruby перспективнее Python, просто векторы развития языков совершенно разные.
Вывод
Если вы рассматриваете python или ruby как первый язык программирования — лучше изучить оба на базовом уровне в любом порядке.На следующем этапе уже можно оттолкнуться от личных пристрастий и впечатлений, посвятив будущую карьеру лишь одному из них.
Если это желание обрести новую прибыльную специализацию, то оба языка мимо, так как в России они востребованы значительно меньше, чем Java, PHP и пр.
Во всех остальных случаях, выбор лучшего языка имеет прямую зависимость от сферы вашей будущей деятельности. Исключительно для веба сегодня перспективнее выглядит Ruby. Но если ваши амбиции куда шире — только Python станет для вас универсальным инструментом.