Что написано на ruby
Почему Ruby — особенный язык
Потому что он прост как JavaScript и многогранен как С++.
Юкихиро Мацумото, автор Ruby, захотел создать совершенный объектно-ориентированный язык, чтобы в нём максимально полно работал ООП-подход. Кроме этого, новый язык должен соблюдать свод правил, которых придерживался сам Юкихиро и которые сейчас называются «Путь Ruby». Вот некоторые из них:
Первая версия Ruby вышла в 1995 году, и за это время язык вырос от проекта одного человека до большого комьюнити и 1,27 миллиона строк кода. Сейчас Ruby — универсальный кроссплатформенный язык программирования и поддерживается всеми современными версиями Linux и MacOS.
Особенность языка
Прелесть и сила Ruby в том, что в нём вообще всё — это объект. Даже числа, значения переменных и типы данных — это тоже объекты. Например, у вас есть сложение, которое реализуется так:
7 и 5 — числа, за которые отвечает класс Numeric, и этот класс знает про знак сложения. Давайте немного расширим возможности этого класса:
С этого момента у всех чисел появляется метод plus, который складывает это число со вторым. И таким же способом можно расширить свойства и возможности каждого элемента в программе. Сделать автоматический перевод из минут в секунды? Легко:
И так можно делать с чем угодно, без ограничений и несовместимости типов. Да и какая может быть несовместимость, если типы — это тоже объекты, которые можно изменить. Это делает Ruby похожим на C++, где есть перегрузка операторов и возможность использовать команды не так, как задумано изначально.
Синтаксис
На первом месте в Ruby стоит читабельность и простота, поэтому этот язык реально освоить за неделю на базовом уровне.
Из заметных штук — не нужно ставить в конце каждой команды точку с запятой и все вложенности обозначаются пробелами, точно так же как в Python.
Комментарии. Пишем в начале строки знак решётки #, и за ней — комментарий любой длины. Ещё можно написать комментарий в несколько строк:
Типы данных. Так как в Ruby всё объекты, то даже типы данных — это тоже объекты, а значит можно менять их свойства и поведение. По этой причине в Ruby очень мало встроенных типов данных. Если программисту понадобится что-то сложнее, чем встроенные типы, он легко может создать свой тип с нуля или на основе встроенного.
Дробные числа: Float (число с плавающей запятой), Rational (рациональные числа) и Complex (комплексные числа с мнимой единицей).
Диапазон — за него отвечает класс Range и в нём хранится непрерывная последовательность целых чисел:
Условный оператор. Стандартная форма выглядит привычно:
Почему Ruby — идеальный язык для начинающего разработчика
Марат Хуснетдинов, основатель консалтингового проекта HowToHireMe, рассказал блогу Нетологии о своём пути в IT и о том, почему начинающим разработчикам стоит выбрать Ruby.
В разработке я около 5 лет. Начинал с фронтенда: вёрстка, стили и JavaScript, затем попробовал Ruby, немного поигрался с Python. В последнее время работаю с Elixir — это новый язык на erlang virtual machine — и с базами данных, и как технический специалист, кроме того управляю, продаю, выступаю как ментор. Есть опыт управления проектами, лидирование и продаж в IT. Сейчас у меня на двоих с партнёром консалтинговое агентство HowToHireMe.
Мы занимаемся помощью рекрутерам, которые работают в диджитале, более эффективно хантить разработчиков. Также помогаем молодым разработчикам делать первые шаги в карьере, показываем, как можно себя продвигать в карьере, как и куда можно двигаться или помочь более опытным ребятам сделать boost в карьере, чтобы она пошла выше.
Мы стараемся развивать наш проект в Open source — я очень активно пишу в open source Github-проекты, чтоб поддерживать опыт на уровне, не смотря на то, что уже ушел на управленческие позиции. За пять лет накопилось много багажа, о котором рассказываем ребятам, когда они приходят к нам на стажировку.
Сегодня расскажу, как эффективно построить карьеру в роли Ruby-разработчика и почему это более эффективно, чем в других языках. Расскажу, почему я пришёл в IT, какие были трудности, почему выбрал Ruby — выбор был непростой, но очень интересный.
Как я пришёл в IT
Хотел бы начать с простой идеи: у меня нет АК-47 с серебряными пулями — есть только опыт и путь, который я прошёл.
Для многих стоит вопрос, как вообще войти в IT: с чего начать, какие есть плюсы, какие минусы. Лично я вообще начинал со станков — работал на производстве. В прямом смысле: крутил гайки, запускал станки токарно-фрезерные. Программировать начал в 28 лет и думал, что это уже возраст, когда не очень просто сменить профессию.
Начинал с HTML и CSS. Пытался писать на 4-й версии PHP по книгам Котерова, после чего это всё успешно забросил. В аспирантуре, когда уже работал с оборудованием, меня познакомили с Python — я даже пытался писать на нём интерпретатор истории станков, чтобы нашим руководителям можно было отслеживать историю нажатия клавиш.
О трудностях, которые возникли при входе
Основная проблема — у меня не было знакомых разработчиков, не было наставника. Я примерно полгода изучал HTML и CSS, чтобы дойти до какого-то уровня в разработке. Были простые проекты, но они были маловостребованны для работодателя. В тот момент я не знал, у кого молодому разработчику спросить совета.
Консультанты просили большие деньги за такую информацию. Молодой разработчик платил и чаще всего понимал, что ему не рассказали ничего, чтобы продвинуться в работе. У Нетологии в этом плане есть плюс — у вас будет не один ментор, а целая группа. Можно переключаться и спрашивать, что и как нужно делать — есть возможность получить более объективную информацию и знания у нескольких человек.
Самое трудное в карьере — это выбрать свой язык, свой стек. Когда входил в мир фронтенда, нужно было знать очень много решений и фреймворков, уметь верстать правильно, понимать, какие используются приёмы при вёрстке, хорошо работать со стилями. В то время не было такого многообразия, как сейчас, но тоже было трудно выбрать набор скиллов. Сейчас же очень разросся стек фронтенда и молодым разработчикам всё труднее выбирать.
Я через это прошёл и предлагаю в качестве решения молодым начинающим разработчикам написать одну задачу на разных языках, на разных препроцессорах стилей — так поймете, что вам нравится.
Дальше будет стоять вопрос поиска работы. Для меня самым трудным в первой работе было понять, чего от меня хотят и как мне это сделать. Обычно здесь начинаются первые трудности, когда начинающий разработчик просто не знает, что ему говорить, что учить и что делать.
Когда ищете работу, работодателям важно увидеть ваши знания, портфолио, какой-то бекграунд — подойдут даже сертификаты и дипломные проекты.
Первая работа в компании была для меня самой сложной — стало понятно, что предстоит многое выучить, многое попробовать и очень многое прочитать.
Про Open source и сообщество
Ruby on Rails сам по себе был написан как opensource-проект, где каждый может поучаствовать в разработке этого проекта. Когда входил в Ruby-мир, то работал с тремя ребятами, которые на тот момент находились в core team разработки Ruby on Rails. Сейчас они уехали работать за границу или же работают удалённо на иностранные компании — в этом им как раз очень помог open source.
У меня не было open source-портфолио. Всем молодым разработчикам я всегда говорю: если вас нет Github-аккаунта, то заводите как можно быстрее.
Не важно, сколько вы напишете опыта в резюме, работодатель всё равно пойдёт смотреть на ваш Github-аккаунт и дату его регистрации — это и будет считаться официальным стартом вашей IT-карьеры.
И сейчас вам советую: просто возьмите и зарегистрируйтесь на Github.
Поработав с Python и Pyramid, я понял, что есть более развитые языки, с более развитой инфраструктурой и более отзывчивым сообществом разработчиков. Например, у Ruby сейчас самое развитое комьюнити: его можно сравнить только с JavaScript. Можно сказать, что Ruby-сообщество создало стандарты для тестирования приложений и многие решения мигрировали потом в JavaScript, Python и другие языки.
Фреймворк Ruby on Rails сейчас самый достаточный, самый полный и развитый — так считаю я, да и другие ребята в сообществе. Сейчас уже больше идут наработки по улучшению узких мест и добавлению каких-то специальных фич фреймворка.
Плюсы Ruby для новичка
Когда я входил в Ruby-мир, на Ruby уже было реализовано достаточно большое количество решений: были написаны Twitter, Aviasales, OneTwoTrip, Onlinetours. Множество решений для выкатки приложений тоже написаны на Ruby, например Puppet, Chef — это инструменты, с помощью которых приложения выкатывают на сервер, или Vagrant — виртуализация приложений — написана тоже на Ruby.
Некоторые государственные компании начали использовать язык Ruby, потому что он занял свою нишу как язык быстрого прототипирования проектов. Если вы сейчас хотите запустить свой стартап, то в 99% лучше использовать Ruby — как язык, который поможет вам очень быстро писать, двигаться по проекту и выкатывать его. На слайде пример синтаксиса.
Многие воспринимают Ruby как кукольный, детский язык, но это только начальное восприятие. Первое моё ощущение от Ruby — язык показался магически простым, потому что очень многое происходит за кадром. Он читается, как обычный текст. Меня подкупило, что можно опускать какие-то скобочки, какие-то вещи можно было писать более нативно. Когда вы понимаете язык, вы понимаете, что там нет никакой магии и всё достаточно предсказуемо работает.
Я вошёл в Ruby-мир как фронтендер. После чистого фронтенда для Pyramid меня пригласили работать в компанию, которая занимается разработкой на Ruby on Rails. В компанию зашёл как фронтенд-разработчик на Ruby и именно в это время и познакомился с самим фреймворком Ruby on Rails. Очень часто ребята начинают сразу учить сам фреймворк с минимальными знаниями языка. Моё мнение, что это ошибка и надо знать язык, потому что понимание языка даст вам большее понимание фреймворка Ruby on Rails.
Не будем забывать, что у Ruby on Rails тоже есть свои проблемы, которые сейчас пытаются решить. Нет ни одного языка, который мог бы решить все задачи: каждый язык берётся под определённое решение, идеального языка нет. Ruby on Rails и Ruby заняли свою нишу как стандарт разработки веб-приложений. Есть библиотеки, которые помогают писать JavaScript, такие как Opal, компилируются из Ruby в JavaScript; есть фреймворки, которые помогают писать приложения для мобильной разработки, например, RubyMotion.
Почему Ruby и Ruby on Rails перспективны
Быстрый вход в индустрию. Ruby — один из наиболее простых для изучения языков. Существует множество обучающих ресурсов, а вся нужная информация содержится в open source, поэтому не требует дополнительных трат с вашей стороны — только если понадобится какое-то очень специфичное решение, но это вряд ли случится на начальном этапе.
Качественный вход. На Ruby очень просто изучать объектно-ориентированное программирование. Здесь проще читается код, проще приводятся примеры и проще само понимание кода — для новичка это плюс. В некоторых проектах доходит до того, что вы можете читать без скобок код и понимать, что он выглядит почти как обычный текст, за исключением некоторых уникальных программ, которые пролетают где-то в коде.
Высокая конкурентная мотивация. Я могу судить по Воронежу, где годовалый джуниор-разработчик на Ruby может просить зарплату в районе 90 тыс. руб. в месяц. Это достаточно серьёзные деньги. А на входе можно получать от 30 до 40 тыс. руб.
Если вы будете искать работу, то вы должны понимать, что Ruby on Rails — это комьюнити, где люди привыкли работать в стартапах. В 80% это будут небольшие компании, зарубежные или нет, и в меньшей степени — большие компании. Государственные компании также в последнее время переходят на разработку на Ruby on Rails. Они понимают, что платить джависту или дотнетчику за то, что он будет писать год — это очень дорого. Проще заплатить Ruby-разработчику, который стоит чуть подороже, но напишет решение за 2−3 месяца.
Возможность релокации. Здесь речь идёт о знании английского языка: если знаете английский на разговорном уровне или хотя бы можете переписываться, то ваша цена сразу растёт. Есть компании, которые работают на российский рынок и ограничения у таких русскоязычных компаний где-то в районе 3000 долларов. Если вы выйдете на уровень зарубежных компаний, то зарплата будет варьироваться от 2500 до 5000 долларов в американских компаниях. Поэтому советую как можно скорее начинать учить английский язык.
Opensource-головорезы. Open source — это не инхаус-разработка, а разработка на комьюнити: любой человек сможет прийти и оценить ваши наработки, а работодатели и заказчики очень часто требуют показать Github-профиль. Поэтому я советую не только завести аккаунт на Github, но и начать прокачивать его.
Как расти в профессии
Самая главная проблема для начинающих — понять, как правильно писать, что использовать, как использовать. Тут я бы просто посоветовал почитать блоги ведущих разработчиков и изучать практики — именно они позволяют ребятам расти быстрее.
Возможно, вы не сразу поймёте эти практики. Я сам не сразу всё понимал, но по ходу действия вы всё больше будете разбираться в том, что происходит и как это происходит. И вам легче будет принимать лучшие решения.
Пригодится любой предыдущий опыт работы. Например, если вы до этого занимались ремонтом или продажей машин, то наиболее перспективно реализовать себя сможете скорее всего именно в тех проектах, где используется эта тематика.
Для понимания скажу так: старшие разработчики — это, как правило, люди, которые не только хорошо пишут код и умеют дебажить, но и хорошо понимают специфику текущего проекта.
Один и тот же разработчик может показать себя, как опытный в рамках одного проекта и как неопытный на другом проекте. И это связанно именно с тем, что человек должен знать специфику проекта.
Касательно построения карьеры в разработке, считаю, что каждый разработчик должен знать фронтенд в той или иной степени, и не важно — вы будете чистый бекенд или нет. С фронтендом, вёрсткой и разметкой вам всегда придётся работать. Стоит развиваться не только вглубь, но ещё и вширь — поглощать другие сферы.
Сейчас фронтенд усложнился намного больше, чем бекенд. Стоит понимать, как с ним работают, где с ним работают, как выстроить хорошую архитектуру для фронтенда. Потому что зачастую проблемы начинаются с фронтенда и уже потом заканчиваются на бекенде. Сайты сейчас становятся очень большими и тяжёлыми, фронтенд периодически нужно улучшать и делать так, чтобы он меньше весил и быстрее загружался.
Требования постоянно растут к разработчикам и их проектам. И соответственно с базами данных надо уметь работать. Потому что если вы не умеете работать с базами данных, обращаться к ним, то проект будет терять очень много денег и никакой клиент не захочет вам платить хорошие деньги, если вы не можете выстроить хороший фреймворк в данной ситуации под данную задачу.
Моё мнение: чтобы стать современным разработчиком, надо знать фронтенд — хотя бы чуть-чуть, затем изучить бекенд, если это основное направление, а после этого ещё и получить базовые знания DevOps и QA.
Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.
10 причин для перехода на Ruby
Я познакомился с Ruby сравнительно недавно, благодаря чудесному фреймворку Ruby on Rails. Я не считаю себя экспертом в Ruby, но я прочитал PickAxe, написал несколько утилит на Ruby для личного пользования, а также разрабатываю на Rails в свободное время.
Ruby на данный момент, мой основной язык. Начинал же я с TurboPascal в школе, изучал C и C++ в университете, дисертацию писал на Java, а еще я изучал PHP с нуля, так как хотел научиться делать веб-сайты быстро и легко. Думаю, что написание кода для меня это некая форма развлечения, а уж потом все остальное. В начале у меня были размышления, какой язык изучать, Python или Ruby. Я выбрал второй, так как не хотел, чтоб неправильные отступы были причиной неполадок в моем коде.
Есть целая куча введений, руководств, статьей и эссе, написанных гуру, о том, как получить максимум пользы от Ruby. Данная статья ничем таким не является.
Это более скромный, неполный перечень причин, которые могут (или не могут) побудить вас использовать Ruby, ну или в крайнем случае поиграть с ним. Предостережение: если вы используете другой язык программирования для работы или в других целях — не жалуйтесь мне, если больше не захотите им пользоваться. Именно это и произошло со мной, но для меня это не столь важно. Ruby чудесный и элегантный язык и как многие подобные вещи, он может захватить ваш разум и поломать душу.
Короче, вы — предупреждены.
Зачем изучать Ruby?
1.Вы получаете все удобства (удовольствия) без уловок.
2.Вы полюбите мелочи.
3.Больше не нужно использовать точку с запятой.
Хотите написать следаующую инструкцию? Просто переходите на новую строку. Нажмите «Enter» и готово. В Ruby как и в Python, новая линия разделяет инструкции, так что вам не придется все время ставить точку с запятой. К сожалению это означает, что подобно фанатам C++, мы не сможем написать программу в одну строчку. Но это не так уж и плохо, правда?
4.Все является объектом, как это и должно быть.
— «Че, 14 и 374346.678 — объекты?»
— «Нет, глупыш, это числа!»
5.Все имеет значение.
Или «больше не надо использовать return для возврата значений». Если побыстрячку, то так: все инструкции в Ruby возвращают значение, даже присваивание переменных, так что вам действительно не нужно использовать ключевое слово «return» в конце методов. Значение последнего присваивания всегда будет возвращено.
6.Можете изменять окружение любым доступным способом.
7.Вы не сможите получать единорогов из птиц и конец, но вы получите ослов, если захотите.
Я четко помню, как моя учительница по C++, использовала животных, для иллюстрации основных концепций объектно-ориентированного программирования — классов и наследования. Было нечто загадачно, когда объясняла нам множественное наследование, образовывая «пегаса» из «птиц» и «лошадей». Сумасшедшие вещи, Ruby не позволяет множественного наследования. Это выглядит как тренд и в конце-концов это дело вкуса. Я не в восторге от множественного наследования, так как это может привести к непредсказуемым вещам. Несмотря на это есть возможность создания нечто подобного, используя модули Ruby, так что переменные и методы одного модуля, будут добавлены в определенный класс, если модуль включен в него.
8. XML — реально ненужен.
9.Лямбда — нечто больше, чем просто греческая буковка.
Ruby позаимствовал некую магию из Lisp и Perl в объекты и блоки Proc. Proc — это «блок кода, связанный с набором локальных переменных. Однажды связанные, они могут вызываться в различных контекстах и все еще обращаться к тем переменным.». Поглядим на следующе:
def gen_times(factor)
return Proc.new <|n| n*factor >
end
times3 = gen_times(3)
times5 = gen_times(5)
times3.call(12) #=> 36
times5.call(5) #=> 25
times3.call(times5.call(4)) #=> 60
Можно было использовать ключевое слово lambda вместо Proc.new, на результат это не влияет. Это могло показаться знакомым людям, знающим Perl и Python (или Lisp). Такое можно сдалать даже на PHP, но не много людей пользуются этой возможностью.
Кроме того в Ruby широко используются блоки типа «несозданные Proc», например, для итерации по содержимому объекта и исполнения некоторого кода, подобно методу each, доступного для класса Array:
[1, 2, 4, 6, 8].each <|c| puts c*2>#=> возвратит каждый элемент, умноженный на 2
Если код не умещается на одной строчке, рекомендуется использовать конструкцию do… end, вместо использования скобок. Фаны Ruby не любят скобок.
10. Вы можете использовать Rails.
Последнее, но не по важности… Вы всегда можете использовать Rails для разработки веб-приложений. Разработка будет не настолько простой, как с PHP, но Rails были написаны на Ruby, поскольку он имет возможности, отсутствующие в других языках.
Заключение
Время вышло. Возможно вы уже задумываетесь о взгляде на Ruby, возможно вы уже пробовали его, а возможно вы просто проигнорировали его. Как бы там нибыло, в следующий раз, когда глядя на свой код, он будет казаться страшным, а размер его устрашающим — не обвиняйте меня.
Уважаемые Читатели — не забывайте, что хабраюзер, просто перевел (паршиво, да) текст. Идеологических претензий ему высказывать нет нужды.
История языков программирования: о прошлом, настоящем и будущем Ruby
Часто людская молва годами приговаривает тот или иной IT-продукт к «смерти». Если этого не происходит, молва продолжает терпеливо ждать. А если когда-нибудь тот или иной проект закрывается, кто-нибудь обязательно выждет момент и скажет: «А мы ведь говорили, что это случится».
Сколько лет подряд языку PHP пророчат «смерть»? Но ему, кажется, хоть бы что. А в последнее время он даже стал развиваться активнее. Язык программирования Ruby развивается медленно, с неспешностью, свойственной восточному, а точнее, азиатскому мировосприятию. Естественно нашлись те, кто и ему предвещает скорый закат.
Однако сообщество Ruby живее всех живых, а некоторые исследования показывают, что его популярность вновь растет. Как бы там ни было, Ruby сумел занять особое место в сфере веб-разработки. Как его создателям удалось этого добиться? Что происходит с ним сейчас? Какое будущее ждет Ruby?
Создатель Ruby Юкихиро Мацумото (он же «Matz») попытался взять лучшее из своих любимых языков программирования (Perl, Smalltalk, Eiffel, Ada и Lisp) и соединить в рамках нового языка функциональную и императивную парадигмы программирования. Он часто повторял философскую мысль о том, что пытается сделать Ruby естественным, но не простым языком, который отражает жизнь.

