Web-studio46.ru

Обучение и образование
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ruby это язык программирования

Почему Ruby — особенный язык

Юки­хи­ро Мацу­мо­то, автор Ruby, захо­тел создать совер­шен­ный объектно-ориентированный язык, что­бы в нём мак­си­маль­но пол­но рабо­тал ООП-подход. Кро­ме это­го, новый язык дол­жен соблю­дать свод пра­вил, кото­рых при­дер­жи­вал­ся сам Юки­хи­ро и кото­рые сей­час назы­ва­ют­ся «Путь Ruby». Вот неко­то­рые из них:

  1. Язык для чело­ве­ка, а не для ком­пью­те­ра — про­грам­ма долж­на читать­ся лег­ко даже при мини­маль­ном зна­нии Ruby, а всё осталь­ное берёт на себя ком­пью­тер.
  2. Про­сто, но не слиш­ком про­сто — всё долж­но быть про­стым в про­грам­ме, но толь­ко если для это­го не при­дёт­ся услож­нять что-то дру­гое.
  3. Прин­цип наи­мень­шей неожи­дан­но­сти — все коман­ды и дей­ствия в Ruby долж­ны рабо­тать имен­но так, как от них ожи­да­ет про­грам­мист. Если он встре­ча­ет­ся с чем-то новым в язы­ке, то это не долж­но его уди­вить, а, наобо­рот, он вос­при­мет это как что-то есте­ствен­ное.
  4. «Не нуж­но с этим бороть­ся» — про­грам­ми­сту нуж­но исполь­зо­вать то, что есть в язы­ке, вме­сто того, что­бы пытать­ся под­стро­ить язык под себя.

Пер­вая вер­сия Ruby вышла в 1995 году, и за это вре­мя язык вырос от про­ек­та одно­го чело­ве­ка до боль­шо­го комью­ни­ти и 1,27 мил­ли­о­на строк кода. Сей­час Ruby — уни­вер­саль­ный крос­сплат­фор­мен­ный язык про­грам­ми­ро­ва­ния и под­дер­жи­ва­ет­ся все­ми совре­мен­ны­ми вер­си­я­ми Linux и MacOS.

Особенность языка

Пре­лесть и сила Ruby в том, что в нём вооб­ще всё — это объ­ект. Даже чис­ла, зна­че­ния пере­мен­ных и типы дан­ных — это тоже объ­ек­ты. Напри­мер, у вас есть сло­же­ние, кото­рое реа­ли­зу­ет­ся так:

7 и 5 — чис­ла, за кото­рые отве­ча­ет класс Numeric, и этот класс зна­ет про знак сло­же­ния. Давай­те немно­го рас­ши­рим воз­мож­но­сти это­го клас­са:

С это­го момен­та у всех чисел появ­ля­ет­ся метод plus, кото­рый скла­ды­ва­ет это чис­ло со вто­рым. И таким же спо­со­бом мож­но рас­ши­рить свой­ства и воз­мож­но­сти каж­до­го эле­мен­та в про­грам­ме. Сде­лать авто­ма­ти­че­ский пере­вод из минут в секун­ды? Лег­ко:

И так мож­но делать с чем угод­но, без огра­ни­че­ний и несов­ме­сти­мо­сти типов. Да и какая может быть несов­ме­сти­мость, если типы — это тоже объ­ек­ты, кото­рые мож­но изме­нить. Это дела­ет Ruby похо­жим на C++, где есть пере­груз­ка опе­ра­то­ров и воз­мож­ность исполь­зо­вать коман­ды не так, как заду­ма­но изна­чаль­но.

Синтаксис

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

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

Ком­мен­та­рии. Пишем в нача­ле стро­ки знак решёт­ки #, и за ней — ком­мен­та­рий любой дли­ны. Ещё мож­но напи­сать ком­мен­та­рий в несколь­ко строк:

