@@ -12,13 +12,13 @@ lang: ru
12
12
### Идеалы создателя Ruby
13
13
14
14
Ruby – это тщательно сбалансированный язык. Его создатель [ Юкихиро
15
- Мацумото] [ matz ] (так же известный как "Matz"), объединил части его любимых
15
+ Мацумото] [ matz ] (также известный как "Matz"), объединил части его любимых
16
16
языков (Perl, Smalltalk, Eiffel, Ada и Lisp) чтобы сформировать новый
17
17
язык, в котором парадигма функционального программирования сбалансирована
18
18
принципами императивного программирования.
19
19
20
- Он часто повторял, что он " пытается сделать Ruby естественным, но не
21
- простым" языком, который отражает жизнь.
20
+ Он часто повторял, что « пытается сделать Ruby естественным, но не
21
+ простым» языком, который отражает жизнь.
22
22
23
23
Основываясь на этом, он добавляет:
24
24
@@ -39,20 +39,20 @@ Ruby-Talk, основная [рассылка](/ru/community/mailing-lists/) д
39
39
стало использовать несколько тематических рассылок вместо одной общей.
40
40
41
41
Индекс [ TIOBE] [ tiobe ] , который измеряет рост популярности языков
42
- программирования, помещает Ruby на 9 место среди общепризнанных языков
42
+ программирования, помещает Ruby в десятку общепризнанных языков
43
43
программирования. Во многом, рост популярности языка приписывается
44
44
популярности программного обеспечения, написанного на Ruby, в
45
- особенности – [ Ruby on Rails] [ ror ] , среде разработки веб-приложений.
45
+ особенности – [ Ruby on Rails] [ ror ] , фреймворку для разработки веб-приложений.
46
46
47
47
Ruby также [ абсолютно открыт] ({{ site.license.url }}). Открыт для бесплатного использования,
48
48
изменений, копирования и распространения.
49
49
50
50
### Всё в Ruby – объекты.
51
51
52
52
Вначале Matz рассматривал другие языки в поисках идеального синтаксиса.
53
- Вспоминая свои изыскания, он говорил: " Мне нужен был скриптовый язык,
53
+ Вспоминая свои изыскания, он говорил: « Мне нужен был скриптовый язык,
54
54
который был бы более мощным, чем Perl, и более объектно-ориентированным,
55
- чем Python." <sup >[ 2] ( #fn2 ) </sup >.”
55
+ чем Python.» <sup >[ 2] ( #fn2 ) </sup >.”
56
56
57
57
В Ruby всё – объект. Для каждой частицы информации или кода могут быть
58
58
определены собственные свойства и действия. В объектно-ориентированном
@@ -74,7 +74,7 @@ Ruby также [абсолютно открыт]({{ site.license.url }}). От
74
74
75
75
Ruby очень гибкий язык, так как он позволяет его пользователям свободно
76
76
менять его части. Основные части Ruby могут быть удалены или
77
- переопределены по желанию. А к существующие части можно модифицировать .
77
+ переопределены по желанию. А существующие части можно изменять .
78
78
Ruby старается ни в чём не ограничивать пользователя.
79
79
80
80
Например, сложение выполняется операцией плюс (` + ` ). Но, если вы хотите
@@ -95,17 +95,17 @@ y = 5.plus 6
95
95
Операторы в Ruby – синтаксический сахар для методов. Вы также можете
96
96
переопределить их.
97
97
98
- ### Блоки, по-настоящему выразительная конструкция
98
+ ### Блоки — по-настоящему выразительная конструкция
99
99
100
100
Блоки в Ruby также являются отличным источником гибкости. Программист
101
101
может добавить замыкание к любому методу, описывая, как этот метод
102
- должен действовать. Замыкание называется * блок* и является одной из
102
+ должен действовать. Замыкание — это * блок* , являющийся одной из
103
103
наиболее популярных конструкций для пришедших в мир Ruby из мира императивных
104
104
языков программирования, таких как PHP или Visual Basic.
105
105
106
106
Создание блоков было вдохновлено функциональными языками
107
- программирования. Matz говорил, " замыканиями в руби я хотел отдать дань
108
- уважения культуре языка Lisp<sup >[ 3] ( #fn3 ) </sup >."
107
+ программирования. Мац ( Matz) говорил, « замыканиями в Ruby я хотел отдать дань
108
+ уважения культуре языка Lisp<sup >[ 3] ( #fn3 ) </sup >.»
109
109
110
110
{% highlight ruby %}
111
111
search_engines =
@@ -124,7 +124,7 @@ search_engines =
124
124
125
125
В отличие от многих объектно-ориентированных языков, Ruby ** намеренно** предоставляет
126
126
лишь одиночное наследование. Но Ruby также предоставляет концепцию модулей
127
- (называемых Категориями в Objective-C). Модули – это коллекции методов.
127
+ (называемых «категориями» в Objective-C). Модули – это коллекции методов.
128
128
129
129
Классы могут свободно вмешивать модуль и получать все его методы.
130
130
Например, любой класс, который реализует метод ` each ` , может подмешать
@@ -144,14 +144,14 @@ end
144
144
### Визуальное представление Ruby
145
145
146
146
Так как в Ruby зачастую пунктуация встречается довольно редко и обычно
147
- используются английские слова в качестве ключевых, некоторые знаки
147
+ в качестве ключевых слов используется английский язык , некоторые знаки
148
148
препинания используются для украшения Ruby. Ruby не нуждается в
149
- объявлении переменных. В нем используются простые конвенции именования ,
149
+ объявлении переменных. В нем используются простые соглашения по именованию ,
150
150
для того чтобы разделить области видимости переменных.
151
151
152
- * ` var ` может быть локальной переменной.
153
- * ` @var ` переменная объекта.
154
- * ` $var ` глобальная переменная.
152
+ * ` var ` — может быть локальной переменной.
153
+ * ` @var ` — переменная объекта.
154
+ * ` $var ` — глобальная переменная.
155
155
156
156
Данная символика повышает читабельность, позволяя программисту легко
157
157
идентифицировать роль каждой переменной. Это также позволяет не
@@ -164,12 +164,12 @@ Ruby полон другими особенностями и конструкц
164
164
* В Ruby есть конструкции для обработки исключений, как в Java или Python,
165
165
которые позволяют проще работать с ошибками.
166
166
167
- * В Ruby представлен настоящий mark-and-sweep (пометь и отчисти) сборщик
168
- мусора для всех Ruby объектов . Не нужно вручную отслеживать количество
169
- ссылок в сторонних библиотеках. Как говорит Matz, "Это полезней для
170
- вашего здоровья."
167
+ * В Ruby представлен настоящий сборщик мусора типа mark-and-sweep
168
+ (пометь и отчисти) для всех Ruby0объектов . Не нужно вручную отслеживать
169
+ количество ссылок в сторонних библиотеках. Как говорит Matz,
170
+ «Это полезней для вашего здоровья.»
171
171
172
- * Писать расширения на C в Ruby проще чем в Perl или Python при помощи
172
+ * Писать расширения на C в Ruby проще, чем в Perl или Python при помощи
173
173
очень элегантного API для вызова Ruby из C. Он включает в себя вызовы
174
174
для встраивания Ruby в программное обеспечение, чтобы использовать его
175
175
как скриптовый язык. Также доступен интерфейс SWIG.
@@ -179,40 +179,40 @@ Ruby полон другими особенностями и конструкц
179
179
180
180
* В Ruby реализованы независимые от операционной системы потоки.
181
181
Таким образом, на любых платформах, где вы запускаете Ruby, вы также
182
- имеете возможность использовать многопоточность, не зависимо от того,
182
+ можете использовать многопоточность, не зависимо от того,
183
183
поддерживает ли данная система потоки или нет. Вы можете использовать
184
184
возможности многопоточности даже в MS-DOS!
185
185
186
186
* Ruby отличается высокой переносимостью: он был разработан большей
187
187
частью на GNU/Linux, но работает на многих типах UNIX, macOS,
188
188
Windows, DOS, BeOS, OS/2, и так далее.
189
189
190
- ### Другие имплементации Ruby
190
+ ### Другие реализации Ruby
191
191
192
- Ruby как язык имеет несколько разных имплементаций . Данный сайт
193
- посвящен имплементации ** MRI** ("Matz's Ruby Interpreter" – Ruby
192
+ Ruby как язык имеет несколько разных реализаций . Данный сайт
193
+ посвящен реализации ** MRI** ("Matz's Ruby Interpreter" – Ruby
194
194
интерпретатор Матца) или ** CRuby** , но также существует несколько
195
195
других. Они бывают очень полезны в различных ситуациях, предоставляют
196
196
большую интеграцию с другими языками или окружениями, или имеют
197
197
возможности, которых нет в MRI.
198
198
199
- Список имплементаций :
199
+ Список реализаций :
200
200
201
- * [ JRuby] [ jruby ] это Ruby реализованный на JVM (Java Virtual Machine),
202
- использует оптимизированный JIT компилятор, сборщик мусора, нативные
201
+ * [ JRuby] [ jruby ] — это Ruby, реализованный на JVM (Java Virtual Machine),
202
+ использует оптимизированный JIT- компилятор, сборщик мусора, нативные
203
203
потоки, инструментальную экосистему и огромное количество библиотек JVM.
204
- * [ Rubinius] [ rubinius ] это " Ruby написанный на Ruby" . Реализован на основе LLVM –
204
+ * [ Rubinius] [ rubinius ] это — « Ruby написанный на Ruby» . Реализован на основе LLVM –
205
205
изящной виртуальной машине, на который созданы и другие известные
206
206
языки.
207
- * [ mruby] [ mruby ] это легковесная реализация Ruby, которая может быть
208
- слинкована и встроена в приложение. Возглавляет разработку mruby создатель
209
- языка Ruby, Yukihiro “Matz” Matsumoto.
210
- * [ IronRuby] [ ironruby ] это имплементация " тесно интегрированная с .NET
211
- Framework" .
212
- * [ MagLev] [ maglev ] это " быстрая, стабильная имплементация Ruby с
213
- интегрированным постоянством объектов и распределенным открытым
207
+ * [ mruby] [ mruby ] — это легковесная реализация Ruby, которая может быть
208
+ подключена и встроена в приложение. Возглавляет разработку mruby создатель
209
+ языка Ruby, Юкихиро Мацумото (Yukihiro Matsumoto), известного под псевдонимом Мац (Matz) .
210
+ * [ IronRuby] [ ironruby ] — это реализация « тесно интегрированная с .NET
211
+ Framework» .
212
+ * [ MagLev] [ maglev ] — это « быстрая, стабильная реализация Ruby с
213
+ интегрированным долговременным хранением объектов и распределенным открытым
214
214
кешем".
215
- * [ Cardinal] [ cardinal ] это " компилятор Ruby для виртуальной машины [ Parrot] [ parrot ] "
215
+ * [ Cardinal] [ cardinal ] — это « компилятор Ruby для виртуальной машины [ Parrot] [ parrot ] »
216
216
(Perl 6).
217
217
218
218
### Ссылки
0 commit comments