24 февраля 1993 года считается днём рождения языка Ruby. Но в тот день было придумано только название для этого языка, и никакого кода еще не существовало. Мацумото выбирал между двумя вариантами названия – «Ruby (рубин)» и «Koral (корал)». Был выбран первый вариант, потому что это был камень по гороскопу одного из сотрудников Мацумото.
Первый публичный релиз Ruby 0.95 был представлен на японской внутренней телеконференции 21 декабря 1995 года.
Впоследствии ещё три версии Ruby были опубликованы в течение двух дней. Даже в ранних версиях Ruby уже были заложены возможности, которым Мацумото придавал особенное значение: объектно-ориентированное проектирование, классы с наследованием, итераторы, замыкание, обработка исключений и сборка мусора.
За период с 1995 по 2002 год вышло около двадцати книг о Ruby. В Японии он стал более популярным языком, чем Python.
Знакомство же международного сообщества началось после перевода его документации на английский язык и создания первых списков рассылки в 1998-м году. После 2000-го года началось распространение Ruby по всему миру, чему способствовало появление англоязычных книг, в первую очередь, «Programming Ruby: The Pragmatic Programmers’ Guide» и «Why’s (Poignant) Guide to Ruby».
После релиза Ruby 1.3 в 1999 году заработал первый список рассылок ruby-talk на английском языке, который свидетельствовал о росте интереса к языку за пределами Японии.
Однако до 2004 года Ruby не был широко известен в Европе и США. Благодаря своим возможностям и большому количеству поддерживаемых платформ Ruby постепенно завоевывал аудиторию.
В 2004 году появился фреймворк Ruby on Rails. Он был создан Давидом Хейнемейером Ханссоном совместно с 37signals, расширен и усовершенствован усилиями команды разработчиков ядра Rails и сотнями open source разработчиков.
Переломные моменты
Ключевыми событиями в истории Ruby стали выход Ruby 1.8.0 в 2003-м и новой версии framework’а Ruby on Rails 2.0 в 2007 году. В это время значительно усилился интерес к использованию языка для серьёзных коммерческих проектов.
«Итак, Rails сделал Ruby популярным. Это факт. Я стал Ruby-разработчиком, что в свою очередь изменило мою карьеру и дало мне много удивительных возможностей, именно благодаря Rails. Многие рубисты тех дней прошли по тому же пути. Мы все здесь благодаря Rails. Во многих случаях, Rails на самом деле оказал огромное влияние на людей, и буквально улучшил им жизнь. Люди получили лучшие рабочие места, лучшие возможности и хорошие деньги. Это было радикальной сменой условий «игры» для многих из нас», писал Piotr Solnica.
Если до версии 1.8 язык развивался, сохраняя совместимость с предыдущими версиями, то позже разработчики Ruby, во главе с Якихиро Мацумото, отказались от полной совместимости. Поэтому разработка Ruby разделилась на две ветви: поддержка версий 1.8.* и создание новых версий 1.9.*, которые являются предтечей следующей версии языка, Ruby 2.
Серьёзные изменения к лучшему произошли с выходом Ruby 1.9.1 в 2009-м и Rails 3.0 в 2010-м году, когда большинство замечаний были учтены и исправлены.
Достижения
К 2011 году в Ruby/Rails были реализованы практически все наиболее перспективные технологии и подходы к программированию, таких как разработка через тестирование (TDD), полноценная модель реализации концепции MVC, работа с базами данных через ORM (ActiveRecord), шаблоны проектирования (Design Patterns), использование удобного JavaScript-framework’а Prototype (для простой работы с AJAX), работа с распределённой системой контроля версий Git (Github.com).
Фреймворк нашел применение в разработке SaaS (Cloud computing).
Ruby on Rails использовался при создании таких популярных сайтов, как Твиттер, SoundCloud, Airbnb, Diaspora, Groupon, Basecamp, GitHub, Hulu,Scribd, Kickstarter, Change.org.
31 марта 2012 года по результатам голосования был принят стандарт ISO/IEC 30170 на язык Ruby.
В ноябре 2015 года вышла версия Ruby 2.3.0-preview1. Уже несколько месяцев сообщество следит за релизом Ruby on Rails 5.0.
Согласно данным на июнь 2016 года, индекс TIOBE, который измеряет рост популярности языков программирования, показал, что Ruby занимает 10 место. Однако, это на 6 позиций выше по сравнению с прошлым годом.
Разные Ruby
За годы существования официального интерпретатора его успели портировать под большинство платформ, включая Unix, Microsoft Windows (в том числе Windows CE), DOS, Mac OS X, OS/2, Amiga, BeOS, Syllable, Acorn RISC OS и другие. Для Windows существует специализированный установщик RubyInstaller и есть возможность запуска под Cygwin для большей совместимости с Unix.
Со временем Ruby и Ruby on Rails стали практически синонимами – особенно среди непосвященных. Дело в том, что фреймворк Ruby on Rails стал выбором программистов по умолчанию. Он продолжает развиваться и остается по-прежнему бесплатным. Этот фреймворк описывает компоненты веб-приложения в рамках шаблона MVC (Model-View-Controller), а также предоставляет готовую интеграцию с сервером приложения и интерфейс для доступа к базе данных. Указанного инструментария достаточно, чтобы в считанные часы создать и запустить простой блог или частную веб-страницу.
Существуют и другие Ruby-фреймворки.
«Merb — проект, созданный Ezra Zygmuntowicz. Он начался как хак, чтобы сделать загрузку файлов быстрой и потокобезопасной. И он прошёл интересный путь от этого хака до модульного, потокобезопасного, быстрого full-stack фреймворка для разработки веб-приложений. Merb имел 3 режима: режим полного стека, режим API и микро-режим, в котором он был урезан до минимума. Это было самой быстрой вещью, когда-либо существовавшей в Ruby-мире. Это было более 7 лет назад», – рассказывает Piotr Solnica.
В 2008 году команда Merb вошла в состав Ruby on Rails.
Sinatra — для микросайтов и микросервисов до 50 строк кода. EventMachine — для асинхронных долгоиграющих задач. Если нужно разработать небольшое веб-приложение, то можно использовать Padrino.
«Padrino — более «сахарный» Sinatra. Достаточно удобен для небольших сайтов. И создания api. Альтернатива, к более избыточному и тяжелому Rails», пишет пользователь «Тостера» под ником frolin.
Критика
Что думают пользователи «Тостера» по поводу недостатков Ruby on Rails?
«Недостаток, который для меня поставил крест на руби и рельсах — отсутсвие вменяемого DataMapping (чуть более сложный и действенный аналог ActiveRecord) со всеми его замечательными DAO\Repository, Registry и так далее». (Кирилл Саксин, PHP-developer, Backend)
1. Рельса кушает много памяти. Рельса вообще избыточна для мелких проектов. Там лучше идут всякие Синатры, Падрино и так далее.
2. Трудности долговременной поддержки больших проектов.
3. Проблемы для хостеров. Создать и обслуживать PHP-хостинг гораздо проще. Есть, конечно locum.ru и heroku, да и всё, пожалуй.
4. Кадровая проблема. Найти [разработчика] на PHP или Java проще.
«После написания пары тройки сайтов понял, что в принципе Rails и Ruby не имеют для меня смысла, и вернулся на Django и Python. По мне, из скриптовых языков Python – наше все. И под Desktop можно писать уже и под мобильные можно с Kivy. Да и тут Node.js уже есть со своей асинхронностью и возможностями в реалтайм-приложениях. Если рубисты не придумают чего-нибудь в ближайшие годы сверх ординарного для популяризации Ruby, он просто умрет, так как он просто станет никому не нужен». (Raidhon)
1. Нет WordPress. Да! Как только WordPress перепишут на Ruby, его сразу начнут использовать все, кому не лень.
2. А можно мне сайт на Joomla? Просто у нас контент-менеджер уже привыкла к её админке.
3. А почему хостинг стоит 200 рублей? У меня сосед по офису вон за 40 купил.
1. А где фигурные скобочки?
2. Магия. Очень много магии. Оно всё делает «само», вплоть до квази-версионирования базы данных по датам. К этому надо привыкнуть, что не все готовы делать.
3. У меня заняло два дня, чтобы смочь подключиться к mysql. Возможно, я не самый опытный программист, но обилие вопросов на stackoverflow, и не только, наводит на мысль, что половина желающих отсеялась на этом этапе и пошла ставить WordPress.
Аргументы в защиту Ruby
Благодаря детально описанному стандарту, которому должны соответствовать все пакеты и библиотеки на Ruby, разработка дополнений не составляет особого труда. Поэтому среди так называемых Ruby Gems (от англ. — драгоценный камень) можно найти модули для решения практически любых задач — от интеграции с социальными сетями и сторонними сервисами до готовых платформ для электронной коммерции.
Все, что нужно для использования сторонней библиотеки — это описать зависимость своего проекта от какой-то библиотеки, находящейся в удаленном или локальном репозитории, и при следующей сборке эта библиотека автоматически загрузится в приложение. Это также упрощает миграцию проекта между разработчиками, так как нет необходимости вручную делиться зависимостями для сборки проекта, пишут в одном из обзоров Ruby.
По поводу преимуществ этого языка программирования пользователь «Хабра» под ником urvalla в своей статье пишет следующее:
Язык программирования — это не только синтаксис, сборщик мусора, не только парадигма языка, и даже не столько его философия, в первую очередь — это коммьюнити и та кодовая база, которую это коммьюнити создало. Особенно сейчас, в эпоху OpenSource. И тут у Ruby первый жирный плюс в карму.
Известно утверждение о том, что Ruby медленный. И поспорить сложно, ведь Ruby интерпретируемый язык. И что характерно, чаще всего я это слышу от тех, кто пишет (исключительно) на PHP, который тоже интерпретируем, и по скорости в синтетических тестах находится примерно на том же уровне. Скорее всего, это отголоски дурной славы старых версий.
По факту, мне приходилось работать и с Rails и с Symfony2 — на реальных приложениях Rails быстрее при одинаковом уровне оптимизации.
И не нужно забывать, что и главная нагрузка, и бутылочные горлышки, зачастую — это базы данных, а веб-приложение – это всего-лишь прослойка бизнес-логики. А такая прослойка неплохо масштабируется.
Настоящее и будущее