При­сва­и­ва­ние и мате­ма­ти­че­ские опе­ра­то­ры. Тут всё про­сто: при­сва­и­ва­ние — это знак рав­но «=», а мате­ма­ти­че­ские опе­ра­то­ры такие же, как в жиз­ни — +, -, * и т. д.

Типы дан­ных. Так как в Ruby всё объ­ек­ты, то даже типы дан­ных — это тоже объ­ек­ты, а зна­чит мож­но менять их свой­ства и пове­де­ние. По этой при­чине в Ruby очень мало встро­ен­ных типов дан­ных. Если про­грам­ми­сту пона­до­бит­ся что-то слож­нее, чем встро­ен­ные типы, он лег­ко может создать свой тип с нуля или на осно­ве встро­ен­но­го.

Целые чис­ла: Fixnum (до 2³⁰) и Bignum . Вто­рой тип может хра­нить в себе целые чис­ла вооб­ще любо­го раз­ме­ра, если для них хва­тит места в опе­ра­тив­ной памя­ти.

Дроб­ные чис­ла: Float (чис­ло с пла­ва­ю­щей запя­той), Rational (раци­о­наль­ные чис­ла) и Complex (ком­плекс­ные чис­ла с мни­мой еди­ни­цей).

Стро­ка: String , после­до­ва­тель­ность бай­тов в коди­ров­ке UTF-8, могут быть любой дли­ны.

Сим­вол в Ruby — это не один какой-то сим­вол, а про­сто любая стро­ка, кото­рая оста­ёт­ся неиз­мен­ной. Что­бы ком­пью­тер понял, что это сим­вол, перед ним ста­вит­ся двое­то­чие: symbol = :это_тоже_символ .

Диа­па­зон — за него отве­ча­ет класс Range и в нём хра­нит­ся непре­рыв­ная после­до­ва­тель­ность целых чисел:

d1 = 1..5 # Две точки — от 1 до 5 включительно.
d2 = 1. 5 # Три точки — от 1 до 4, а 5 уже не входит в этот диапазон.

Услов­ный опе­ра­тор. Стан­дарт­ная фор­ма выгля­дит при­выч­но:

if x > 0 then
puts «x — положительное число» #puts выводит значение на экран
elsif x
puts «x — отрицательное число»
else
puts «x — нуль»
end

Но есть и несколь­ко дру­гих вари­ан­тов услов­но­го опе­ра­то­ра, напри­мер такой:

# Unless означает «Если условие не выполняется, то. »
unless x > 3 then
puts x.to_s # Выведет значение x, если оно НЕ больше трёх.
else
puts «очень много, не сосчитать»
end

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

Клас­сы, объ­ек­ты и мето­ды. Так как Ruby пол­но­стью объектно-ориентированный язык, то в нём рабо­та­ет всё, что толь­ко есть в ООП:

  • пуб­лич­ные и при­ват­ные мето­ды,
  • кон­струк­то­ры,
  • насле­до­ва­ние (с помо­щью встро­ен­ных при­ме­сей),
  • пере­опре­де­ле­ние клас­са,
  • и всё осталь­ное, что вам толь­ко пона­до­бит­ся сде­лать с объ­ек­та­ми или клас­са­ми.

Для чего нужен Ruby

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

Так­же на Ruby пишут мобиль­ные игры и при­ло­же­ния под Android и iOS, исполь­зуя Ruboto или RubyMotion.

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

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

Что сделано на Ruby

Ruby исполь­зу­ют ком­па­нии раз­но­го уров­ня, в том чис­ле NASA, Motorola, Google или GitHub. Вот часть про­ек­тов, кото­рые напи­са­ны на Ruby или Ruby on Rails:

  • Twitter,
  • Kickstarter,
  • SoundCloud,
  • Redmine (систе­ма баг­тре­кин­га),
  • Inkscape (рабо­та с век­тор­ной гра­фи­кой),
  • GitLab (управ­ле­ние репо­зи­то­ри­я­ми кода),
  • SketchUp (трёх­мер­ное моде­ли­ро­ва­ние),
  • Netflix (сери­а­лы),
  • Bloomberg (новост­ное агент­ство).

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

