Язык ruby применение. Что такое "Руби" (Ruby)? Язык программирования "Руби". Важные личные качества

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

Краткое описание

Язык Ruby, который отличается открытым исходным кодом, был создан в начале 90-х годов японским разработчиком, в открытый доступ он попал в 1995 году. За пределы Японии Ruby вышел не сразу, ведь в первые годы его существования ни один документ не был переведен на европейские языки. Лишь в конце 90-х годов появилась тех. документация на английском, а рассматриваемым языком программирования заинтересовались многие разработчики.

Заметим, что до сих пор существует очень мало технической литературы, переведенной на русский, поэтому разработчик обязательно должен знать английский или японский язык. Сегодня этот язык программирования входит в Топ-5 самых популярных, уступая лидирующие позиции Java, JavaScript и PHP.

Ruby человеку без профильного образования будет сложно освоить. Работать с ним смогут лишь те программисты, которые в течение нескольких лет использовали C#, C++ или Java. Ruby отличается простым синтаксисом, многопоточным программированием, поддержкой обработки исключений, в нем данные — это объекты.

Особенности профессии

Работа программистов Ruby не отличается от труда разработчиков, использующих язык JavaScript или PHP. В их задачи входит создание программного обеспечения, его отладка и дальнейшее сопровождение. Обязанности программиста определяет компания, в которой он работает:

  • совершенствование и доработка функционала интернет-магазинов, приложений и т. д.;
  • техническая поддержка плагинов в различных системах;
  • создание приложений для Android, веб-приложений, игр, платформ и других продуктов;
  • проектирование архитектуры баз данных;
  • тестирование и отладка созданного ПО;
  • взаимодействие с дизайнерами, разработчиками и другими членами команды;
  • управление проектом.

Плюсы и минусы профессии

Плюсы

  1. Простой и понятный динамический язык программирования.
  2. Небольшое количество опытных Ruby-разработчиков, что повышает ценность профессии в глазах работодателя.
  3. При наличии профессиональных знаний освоить Ruby можно достаточно быстро.
  4. Стабильная и высокая заработная плата, получение бонусов при условии успешной работы.
  5. Трудиться можно в офисе или удаленно, самостоятельно планируя рабочий день.
  6. Постоянный карьерный рост.
  7. Разработчики добиваются успеха очень быстро, ведь можно стать Ruby Senior в возрасте 25-30 лет.
  8. Начинать работать можно еще во время обучения, что принесет и прибыль, и опыт.
  9. Большое количество онлайн-курсов и свободных программистов, готовых обучать студентов.