Конференция разработчиков на Ruby и Rails
Мы пообщались с некоторыми Ruby-разработчиками по поводу того, что происходит с Ruby сейчас, а также узнали их мнение о перспективах проекта.
Где востребован Ruby и фреймворки на его основе в наши дни?
— Ruby своей популярностью во многом обязан фреймворку Ruby On Rails, поэтому основная его сфера применения сейчас — это веб-разработка и всё, что с ней связано.
Какие у него перспективы?
— Вокруг Ruby сформировано очень сильное комьюнити. Несмотря на некоторый спад интереса к языку в последнее время, Ruby продолжает активно развиваться и двигаться вперед.
Какой-то язык или технологию можно считать возможным «убийцей» Ruby?
— Ничего конкретного на ум не приходит. Есть Elixir и Crystal, но они, на мой взгляд, еще довольно молоды, и использовать их можно только на свой страх и риск. Лично я сейчас смотрю в сторону Go, но не в качестве альтернативы, а скорее дополнения, для решения специфических задач.
Где востребован Ruby и фреймворки на его основе в наши дни?
— Основная специализация языка программирования Ruby и фреймвока Ruby on Rails – разработка стартапов. На Ruby on Rails очень просто и быстро создавать уникальные и технически сложные проекты, которые вышли за рамки стандартных движков. Нужен сайт визитка — бери WordPress. Нужен интернет магазин — купи «Битрикс».
А вот если нужен уникальный стартап, который состоит из «семи красных линий и все они должны быть перпендикулярны друг другу, причем некоторые должны быть нарисованы зеленым цветом, некоторые — прозрачным, плюс одна — в форме котенка», – вот это задача для Ruby on Rails.
Какие у него перспективы?
— Язык и фреймворк продолжают развиваться, а комьюнити – расти. В этом году в Москву на http://railsclub.ru приезжает создатель языка Юкихиро Мацумото. Все ждут пятой версии Rails, которая должна быть готова в самое ближайшее время.
Какой-то язык или технологию можно считать возможным «убийцей» Ruby?
— Хайп вокруг Ruby, который был в прошлые годы, спадает. Ruby перестает быть модным, но продолжает быть эффективным инструментом для построения стартапов. Убийц нет.
И в конце вновь предоставим слово пользователю «Хабра» под ником urvalla:
Есть множество прекрасных языков и фреймворков для написания веб-приложений, и Ruby с Rails не являются серебряной пулей, которая убьет всех кроликов-оборотней сразу. Просто, на мой взгляд, если брать совокупность важных критериев, а не пытаться выбрать по одному-двум из них, RoR набирает действительно много очков.
В том числе и по зрелости — это уже давно не хипстерская платформа, в которой есть только потенциал, но еще и не старичок (а примеров и тех и других уйма). И старичком, я думаю, еще долго не станет, так как потенциал для роста и развития еще есть и у Ruby, и у Rails.