С чего начать

Для стар­та вам даже не нуж­но ниче­го уста­нав­ли­вать на ком­пью­тер — исполь­зуй­те онлайн-интерпретатор onlinegdb или rextester.

Что­бы луч­ше разо­брать­ся в язы­ке или его воз­мож­но­стях, почи­тай­те руко­вод­ство «Ruby за 20 минут» на офи­ци­аль­ном сай­те Ruby. Един­ствен­ный момент — это машин­ный пере­вод ори­ги­наль­ной ста­тьи, как и всех осталь­ных рус­ско­языч­ных мате­ри­а­лов на этом сай­те. Поэто­му если зна­е­те англий­ский — луч­ше сра­зу читай­те на нём.

Если есть жела­ние дос­ко­наль­но разо­брать­ся в язы­ке, реко­мен­ду­ем кни­гу Хэла Фул­то­на «Про­грам­ми­ро­ва­ние на язы­ке Ruby» (The Ruby Way).

Почему 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 на 30−50% выше, чем на других языках. В два раза, если мы говорим о Java и .NET. Язык действительно очень красивый и простой для понимания, что привлекает всё большее количество разработчиков.

Читать еще:  Учить язык программирования с нуля

Я вошёл в 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.

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

Язык программирования Ruby

Ruby (ruby — рубин, руби) — интерпретируемый мультипарадигмальный язык программирования: динамический, объектно-ориентированный, рефлективный, императивный, функциональный. Активно используется в веб-разработке, в системном администрировании и в работе операционных систем (Mac OS X, Linux, BSD).

В Руби есть независимая от операционной системы реализация многопоточности, строгая динамическая типизация, сборщик мусора и многие другие возможности. Язык близок по особенностям синтаксиса к языкам Perl и Eiffel, по объектно-ориентированному подходу — к Smalltalk. Также некоторые черты языка взяты из Python, Lisp, Dylan и Клу. Ruby разрабатывался на Linux, но работает на многих версиях Unix, DOS, Microsoft Windows, Mac OS (где по умолчанию встроен в операционную систему), BeOS, OS/2 и т. д.

Ruby начал разрабатываться в начале 1993 и вышел в свет в конце 1995, создатель Ruby — Юкихиро Мацумото (Matz):

Ruby родился 23 февраля 1993 года. В тот день я беседовал со своим коллегой о возможности существования объектно-ориентированного сценарного языка. Я знал Perl (Perl4, а не Perl5), но он мне не нравился — был в нём некий привкус игрушечного языка (да и поныне есть). А объектно-ориентированный интерпретируемый язык казался многообещающим. В то время я знал Python. Но он мне не нравился потому, что я не считал его настоящим объектно-ориентированным языком. Его OO свойства казались надстройкой над языком. Мне, как языковому маньяку и фанату объектно-ориентированного программирования с пятнадцатилетним стажем, очень, очень хотелось, чтобы был истинно объектно-ориентированный, простой в использовании язык. Я пытался найти такой язык, но его не было. Тогда я решил его создать. Прошло несколько месяцев, прежде чем интерпретатор заработал. Я добавил в мой язык то, что мне хотелось — итераторы, обработку исключений, автоматическую сборку мусора. Затем я переорганизовал свойства Perl и реализовал их как библиотеку классов. В декабре 1995 года я опубликовал Ruby 0.95.

Читать еще:  Программирование в visual basic excel

Язык следует принципу «наименьшей неожиданности»: программа должна вести себя так, как ожидает программист. Однако в контексте Ruby это означает наименьшее удивление не при знакомстве с языком, а при его основательном изучении. Сам Мацумото утверждает, что целью разработки была минимизация неожиданностей при программировании для него, но после распространения языка он с удивлением узнал, что мышление программистов похоже, и для многих из них принцип «наименьшей неожиданности» совпал с его принципом.

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

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

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

