Тематические статьи →

Язык программирования 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

— Rails is the killer app for Ruby.
Юки­­хиро Мацу­­мо­то, созда­тель языка Ruby

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

Поделитесь с друзьями:


Информация о публикации:

Материал опубликован в 2014 году. Эта статья о веб-разработке, о веб-технологиях и про бэкенд-разработку. При пере­пуб­ли­ка­ции обя­за­тельно ука­за­ние пер­во­ис­точ­ника в виде гипер­тек­сто­вой ссылки на сайт web-creator.ru

Воспользуйтесь нашими
знаниями и опытом

Отправьте нам сообщение при помощи формы. Или напишите на e-mail s@web-creator.ru

Мы максимально оперативно ответим Вам по электронной почте или перезвоним.

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

Либо просто позвоните нам по номеру: +7 495 215-1501

Мы работаем по будним дням с 10 до 19 часов.

Комплексные услуги

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