Минусы

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

    1. Спокойствие, ведь часто приходится выполнять работу в авральном режиме.
    2. Полная самоотдача и терпеливость, что особенно касается отсутствия графика рабочего дня, внесения бесконечных изменений, исправления ошибок.
    3. Коммуникабельность, ведь необходимо находить общий язык с дизайнерами, заказчиками, сторонними программистами.
    4. Скромность и интеллектуальность.
    5. Честность и техническая грамотность.
    6. Творческий поход.
    7. Добросовестность.
    8. Отсутствие вредных привычек.
    9. Находчивость.

    Обучение на программиста Ruby

    Вузы

    Место работы

    1. IT-компании.
    2. Рекламные агентства.
    3. Частные разработчики ПО.
    4. Банковская система.
    5. Другие организации, которым для работы необходим программист.

    Карьера

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

    • Junior (до 18 месяцев опыта);
    • Middle (до 3-4 лет опыта);
    • Senior (более 4 лет опыта).

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

    Зарплата Программиста Ruby

    Зарплата на 03.02.2020

    Россия 30000—120000 ₽

    Москва 50000—230000 ₽

    Профессиональные навыки

    1. Знание Ruby и Ruby on Rails.
    2. Опыт работы с PHP, Java, C++ и т. д.
    3. Желателен опыт работы в сфере программирования не менее 2-3 лет.
    4. Обязательное знание иностранных языков.
    5. Знание MySQL, PostgreSQL, JSP, HTML, UnitTest, Grails, CSS.
    6. Git, Subversion или Mercurial.
    7. Разработка технической документации.

    Полезные материалы

    1. Русскоязычный форум о Ruby: onrails.club.
    2. Сайт с переводами для Ruby: rusrails.ru.
    3. Крис Пайн «Учись программировать».
    4. Майкл Фитцджеральд «Изучаем Ruby».
    5. Giovanni Sakti, Nia Mutiara, Хафис Бари Лубис «Learning Devise for Rails».

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


    История языка Ruby

    Ruby в качестве языка программирования существует довольно давно. Впервые работа над редакцией этого известного на сегодня языка началась в 1993 году. Первая первая официальная версия вышла в 1995 году. Создателем языка является Юкихиро Мацумото. Его энтузиазм в области программирования был замечен еще в студенчестве, но идея создания своего инструмента появилась намного позже. Итак, в чем же особенности примечательного в этом языке программирования? Благодаря чему была достигнута популярность на мировой арене?

    Язык программирования Ruby – достаточно интерпретируемый. Это язык высокого уровня, имеющий динамическую типизациею и независимую от исполняющей среды реализацию многопоточности. В нем существует собственный сборщик мусора. В области особенностей синтаксиса он больше всего приближен к языкам Perl. В результате широкого развития экосистемы данная платформа много взяла у Smalltalk, Python, Lisp и прочих языков программирования. Большую важность представляет и то, что язык Руби и его реализация полностью свободны. Из этого следует, что каждый желающий имеет возможность предложить собственные изменения. В случае, если они будут приняты сообществом, войдут в последующую версию языка.

    Философия Ruby

    В процессе создания собственного детища Мацумото, будучи преданным фанатом и энтузиастом объектно-ориентированного программирования, стал автором определенной философией для программистов, которые предпочитают изучить его язык. Таким образом, язык программирования Ruby предусмотрен для создания простых и понятных приложений. Главный упор был сделан на простоту и читабельность кода, а не на скорость программы. Именно в этом состоит причина того, что данную платформу зачастую выбирают как входную, необходимую для обучения программистов. Основная суть, на которой основан этот язык, состоит в принципе «наименьшей неожиданности». Что это означает?

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

    Основные характеристики

    Что означает Руби при его рассмотрении в качестве языка программирования? В первую очередь это объектно-ориентированный язык. В нем отсутствуют примитивные типы, так как все структуры и единицы данных считаются объектами. Это и отличает его от того же языка Java, где присутствуют примитивные структуры данных. Все функции в Руби являются методом. Большая часть свойств и возможностей привнесены авторами из других языков программирования. Таким образом, можно смело утверждать, что Ruby содержит в себе лучшие качества множества других языков и технологий. Например, в экосистеме Руби существует собственный сборщик мусора.

    Его идея была перенята из Smalltalk и Java. Он способен работать со всеми объектами в системе. Данный механизм дает возможность осуществлять очистку памяти от объектов, в которых утрачена востребованность, что происходит незаметно для пользователя приложения и разработчика. Сборщик мусора помогает разработчику не отвлекаться на управление памятью приложения. Таким образом, он может полностью сосредоточить свое внимание на функциональности и удобстве использования.

    Парадигмы языка

    Некоторые программисты, которые отвечали на вопрос о том, что представляет собой Руби в качестве мультипарадигменного языка, невольно оказывались в пылу спора. Данный язык дает возможность применить любую из парадигм программирования с одинаковым успехом. Из них стоит выделить следующее:

    Процедурный стиль программирования;
    объектно-ориентированный подход;
    функциональный подход.

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

    Причины известности

    В большинстве случаев данный язык получил известность за счет простоты разработки всевозможных дополнений к нему. Таким образом, число фреймворков и библиотек неизменно возрастает, а задачи, решаемые ними самостоятельно, дают возможность разработчикам в самые короткие сроки довести продукт до готового состояния. Зачастую программирование Руби ассоциируется с созданием веб-приложений, а также поддержкой функционирования всевозможных сайтов и интернет-платформ. Данную нишу язык смог занять за счет собственной простоты и скорости разработки. Стоит отметить, что альтернативные платформы (к примеру, Java), нуждаются в значительно большем багаже знаний и опыте, предназначенных для решения аналогичных задач.

    Известные фреймворки

    Говоря об известных фреймворках, существующих на рынке на сегодняшний день, стоит отметить среди них Rails. Большинство пользователей, которые отвечают на вопрос о том, что представляет собой Руби, на уровне интуиции подразумевают RubyOnRails. Данный набор программных элементов является промышленным стандартом у разработчиков. Он регулярно поддерживается, находится в постоянном развитии, пополняется сообществом программистов. Стоит отметить, что при всем этом он остается бесплатным.

    Представленный фреймворк способен описывать компоненты веб-приложения в границах шаблона MVC (Model-View-Controller). Кроме того, он готов предоставить готовую интеграцию с сервером приложения, а также интерфейс, позволяющий открыть доступ к базе данных. Такие три компонента дают возможность буквально в считанные часы написать и произвести запуск в интернет простого блог или частной веб-страницы. Существует возможность создавать на языке программирования Ruby даже нативные мобильные приложения. Это достигается при использовании библиотеки RubyMotion. С ней можно исполнять код Ruby на платформах iOS, OS X и Android. Эта библиотека разработана частной группой производителей. Это означает, что за использование придется платить, однако она является очередным подтверждением широких возможностей языка.

    Важность написания тестов

    Еще одна немаловажная составляющая экосистемы языка Ruby, а также его веб-ориентированной части, состоит в фреймоврках и библиотеках, предназначенных для написания тестов. RubyOnRails использует философию BDD (behavior-driven development). Это значит, что сначала программист разрабатывает последовательность тестов, которые описывают ожидаемое поведение программы. Затем он создает код, необходимый для успешного прохождения этих тестов. Негласным стандартом в данной области считается RSpec. Он представляет собой фреймворк, который дает возможность писать тест-кейсы на языке, понятном даже неопытным пользователям.

    Ruby Gems

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

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

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

    В сегодняшней статье мы рассмотрим три наиболее популярных языка, применяемых в веб-разработке: PHP , Ruby и Python . Мы узнаем, как они выглядят, чем отличаются друг от друга, насколько и среди какой аудитории они популярны.

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

    PHP: самый популярный язык для Интернета

    PHP (Hypertext PreProcessor , препроцессор гипертекста) – язык программирования, исполняемый на стороне веб-сервера, спроектированный Расмусом Лердорфом (Rasmus Lerdorf ) в качестве инструмента создания динамических и интерактивных веб-сайтов.

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

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

    • является свободным программным обеспечением, распространяемым под особой лицензией (PHP license);
    • легок в освоении на всех этапах;
    • поддерживается большим сообществом пользователей и разработчиков;
    • имеет развитую поддержку баз данных;
    • имеется огромное количество библиотек и расширений языка;
    • может использоваться в изолированной среде;
    • предлагает нативные средства организации веб-сессий, программный интерфейс расширений;
    • является довольно полной заменой проприетарной среды ASP (Active Server Pages ) от Microsoft ;
    • может быть развёрнут почти на любом сервере;
    • портирован под большое количество аппаратных платформ и операционных систем.

    Недостатки PHP:

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

    Согласно Википедии , на 1 января 2013 года PHP был установлен на более чем 240 миллионах веб-сайтов (39% от всего объёма исследованных) или на 2,1 миллионах веб-серверов.

    Использование

    Скрипты, написанные на языке PHP , обычно хранятся в файлах с расширением .php , которые содержат в себе смесь обычных HTML -тэгов со специальной разметкой: открывающим тэгом :

    Ruby: интерпретируемый, чистый ООП-язык

    Ruby – динамический императивный объектно-ориентированный язык программирования, разработанный Юкихиро Матсумото . Ruby был создан под влиянием таких языков, как Perl , Eiffel и Smalltalk .

    Он характеризуется динамической типизацией и автоматическим управлением памятью. Язык Ruby используется в веб-разработке в составе открытого веб-фреймворка Rails , чаще называемого Ruby on Rails (RoR ):

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

    • открытая разработка;
    • работает на многих платформах;
    • может внедряться в HTML -разметку;
    • относится к языкам программирования сверхвысокого уровня (VHLL ), то есть обладает высоким уровнем абстракции и предметным подходом в реализации алгоритмов;
    • реализует концептуально чистую объектно-ориентированную парадигму;
    • предоставляет продвинутые методы манипуляции строками и текстом;
    • легко интегрирует в свои программы высокопроизводительные серверы баз данных (DB2, MySQL, Oracle и Sybase );
    • благодаря VHLL программы на Ruby хорошо масштабируются и легко сопровождаются;
    • простой и чистый синтаксис значительно облегчает программистам первые шаги в обучении этому языку;
    • имеется простой программный интерфейс для создания многопоточных приложений;
    • имеет продвинутые средства для работы с массивами;
    • возможности языка можно расширить при помощи библиотек, написанных на C или Ruby ;
    • зарезервированные слова могут являться идентификаторами, если это не создаёт неоднозначности для парсера;
    • дополнительные возможности для обеспечения безопасности;
    • встроенный отладчик.

    Недостатки Ruby:

    • обучение языку выше начального уровня может оказаться непростым;
    • информационных ресурсов, посвящённых Ruby , явно недостаточно;
    • Ruby менее производителен по сравнению со многими другими языками, применяемыми в веб-разработке;
    • Ruby относительно медленно разрабатывается и развивается.

    Проекты, использующие Ruby:

    • Google SketchUp ;
    • 37signals ;
    • GitHub ;
    • Shopify ;
    • Indiegogo ;
    • Basecamp .

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

    Согласно официальному сайту Ruby , этот язык входит в десятку наиболее популярных языков программирования. Рост популярности самого языка обусловлен популярностью программных продуктов, написанных на Ruby , в особенности RoR .

    Использование

    Файлы программ, написанных на Ruby , имеют расширение .rb . Эти файлы можно запустить как скрипты командной оболочки при помощи интерпретатора. Например, учитывая, что интерпретатор Ruby находится в /usr/bin :

    Python: язык программирования общего назначения

    Python широко применяется как интерпретируемый язык для скриптов различного назначения (хотя существуют и трансляторы языка Python ).

    Как и Ruby , Python имеет целью приблизить синтаксис реальной программы, написанной на нём, к описывающему задачу псевдокоду, что позволяет программисту уменьшить объём программы. Идея создания данного языка возникла в конце 1980-х и была реализована Гвидо ван Россумом .

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

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

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

    Недостатки Python:

    • не слишком удачная поддержка многопоточности;
    • на Python создано не так уж много качественных программных проектов по сравнению с другими универсальными языками программирования, например, с Java ;
    • отсутствие коммерческой поддержки средств разработки (хотя эта ситуация со временем меняется);
    • изначальная ограниченность средств для работы с базами данных;
    • бенчмарки показывают меньшую производительность Python по сравнению с основными Java VM , что создаёт этому языку репутацию медленного.

    Проекты с использованием Python:

    • Yahoo Maps ;
    • Zope Corporation ;
    • Linux Weekly News ;
    • Shopzilla ;
    • Ultraseek .

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

    Согласно Wikipedia , Python прочно вошёл в 8 наиболее популярных языков программирования по версии TIOBE Programming Community Index . А если не считать отдельно языки с C-подобным синтаксисом (C++, C#, ObjectiveC, Java и т. д.), то Python является третьим по популярности языком.

    Использование

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

    Наберите в командной строке:

    $ python чтобы получить приглашение интерпретатора: Python 2.4.3 (#1, Nov 11 2010, 13:34:43) on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> Теперь можно набрать строку на языке Python и нажать Enter, чтобы выполнить её: >>> print "Put some text here" Put some text here

    Потребность в специалистах

    Основываясь на анализе Jobs Tractor , учитывающем более 45000 вакансий разработчиков, опубликованных в Twitter за последний год, потребность в программистах такова:

    • PHP – требуется 8238 человек;
    • Ruby – 2937 человек;
    • Python – 1587 человек.

    Разумеется, статистика – не единственный фактор, который стоит принимать во внимание при изучении языка программирования.

    Какой же язык программирования стоит изучать?

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

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

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

    Развитые фреймворки, включающие в себя функции для работы с пользовательскими данными (статьями, темами, постами, фотографиями и т. д.) называются фреймворками управления контентом (Content Management Framework – CMF ).

    Если добавить к этому элементы интерфейса для конечного пользователя сайта, получается так называемая система управления контентом или CMS (Content Management System ). CMS позволяет получить сайт с прототипом интерфейса и минимальной функциональностью сразу после установки или после определённой настройки, то есть вообще без программирования.

    При этом большинство CMS предоставляют программисту как программный интерфейс CMF , так и интерфейс для расширения своей функциональности.

    Это первая из статей, в которых я расскажу об особенностях Ruby и Ruby on Rails и поделюсь советами о том, с чего начать в изучении Ruby, где находить ответы на вопросы, как получить нужный опыт и чем вы сможете выгодно отличаться от других кандидатов. Буду рад, если мои советы помогут кому-то определиться со специализацией и выбрать Ruby для изучения и работы.

    Основные особенности и отличия Ruby

    Часто слышу вопрос: стоит ли учить Ruby? Как правило, вопрос основан на сомнениях: насколько легко найти работу с данной специализацией, будут ли интересные проекты и так далее и тому подобное. Ruby - современный, постоянно развивающийся язык программирования, областей применения ему - масса. Наверняка вы слышали про Chef, Vagrant, Homebrew, но чаще всего все мы слышим о Rails. Вот пост с комментарием самого автора фреймворка о том, почему стоит учить Rails.

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

    Ruby - интерпретируемый, полностью объектно-ориентированный язык программирования с четкой динамической типизацией. Он сочетает в себе Perl-подобный синтаксис с объектно-ориентированным подходом. Также некоторые черты заимствованы из языков программирования Python, Lisp, Dylan и CLU. Кроссплатформенная реализация интерпретатора языка Ruby распространяется на условиях открытого программного обеспечения. Код, написанный на Ruby, может быть понятен даже человеку, который не разбирается в программировании. На RoR были созданы такие проекты, как Redmine, Twitter, Shopify, Basecamp, GitHub, Kickstarter, Airbnb и другие.

    С ростом Node.js популярность Ruby on Rails несколько уменьшилась, но технологические стартапы часто используют RoR благодаря простоте прототипирования. Ruby - 11-й самый популярный язык в индексе TIOBE .

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

    • Многочисленное и доброжелательное комьюнити.
    • Довольно высокий порог входа, что означает, что Ruby-разработчик с большой вероятностью имеет опыт работы как минимум с еще одним языком программирования.
    • Вы используете только те библиотеки и модули, которые необходимы.
    • Существует большое количество полезных библиотек, которые уже готовы к использованию (Ruby Gems).
    • В интернете есть много информации по Ruby, в структурированном и отсеянном виде.
    • В контексте обсуждения Ruby нельзя не упомянуть популярнейший фреймворк Ruby on Rails.

    А теперь поговорим о некоторых преимуществах Ruby более подробно.

    Скорость разработки

    Одним из плюсов Ruby и фреймворка RoR считается скорость разработки. Личный опыт и опыт коллег показывает, что решение задач на Rails происходит в полтора раза быстрее по сравнению с другими фреймворками подобного плана. Ruby очень прост как инструмент, а также существует огромное количество готовых решений для различного рода задач.

    Штатные средства кеширования данных

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

    Вначале тесты, потом код

    Часто в процессе разработки крупных проектов возникает вопрос о тестировании, и не редкость, когда нет дополнительных средств на отдельную команду тестировщиков. В Rails есть решение и этой проблемы. Если сравнивать RoR с другими фреймворками в контексте тестирования приложения, то вы найдете массу готовых решений для любого вида тестов, будь то интеграционные или юнит. Все эти библиотеки работают «из коробки». В идеале в проекте на Ruby on Rails код не пишется до тех пор, пока под него не написаны тесты. RoR идеология предполагает изначальное использование методов BDD (Behavior Driven Development) или TDD (Test Driven Development).

    Общепринятые стандарты процесса разработки у Ruby-разработчиков

    Говоря о преимуществах Ruby, я не могу снова не упомянуть сообщество рубистов. Оно постоянно растет, развивается и всегда готово прийти на помощь. Всегда есть кто-то, кто подскажет, как лучше решить проблему, поделится опытом в каком-либо вопросе.

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

    Также в Ruby on rails есть большое количество самых разных готовых решений в открытом доступе. Большинство решений уже были реализованы кем-то до вас, а также протестированы сообществом, что уменьшает необходимость разработки с нуля. Это могут быть системы аутентификации, авторизации, комментирования, системы платежей, почтовые рассылки и так далее.

    Готовые решения для многоязычности проекта

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

    Высокий уровень защиты данных

    Сейчас нередко в сети публикуются статьи о взломах различных ресурсов. Разработчики фреймворка Ruby on Rails очень серьезно отнеслись к проблеме защиты данных. В RoR изначально присутствует шифрование паролей, данных кредитных карт и других личных данных пользователя, также исключены SQL инъекции и XSS атаки. Все входные параметры экранируются по умолчанию.

    Изучение Ruby

    А теперь поговорим, как именно можно освоить Ruby.

    Теория

    Начать следует, конечно же, с литературы. Я рекомендую эти источники:

    • Ruby за 20 минут - хороший ресурс для совсем начинающих. Позволяет меньше, чем за полчаса ознакомиться с основными конструкциями языка и начать писать свои небольшие программы.
    • Codecademy - платформа с онлайн-курсами по множеству направлений, включая чистый Ruby и Rails. Здесь довольно интересно построен обучающий процесс, дается теоретический материал и сразу же практическое задание, чтобы его закрепить. Финальные задания платные, но и без них можно получить нужные навыки.
    • Материалы по Ruby и Rails - сборник ссылок на различные сайты и книги, посвященные изучению Ruby и Rails.
    • Отдельно могу посоветовать книгу Flanagan D., Matsumoto Y. «The Ruby Programming Language» . Она считается одной из лучших, её автор - сам создатель языка Ruby.
    • Google:)

    Вот парочка ресурсов, с которых можно начать:

    • w3schools.com/sql - здесь можно почитать, попробовать и проверить свои знания по SQL.
    • quizful.net/test - тут можно найти вопросы, которые часто задают на собеседованиях.

    Английский

    Я считаю, что нет смысла останавливаться подробно на этом моменте, так как это - тема отдельной статьи. Английский очень важен, и это общеизвестный факт. Хотелось бы только упомянуть вкратце два самых важных момента.

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

    Во-вторых, чем лучше ваши знания английского, тем больше шансов найти работу. Большинство клиентов зарубежные, соответственно, знание английского важно для продуктивного общения, четкого понимания ТЗ и хорошего контакта с клиентом.

    Практика

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

    Курсы

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

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

    Сразу скажу, что я ни в коем случае не рекомендую идти на курсы, не имея уже какого-то багажа знаний. Я рассматриваю курсы как отличный способ закрепить знания, полученные в процессе самообучения. И сейчас не пытаюсь рекламировать какую-то конкретную школу, а объясню, какую именно пользу можно из этого извлечь:

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

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

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

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

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

    И самое главное - трудоустройство . Говоря о курсах, я не имею ввиду только те, за которые нужно платить деньги. Часто компании сами проводят набор на обучение, чтобы потом лучших взять к себе на работу. Это могут быть внутренние курсы или стажировка/интернатура. Такой вариант - наилучший, так как вам не нужно ни за что платить, вы получаете опыт и все выше перечисленные плюсы и вдобавок - реальную перспективу трудоустройства. Попасть на них сложнее, но перспективы значимее.

    Итого

    Ruby - это язык, который позволяет работать без большого количества неудобств и церемоний, которые приходят со строго типизированными языками. С Ruby легко начать работать, особенно если у вас уже есть опыт разработки на других языках программирования, и вы сможете быстро создавать прототипы с Ruby on Rails. В Японии, откуда он появился, Ruby использовался для создания игр. Ruby лаконичен и читается как английский, что делает код понятным для новичков.

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

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

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

    Удачи в изучении! А в следующей статье мы поговорим о коде.

    Подписывайтесь на наш Telegram-канал для джуниоров , чтобы не пропустить интересные вакансии, стажировки, курсы, статьи.

    Ruby — один из самых молодых языков программирования. Его создатель Юкихиро Мацумото (Yukihiro Matsumoto, также известный под псевдонимом Matz), профессиональный японский программист, рассказывает: <<Я начал разработку Ruby 24 февраля 1993 года. Первая hello world программа на Ruby заработала летом того же года, а aльфа-версия была готова к декабрю 1994.>> Название языка происходит от имени драгоценного камня рубина (по аналогии с другим широко распространенным языком программирования Perl: pearl — жемчуг).

    Вот как характеризует Ruby его автор: <<Это мощный и динамический объектно-ориентированный язык с открытыми исходниками. Ruby работает на многих платформах, включая Linux и другие реализации Unix, MS-DOS, Windows 9x/2000/NT, BeOS и MacOS. Главная цель Ruby — эффективность разработки программ, и пользователи найдут, что программирование на нем эффективно и даже забавно>> .

    В Японии Ruby стал популярным с момента появления первой общедоступной версии в 1995 году, однако наличие документации только на японском языке сдерживало его дальнейшее распространение. Лишь в 1997 году появилось описание Ruby на английском языке, а в 1998 году открылся форум ruby-talk. С этого момента Ruby начал свое шествие по всему миру. За последний год появились три англоязычные книги, посвященные ему (см. ), хотя на русский язык, к сожалению, ни одна из них еще не переведена. Сейчас Ruby входит в большинство дистрибутивов ОС Linux, доступен он и пользователям других операционных систем.

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

    Программисты говорят о Ruby

    В этом разделе мы изложим собранные из различных источников высказывания о языке Ruby, отложив на некоторое время рассмотрение примеров, иллюстрирующих их. Большая часть вопросов, которые будут затронуты, предполагает наличие определенных знаний у читателя в области теории языков и объектно-ориентированного программирования. Легче всего понять Ruby тем, кто знает Smalltalk, Lisp, C, C++ и Perl. <<Джентльменский>> набор из Perl, Java и C++ тоже является весьма хорошей стартовой позицией для изучения Ruby.

    Тем же, кто не может похвастаться подобными знаниями, весьма приятно будет узнать, что

    * <<если для изучения языка Perl Вам нужно потратить, скажем, три недели, то Python Вы изучите за неделю, а Ruby — за один день!>>

    * <>.

    Во введении мы уже цитировали Юкихиро Мацумото — создателя Ruby. Вот что еще он сам говорит об этом языке. Итак, Ruby

    * имеет простой синтаксис;

    * поддерживает обработку исключений;

    * позволяет переопределять операторы;

    * является чисто объектно-ориентированным языком (complete, full, pure object oriented language), в котором, в отличие от Java или Perl, все — объекты;

    * позволяет работать с целыми числами произвольной величины;

    * не требует объявления переменных;

    * использует префиксы (@, $, @@) для задания области видимости (scope) переменных;

    * поддерживает многопоточное программирование.

    Одной из первых работ, привлекших внимание к Ruby, была уже несколько устаревшая статья Хала Фултона (Hal Fulton) <<Тридцать семь причин, по которым мне нравится Ruby>>. Вот некоторые из них.

    Ruby является динамическим языком. В отличие от статических языков, подобных C++ или Java, методы и переменные в Ruby могут быть добавлены или переопределены во время выполнения программы. Это позволяет, например, обойтись без директив условной компиляции #ifdef, необходимых для языка C. Здесь проявляется сходство Ruby с такими языками, как Lisp и Smalltalk.

    Ruby — интерпретируемый язык. Так как это свойство отрицательно сказывается на производительности, то хочется дать некоторые комментарии. Во-первых (и это самое главное), быстрый цикл разработки является важнейшим достоинством, которое <<перевешивает>> некоторые недостатки. Во-вторых, хотя Ruby и не является катастрофически медленным, в тех случаях, когда скорость абсолютно необходима, можно написать часть кода на языке C. Наконец, в-третьих, никто не сказал, что когда-нибудь не будет написан компилятор с языка Ruby.

    В Ruby имеется возможность работы с регулярными выражениями. Когда-то они использовались только в некоторых утилитах UNIX-систем (grep, sed, vi). Затем, благодаря языку Perl, значительное число людей признало их мощь при обработке текстов. Ruby дает возможность использовать эту силу с еще большей легкостью.

    Помните известную фразу Исаака Ньютона <<Если я видел дальше, чем другие, то только потому, что стоял на плечах гигантов>>? Ruby, безусловно, <<стоит на плечах гигантов>>, среди которых Smalltalk, CLU, Lisp, C, C++, Perl, Kornshell и другие языки. В Ruby собрано все лучшее, что накоплено человечеством в области языков программирования. При этом соблюдены следующие три принципа: не изобретать колесо, не чинить не сломанное, использовать имеющиеся у программистов знания и опыт. В Ruby пригодятся и знания о файлах и потоках из ОС UNIX, и спецификации функции printf из стандартной библиотеки ввода/вывода языка C, и умение работать с регулярными выражениями в Perl.

    Ruby — язык написания сценариев (scripting language). Не следует считать, что это характеризует язык, как <<игрушечный>> или недостаточно мощный. Подобный язык должен быть интерпретируемым и способным заменить командные файлы, взаимодействующие с операционной системой и управляющие поведением других программ.

    Ruby — универсальный и гибкий язык. С его помощью можно одинаково изящно реализовать как то, что традиционно делается с помощью интерпретатора Kornshell, так и то, что пишется обычно на C.

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

    Для языка Ruby уже написано большое число библиотек. Потоки, сокеты, объекты, сохраняемые между запусками программ, CGI-программы, базы данных, GUI — все это можно использовать, программируя на Ruby.

    Дэйв Томас (Dave Thomas) и Энди Хант (Andy Hunt), соавторы первой книги по Ruby, вышедшей на английском языке, в интервью журналу «Dr. Dobb’s Journal» (январь 2001) говорят: <<Возьмите чисто объектно-ориентированный язык Smalltalk и избавьтесь от его причудливого синтаксиса. Добавьте комфорт и мощь языка Perl, но без всяких специальных случаев и магических преобразований. Заверните получившееся в ясный синтаксис, основанный частично на языке Eiffel, и добавьте понемногу от Scheme, CLU, Sather и Common Lisp. У вас получится Ruby.>> Фактически это означает, что Ruby — естественный и практически неизбежный результат эволюции современных языков программирования. Авторы данной статьи согласны с такой точкой зрения.

    Хочется подчеркнуть, что Ruby не является панацеей для решения всех проблем программистов. Не следует отказываться от использования языков Java и C++ там, где их применение оправдано. С другой стороны, не разумно недооценивать возможности практического применения Ruby в реальных проектах.

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

    Начнем с языка Java:

    * Ruby — интерпретируемый язык;
    * в Ruby все является объектом (в Java есть типы int и Integer, что создает определенные неудобства);
    * переменные в Ruby не являются статически типизированными и не требуют объявления;
    * модули (modules) в Ruby позволяют с помощью <<миксинов>> (mixins) конструировать подобие интерфейсов (interfaces) языка Java, допуская при этом в них реализацию методов.

    Теперь сравним с языком Perl:

    * Ruby значительно легче освоить, на нем легче программировать, а написанные программы проще сопровождать;
    * в Ruby префиксы (@, $, @@) описывают область видимости (scope), а не тип переменной;
    * Ruby позаимствовал из языка Perl регулярные выражения, переменную $_ и многое другое.

    Завершим сопоставление Ruby с другими языками рассмотрением одного из ближайших <<конкурентов>> — языка Python. Это сравнение особенно интересно потому, что именно Python рассматривается сейчас многими, как хороший кандидат на роль первого языка программирования. Итак, сравним Ruby с языком Python:

    * управляющие конструкции и методы в языке Ruby завершаются ключевым словом end, в то время как Python использует так называемый <<двумерный>> синтаксис, когда признаком завершения является изменение количества лидирующих пробелов в очередной строке программы;
    * вместо self в Ruby для обозначения переменных экземпляра используется префикс @;
    * в Ruby, в отличие от языка Python, понятия типа и класса являются синонимами;
    * Python не поддерживает наследования и не позволяет добавлять методы к существующим типам;
    * используемый в Ruby алгоритм сборки мусора позволяет проще писать реализации методов на языке C;
    * расширения для Ruby, написанные на C/C++ позволяют определять новые классы;
    * зачастую Ruby быстрее, чем Python.

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

    loop do read and reply mails write code write document/article/book write code end

    Программисты пишут на Ruby

    Начнем с примеров, показывающих, что знание библиотек ввода/вывода языков C и C++ пригодится и в Ruby.

    printf "Число: %5.2f; Строка: %s", 1.23, "Привет!" endl = "n"; $stdout << 17 << " красных шариков" << endl line = gets; print line

    Специальная глобальная переменная $_ всегда содержит результат последней операции чтения. Она же используется как аргумент по умолчанию во многих конструкциях. Следующая программа, например, печатает все строки из входного потока, которые содержат слово Ruby.

    while gets # присваивание очередной строки переменной $_ if /Ruby/ # сопоставление ее с образцом Ruby print # печать $_ end end

    ARGF.each { |line| print line if line =~ /Ruby/ }

    ARGF в Ruby — это объект, который представляет собой конкатенацию содержимого всех файлов, имена которых заданы в командной строке, либо просто стандартный поток ввода (в случае отсутствия аргументов).

    Вот как выглядит на Ruby программа вычисления факториала числа, указываемого в качестве аргумента командной строки:

    def fact(n) return 1 if n == 0 f = 1 while n>0 f *= n n -= 1 end return f end print fact(ARGV.to_i), "n"

    Для вычисления с помощью этой программы, размещенной в файле fact.rb, значения 100! достаточно выполнить команду ruby fact.rb 100.

    Три программы, рекурсивно вычисляющие 30-е число Фибоначчи, приведенные ниже, позволяют сравнить производительность интерпретаторов Ruby, Python и Perl.

    # Ruby def fib(n) if n<2 n else fib(n-2)+fib(n-1) end end print fib(30), "n" # Python def fib(n): if n<2: return n else: return fib(n-2)+fib(n-1) print fib(30) # Perl sub fib { my($n)=@_; if ($n<2) { return $n; } else { return fib($n-2)+fib($n-1); } } print fib(30), "n";

    Еще одна классическая задача — определение с помощью решета Эратосфена списка всех простых чисел, не превосходящих заданного (100 по умолчанию).

    max = Integer(ARGV.shift || 100) sieve = for i in 2 .. max sieve[i] = i end for i in 2 .. Math.sqrt(max) next unless sieve[i] (i*i).step(max, i) do |j| sieve[j] = nil end end puts sieve.compact.join ", "

    В качестве следующего примера рассмотрим решение на языке Ruby задачи, которая часто предлагается студентам первого курса, изучающим языки C/C++: для заданного текстового файла определить число вхождений в него каждого из встречающихся в нем слов. Использование ассоциативных массивов и ряда стандартных методов работы с файлами и строками позволяет написать чрезвычайно краткую и ясную программу.

    freq = Hash.new(0) while gets() for word in $_.split(/W+/) freq += 1 end end for word in freq.keys.sort! print word, " -- ", freq, "n" end

    Приведем два простых примера использования стандартной библиотеки классов. В результате выполнения первой программы будет найдено, что 7/8+1/8=1, а 7/8*1/8=7/64; вторая из них вычислит (1 + i)64.

    require "rational" a = Rational(7,8) b = Rational(1,8) print a, "+", b, "=", a+b, "; ", a, "*", b, "=", a*b, "n" require "complex" a = Complex(1,1); print a**64

    Без подробных объяснений приведем две эквивалентные программы, иллюстрирующие переопределение оператора для класса SongList. Ассоциативный массив (associative array, hash или dictionary) допускает индексирование произвольными объектами, а не только целыми числами. В данном случае оператор позволяет находить нужную песню не только по номеру, но и по ее названию.

    class SongList def (key) if key.kind_of?(Integer) return @songs else for i in [email protected] return @songs[i] if key == @songs[i].name end end return nil end end class SongList def (key) return @songs if key.kind_of?(Integer) return @songs.find { |aSong| aSong.name == key } end end

    Так как Ruby унаследовал лучшие особенности многих языков, то для выполнения достаточно стандартных действий обычно имеется несколько разных возможностей. Вот 13 (!) различных способов напечатать числа от 0 до 9:

    i = 0 i = 0 while i < 10 begin print i , " " print i , " " i += 1 i += 1 end end while i < 10 i = 0 i = 0 until i >= 10 begin print i , " " print i, " " i += 1 i += 1 end end until i >= 10 for i in for i in (0..9) print i, " " print i, " " end end for i in (0...10) 10.times do |i| print i, " " print i, " " end end 0.upto(9) do |i| 9.downto(0) do |i| print i, " " print i, " " end end (0..9).each do |i| (0...10).each do |i| print i, " " print i, " " end end i = 0 loop do if i < 10 then print i, " " else break end i += 1 end

    В заключение вопрос для тех, кто не знает языка Ruby: что напечатает следующая программа?

    print ["L", "R", "H", "T"].collect { |x| x.succ }

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

    Ruby и новички

    Этот язык, несомненно, является одним из лучших в качестве первого языка программирования. Быстрый цикл разработки (редактирование — запуск — редактирование), использование интерпретатора, изначальная объектно-ориентированность, нетипизированные переменные, которые не требуют объявления, — все это позволяет учащимся сконцентрировать свое внимание на общих принципах программирования.

    Не менее важны мультиплатформенность Ruby и его принадлежность к миру свободно распространяемого ПО. Еще один весомый аргумент в его пользу — возможность практического использования языка в самых разных областях, что не позволит впоследствии профессионалу, который вырастет из новичка, пожалеть о напрасно потраченном времени.

    Можно заметить, что значительному числу перечисленных выше требований удовлетворяют и Python, и Java, и C++ и даже (в меньшей степени) Delphi. Последний из них, правда, является коммерческим продуктом, что автоматически должно было бы повлечь исключение его из рассмотрения. Однако в России даже среди организаторов олимпиад по программированию для школьников находятся люди, утверждающие, что стоимость дистрибутива Delphi составляет около 70 рублей!

    Попробуем сначала сравнить языки Ruby и Java, посмотрев на них глазами человека, только начинающего знакомиться с миром программирования. Для такого человека чрезвычайно важна ясность и краткость программ, отсутствие в них странных и непонятных <<магических>> слов. А именно из них и состоит в основном Java-вариант традиционной первой программы!

    public class Hello { public static void main(String args) { System.out.println("Здравствуй, мир!"); } }

    Аналогичную программу на Ruby долго объяснять не придется:

    puts "Здравствуй, мир!"

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

    В отличие от языка Java в Ruby нет проблемы <<больших>> чисел. Приведенные выше программы вычисления факториала числа или чисел Фибоначчи, будучи написанными на Ruby, всегда дают верный результат. В случае же языка Java ограничения на диапазон представимых целых чисел приводят к нелепым (с точки зрения ученика школы или студента первого курса) равенствам типа

    Неприятная неожиданность для человека, только приступающего к изучению программирования!

    Еще одним важным фактором является простота методов, используемых в Ruby для ввода данных с клавиатуры или из файла. В случае языка Java сложность этих операций приходится тщательно маскировать, ограждая новичка от ненужных ему проблем.

    Компактность дистрибутива Ruby и простота его установки в любой операционной системе позволяют школьнику или студенту без проблем работать на домашнем компьютере. Опять сравнение не в пользу Java!

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

    Ruby и профессионалы

    Чем же хорош Ruby для профессионального программиста и системного администратора? Многое уже было сказано выше, но вот еще несколько интересных примеров и кратких комментариев.