В языке Ruby осуществлён простой и удобный механизм для расширения языка с помощью библиотек, позволяющий легко разрабатывать дополнительные библиотеки. Для управления библиотеками и программами Ruby в виде самодостаточных пакетов предназначена система управления пакетами RubyGems (англ. gems, gem — драгоценный камень). Большинство расширений распространяются под свободными лицензиями и могут быть использованы в любом проекте практически без ограничений.

Ruby on Rails

Наиболее популярным Ruby-фреймворком для разработки веб-приложений является Ruby on Rails.

Язык программирования Ruby

Ruby (ruby — рубин, руби) — интерпретируемый мультипарадигмальный язык программирования: динамический, объектно-ориентированный, рефлективный, императивный, функциональный. Активно используется в веб-разработке, в системном администрировании и в работе операционных систем (Mac OS X, Linux, BSD).

В Руби есть независимая от операционной системы реализация многопоточности, строгая динамическая типизация, сборщик мусора и многие другие возможности. Язык близок по особенностям синтаксиса к языкам Perl и Eiffel, по объектно-ориентированному подходу — к Smalltalk. Также некоторые черты языка взяты из Python, Lisp, Dylan и Клу. Ruby разрабатывался на Linux, но работает на многих версиях Unix, DOS, Microsoft Windows, Mac OS (где по умолчанию встроен в операционную систему), BeOS, OS/2 и т. д.

Ruby начал разрабатываться в начале 1993 и вышел в свет в конце 1995, создатель Ruby — Юкихиро Мацумото (Matz):

Ruby родился 23 февраля 1993 года. В тот день я беседовал со своим коллегой о возможности существования объектно-ориентированного сценарного языка. Я знал Perl (Perl4, а не Perl5), но он мне не нравился — был в нём некий привкус игрушечного языка (да и поныне есть). А объектно-ориентированный интерпретируемый язык казался многообещающим. В то время я знал Python. Но он мне не нравился потому, что я не считал его настоящим объектно-ориентированным языком. Его OO свойства казались надстройкой над языком. Мне, как языковому маньяку и фанату объектно-ориентированного программирования с пятнадцатилетним стажем, очень, очень хотелось, чтобы был истинно объектно-ориентированный, простой в использовании язык. Я пытался найти такой язык, но его не было. Тогда я решил его создать. Прошло несколько месяцев, прежде чем интерпретатор заработал. Я добавил в мой язык то, что мне хотелось — итераторы, обработку исключений, автоматическую сборку мусора. Затем я переорганизовал свойства Perl и реализовал их как библиотеку классов. В декабре 1995 года я опубликовал Ruby 0.95.

Язык следует принципу «наименьшей неожиданности»: программа должна вести себя так, как ожидает программист. Однако в контексте Ruby это означает наименьшее удивление не при знакомстве с языком, а при его основательном изучении. Сам Мацумото утверждает, что целью разработки была минимизация неожиданностей при программировании для него, но после распространения языка он с удивлением узнал, что мышление программистов похоже, и для многих из них принцип «наименьшей неожиданности» совпал с его принципом.

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

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

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

В языке Ruby осуществлён простой и удобный механизм для расширения языка с помощью библиотек, позволяющий легко разрабатывать дополнительные библиотеки. Для управления библиотеками и программами Ruby в виде самодостаточных пакетов предназначена система управления пакетами RubyGems (англ. gems, gem — драгоценный камень). Большинство расширений распространяются под свободными лицензиями и могут быть использованы в любом проекте практически без ограничений.

Ruby on Rails

Наиболее популярным Ruby-фреймворком для разработки веб-приложений является Ruby on Rails.

Ссылка на основную публикацию
Adblock
detector