diff --git a/ru/about/index.md b/ru/about/index.md index d032d60797..af08a20a1a 100644 --- a/ru/about/index.md +++ b/ru/about/index.md @@ -12,13 +12,13 @@ lang: ru ### Идеалы создателя Ruby Ruby – это тщательно сбалансированный язык. Его создатель [Юкихиро -Мацумото][matz] (так же известный как "Matz"), объединил части его любимых +Мацумото][matz] (также известный как "Matz"), объединил части его любимых языков (Perl, Smalltalk, Eiffel, Ada и Lisp) чтобы сформировать новый язык, в котором парадигма функционального программирования сбалансирована принципами императивного программирования. -Он часто повторял, что он "пытается сделать Ruby естественным, но не -простым" языком, который отражает жизнь. +Он часто повторял, что «пытается сделать Ruby естественным, но не +простым» языком, который отражает жизнь. Основываясь на этом, он добавляет: @@ -39,10 +39,10 @@ Ruby-Talk, основная [рассылка](/ru/community/mailing-lists/) д стало использовать несколько тематических рассылок вместо одной общей. Индекс [TIOBE][tiobe], который измеряет рост популярности языков -программирования, помещает Ruby на 9 место среди общепризнанных языков +программирования, помещает Ruby в десятку общепризнанных языков программирования. Во многом, рост популярности языка приписывается популярности программного обеспечения, написанного на Ruby, в -особенности – [Ruby on Rails][ror], среде разработки веб-приложений. +особенности – [Ruby on Rails][ror], фреймворку для разработки веб-приложений. Ruby также [абсолютно открыт]({{ site.license.url }}). Открыт для бесплатного использования, изменений, копирования и распространения. @@ -50,9 +50,9 @@ Ruby также [абсолютно открыт]({{ site.license.url }}). От ### Всё в Ruby – объекты. Вначале Matz рассматривал другие языки в поисках идеального синтаксиса. -Вспоминая свои изыскания, он говорил: "Мне нужен был скриптовый язык, +Вспоминая свои изыскания, он говорил: «Мне нужен был скриптовый язык, который был бы более мощным, чем Perl, и более объектно-ориентированным, -чем Python."[2](#fn2).” +чем Python[2](#fn2).» В Ruby всё – объект. Для каждой частицы информации или кода могут быть определены собственные свойства и действия. В объектно-ориентированном @@ -74,7 +74,7 @@ Ruby также [абсолютно открыт]({{ site.license.url }}). От Ruby очень гибкий язык, так как он позволяет его пользователям свободно менять его части. Основные части Ruby могут быть удалены или -переопределены по желанию. А к существующие части можно модифицировать. +переопределены по желанию. А существующие части можно изменять. Ruby старается ни в чём не ограничивать пользователя. Например, сложение выполняется операцией плюс (`+`). Но, если вы хотите @@ -95,17 +95,17 @@ y = 5.plus 6 Операторы в Ruby – синтаксический сахар для методов. Вы также можете переопределить их. -### Блоки, по-настоящему выразительная конструкция +### Блоки — по-настоящему выразительная конструкция Блоки в Ruby также являются отличным источником гибкости. Программист может добавить замыкание к любому методу, описывая, как этот метод -должен действовать. Замыкание называется *блок* и является одной из +должен действовать. Замыкание — это *блок*, являющийся одной из наиболее популярных конструкций для пришедших в мир Ruby из мира императивных языков программирования, таких как PHP или Visual Basic. Создание блоков было вдохновлено функциональными языками -программирования. Matz говорил, "замыканиями в руби я хотел отдать дань -уважения культуре языка Lisp[3](#fn3)." +программирования. Мац (Matz) говорил, «замыканиями в Ruby я хотел отдать дань +уважения культуре языка Lisp[3](#fn3).» {% highlight ruby %} search_engines = @@ -124,7 +124,7 @@ search_engines = В отличие от многих объектно-ориентированных языков, Ruby **намеренно** предоставляет лишь одиночное наследование. Но Ruby также предоставляет концепцию модулей -(называемых Категориями в Objective-C). Модули – это коллекции методов. +(называемых «категориями» в Objective-C). Модули – это коллекции методов. Классы могут свободно вмешивать модуль и получать все его методы. Например, любой класс, который реализует метод `each`, может подмешать @@ -144,14 +144,14 @@ end ### Визуальное представление Ruby Так как в Ruby зачастую пунктуация встречается довольно редко и обычно -используются английские слова в качестве ключевых, некоторые знаки +в качестве ключевых слов используется английский язык, некоторые знаки препинания используются для украшения Ruby. Ruby не нуждается в -объявлении переменных. В нем используются простые конвенции именования, +объявлении переменных. В нем используются простые соглашения по именованию, для того чтобы разделить области видимости переменных. -* `var` может быть локальной переменной. -* `@var` переменная объекта. -* `$var` глобальная переменная. +* `var` — может быть локальной переменной. +* `@var` — переменная объекта. +* `$var` — глобальная переменная. Данная символика повышает читабельность, позволяя программисту легко идентифицировать роль каждой переменной. Это также позволяет не @@ -164,12 +164,12 @@ Ruby полон другими особенностями и конструкц * В Ruby есть конструкции для обработки исключений, как в Java или Python, которые позволяют проще работать с ошибками. -* В Ruby представлен настоящий mark-and-sweep (пометь и отчисти) сборщик - мусора для всех Ruby объектов. Не нужно вручную отслеживать количество - ссылок в сторонних библиотеках. Как говорит Matz, "Это полезней для - вашего здоровья." +* В Ruby представлен настоящий сборщик мусора типа mark-and-sweep + (пометь и отчисти) для всех Ruby0объектов. Не нужно вручную отслеживать + количество ссылок в сторонних библиотеках. Как говорит Matz, + «Это полезней для вашего здоровья.» -* Писать расширения на C в Ruby проще чем в Perl или Python при помощи +* Писать расширения на C в Ruby проще, чем в Perl или Python при помощи очень элегантного API для вызова Ruby из C. Он включает в себя вызовы для встраивания Ruby в программное обеспечение, чтобы использовать его как скриптовый язык. Также доступен интерфейс SWIG. @@ -179,7 +179,7 @@ Ruby полон другими особенностями и конструкц * В Ruby реализованы независимые от операционной системы потоки. Таким образом, на любых платформах, где вы запускаете Ruby, вы также - имеете возможность использовать многопоточность, не зависимо от того, + можете использовать многопоточность, не зависимо от того, поддерживает ли данная система потоки или нет. Вы можете использовать возможности многопоточности даже в MS-DOS! @@ -187,32 +187,32 @@ Ruby полон другими особенностями и конструкц частью на GNU/Linux, но работает на многих типах UNIX, macOS, Windows, DOS, BeOS, OS/2, и так далее. -### Другие имплементации Ruby +### Другие реализации Ruby -Ruby как язык имеет несколько разных имплементаций. Данный сайт -посвящен имплементации **MRI** ("Matz's Ruby Interpreter" – Ruby +Ruby как язык имеет несколько разных реализаций. Данный сайт +посвящен реализации **MRI** ("Matz's Ruby Interpreter" – Ruby интерпретатор Матца) или **CRuby**, но также существует несколько других. Они бывают очень полезны в различных ситуациях, предоставляют большую интеграцию с другими языками или окружениями, или имеют возможности, которых нет в MRI. -Список имплементаций: +Список реализаций: -* [JRuby][jruby] это Ruby реализованный на JVM (Java Virtual Machine), - использует оптимизированный JIT компилятор, сборщик мусора, нативные +* [JRuby][jruby] — это Ruby, реализованный на JVM (Java Virtual Machine), + использует оптимизированный JIT-компилятор, сборщик мусора, нативные потоки, инструментальную экосистему и огромное количество библиотек JVM. -* [Rubinius][rubinius] это "Ruby написанный на Ruby". Реализован на основе LLVM – +* [Rubinius][rubinius] это — «Ruby написанный на Ruby». Реализован на основе LLVM – изящной виртуальной машине, на который созданы и другие известные языки. -* [mruby][mruby] это легковесная реализация Ruby, которая может быть - слинкована и встроена в приложение. Возглавляет разработку mruby создатель - языка Ruby, Yukihiro “Matz” Matsumoto. -* [IronRuby][ironruby] это имплементация "тесно интегрированная с .NET - Framework". -* [MagLev][maglev] это "быстрая, стабильная имплементация Ruby с - интегрированным постоянством объектов и распределенным открытым +* [mruby][mruby] — это легковесная реализация Ruby, которая может быть + подключена и встроена в приложение. Возглавляет разработку mruby создатель + языка Ruby, Юкихиро Мацумото (Yukihiro Matsumoto), известного под псевдонимом Мац (Matz). +* [IronRuby][ironruby] — это реализация «тесно интегрированная с .NET + Framework». +* [MagLev][maglev] — это «быстрая, стабильная реализация Ruby с + интегрированным долговременным хранением объектов и распределенным открытым кешем". -* [Cardinal][cardinal] это "компилятор Ruby для виртуальной машины [Parrot][parrot]" +* [Cardinal][cardinal] — это «компилятор Ruby для виртуальной машины [Parrot][parrot]» (Perl 6). ### Ссылки