О Ruby
Удивляетесь, отчего Ruby так полностью известен? Его фанаты именуют его привлекательным, воистину качественным языком. Не правда ли и вмести с этим они торжественно заявляют, что он просто-таки удачный и надёжный. Как ни странно что ведь перевешивает?
Ruby – данное тщательнейшим образом сбалансированный язык. Допустим его разработчик, Юкихиро Мацумото (очень-то небезызвестный как “matz”), значительно соединил системы его сильно обожаемых языков (Perl, Smalltalk, Eiffel, Ada и Lisp), дабы сформировать очень свежий язык, в каком высокофункциональное программирование уравновешено императивным (или же процедурным) программированием.
Он нередко повторял, что он “постарается устроить Ruby мало-мальски природным, хотя по-своему не обычным” языком в том намерении, как он отражает жизнь.
Основываясь на данном, он прибавляет:
Ruby попросту несложен внешне, хотя чрезвычайно слишком труден снутри, полностью аналогично нашему в целом человеческому туловищу[1].
Со времени опубликования в 1995 году у Ruby прилично возникли столь послушные почитатели из числа разработчиков однозначно программного обеспечения всего мира. Удивительно, что в 2006 году Ruby захватил общее признание. То есть в больших городках по всему миру энергично срабатывают категории юзеров Ruby, а конференции, посвящённые Ruby, переполнены до предела.
Ruby-Talk, мало-мальски главной перечень рассылки для обсуждения языка Ruby примерно долго добивается до 200 известий каждый день.
Индекс TIOBE, который мерит подъем известности языков программирования, помещает Ruby на 11 место посреди очень-очень общепринятых языков программирования. Подумать только, ссылаясь на темп его подъема, предсказывается: “Есть все шансы, что Ruby войдёт полностью в верхнюю 10-ку в близкие полгода.” Во многом данный подъем приписывается известности программ, прописанного на Ruby, в специфики – Ruby on Rails, платформе для исследования web-приложений[2].
К такому же Ruby безусловно волен. Собственно говоря, он не столько очень-очень безвозмезден, его можнож и еще очень непринужденно спокойно принимать на вооружение, копировать, изменять и свободно раздавать.
В самом начале Matz сдержанно оценивал ненамного различные языки в поисках вполне образцового синтаксиса. Конечно же долго вспоминая воистину собственные исследования, он сухо разговаривал: “Мне был необходим скриптовый язык, который бы был наиболее совсем сильным, нежели Perl, и поболее объектно-ориентированным, нежели Python3.”
В языке Ruby всё резонно считается объектами. Казалось бы для любой частички инфы либо программы лично имеют все шансы быть резко отнесены личные характеристики и деяния. Без сомнения в объектно- почтительно направленном программировании качества именуются очень переменными экземпляра, а деяния более-менее знамениты с именем методы. Иными словами чисто объектно-ориентированный расклад в Ruby наиболее часто показывается фрагментом кода, в каком деяние используется к количеству.
5.times { print “Мы *разумно предпочитаем* Ruby — он поистине необыкновенный!“ }
Во множества языках количества и прочие примитивные разновидности этих – данное не объекты. И наконец под воздействием языка Smalltalk в Ruby для всех типов есть способы и по-своему переменные экземпляра. Надо сказать это добровольно делает легче внедрение Ruby, потому что верховодила, использующиеся к объектам, используются в Ruby ко всему.
Ruby долго видится мало-мальски эластичным языком, ибо он разрешает программерам взаправду непринужденно изменять его подробно сочиняющие. Вполне возможно, что довольно-таки существенные доли Ruby лично имеют все шансы быть по желанию удалены либо переопределены. Честно говоря а к успешно наличествующим долям крайне имеют все шансы быть специально созданы прибавления. Ruby постарается ни в чём не ограничивать разработчика очень программного обеспечения.
Например, телосложение производится при помощи операции (+). Но, если б вы предпочли спокойно принимать на вооружение определенное слово plus, вы лично имели возможность бы сердито прибавить таковой способ к встроенному в Ruby классу Numeric.
Операции в Ruby – данное просто “подслащённый синтаксис” для способов. Ну что же вы помимо прочего правильно сможете переопределить их.
Блоки в Ruby и еще совершенно представляются мощнейшим источником эластичности. Поверьте программист самостоятельно сможет присоединить к хоть какому способу замыкание, где описывается, как обязан быстро выполняться данный способ. Предположим замыкания величаются блоками, и они стали одной из более вполне знаменитых вероятностей тем, кто перешёл на Ruby с иных императивных языков, наподобие PHP либо Visual Basic.
Идея блоков почерпнута из многофункциональных языков. Matz решительно заявлял: “Замыканиями в Ruby я сознательно желал особенно дать дань почтения культуре языка Lisp4.”
search_engines = %w[Google Yahoo MSN].map do |engine| “http://www.“ + engine.downcase + “.com“ end
В приведённом повыше коде блок описан снутри системы do … end. С одной стороны метод map может правильно использовать данный блок к имеющемуся перечню словечек. И вообще многие иные способы в Ruby окончательно дают программеру отдушину, дабы прописать взаправду собственный очень-то личный блок для подстановки подробностей того, что данный способ обязан добровольно делать.
В различие от почти всех объектно-ориентированных языков в Ruby намеренно самостоятельно представлено исключительно вправду одиночное наследование. Но в Ruby ведомо понятиемодулей (обычно именуемых категориями в языке Objective-C). Как всегда модули – данное собранияметодов.
Классы имеют все шансы “подмешать” модуль и постоянно получать все его способы, так тихо заявить, подарком. Например, каждый класс, который подробно продает способ each, лично имеет возможность “подмешать” модуль Enumerable, который мрачно добавит ему целую кучу способов, правильно использующих each для организации циклов.
Как верховодило, “Ruby-исты” равнодушно оценивают данное, как еще наиболее столь ясный расклад, нежели слишком многочисленное наследование, которое относительно считается отчасти трудным, и правильно сможет напрасно ограничивать ваши полномочия.
Несмотря на то, что в Ruby нередко применяется слишком ограниченный набор символов пунктуации и особенно традиционно отдаётся предпочтение воистину британским ключевикам, некие символы пунктуации применяются для декорации Ruby. Больше того в Ruby не надо оглашать просто-таки переменные. Безусловно в нём применяются взаправду обыкновенные соглашения о фамилиях дляобозначения области видимости воистину переменных.
var быть может по-своему локальной в общем-то переменной. @var – данное довольно-таки переменная экземпляра. $var – данное налицо масштабная по-старому переменная.
Эти префиксы переменных делают лучше читабельность, дозволяя программеру с легкостью коротко характеризовать роль любой в общем-то переменной. Известно, что также делается по-своему никчемным явно принимать на вооружение прямо-таки назойливый префикс self. перед любой по-своему переменной экземпляра.
Ruby прямо-таки богат почти всеми иными вероятностями, между которых скромно упомянем воистину последующие:
В Ruby есть средства обработки исключений, как в Java либо Python, дабы упроститьотслеживание погрешностей. Ruby отлично дает просто-напросто полновесный сборщик мусора, терпеливо работающий по методу mark-and-sweep, для всех объектов в Ruby-программе. Не исключено, что не необходимо отслеживать счётчики гиперссылок в библиотеках расширения. Не удивительно, что как тихо разговаривает Matz: “Это намного лучше для вашего самочувствия.” Разрабатывать расширения на C для Ruby проще, нежели для Perl либо Python, кроме того иметсячрезвычайно изысканный API для вызова Ruby из C. По правде сказать он содержит вызовы для встраивания Ruby в иное более-менее программное обеспечивание, дабы применять его как скриптовый язык. А впрочем также особенно доступен интерфейс SWIG. На Ruby можнож динамически загружать библиотеки расширения, раз данное разрешается слишком в точной ОС. Ruby недостаточно дает систему легковесных потоков, слишком самостоятельную от ОС. И все-таки таким образом, на всех платформах, где производится Ruby, вам предоставляется возможность воспользоваться многопоточностью, самостоятельно от того, поддерживает ли её ОС либо нет, к примеру, в том числе и под MS-DOS! Ruby выделяется высочайшей переносимостью: он разрабатывается как правило для GNU/Linux, но спокойно действует на множества разновидностях UNIX, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2 и так далие Ссылки
1 Matz, выражение в перечне рассылки Ruby-Talk, 12 мая 2000 года.
2 Обратитесь да доборной информацией к хозяйственной страничке Ruby on Rails.
3 Matz, в Интервью с творцом Ruby, 29 ноября 2001 года.
4 Matz, в заметке Блоки и замыкания в Ruby, 22 декабря 2003 года.
Теги: Ruby
