Зверёк Харьковский (zverok_kha) wrote in pguide_ru,
Зверёк Харьковский
zverok_kha
pguide_ru

3.1 Язык - ЗНАЧИТ язык

Оригинал: 3.1. Language and I MEAN Language


(1. - "Ruby легко читать."
- Эммм... Это моя реплика.
2. - Слушай, это что, заказуха? Типа рекламный буклет или каталог товаров?
3. - Наши карьеры рухнули.)

Несвоевременное примечание переводчика: чтение этой главы, особенно примеры, демонстрирующие естественность Ruby, требуют некоторого знания английского языка. Программирование вообще требует некоторого знания английского языка. Поэтому для тех куски, в которых why демонстрирует перевод с Ruby на "человеческий" я даю и английский вариант - для сравнения с Ruby, и русский - для уточнения смысла.


Убеждения не позволяют мне называть Ruby компьютерным языком. Это бы предполагало, что язык оперирует с понятиями компьютера. Что он создан для компьютера, в первую и главную очередь. А значит мы, программисты - иностранцы, ищущие пристанища в вотчине компьютера. Это язык компьютера и мы переводим его миру.

Но как ты назовешь язык, когда ты сам начинаешь мыслить на нем? Когда используешь слова и идиомы языка для самовыражения. Послушай-ка, компьютер ведь не может этого делать. Разве ж это компьютерный язык? Он наш, наш собственный родной язык!

Мы больше не можем считать этот язык компьютерным. Это программистояз. Это язык наших мыслей.

Прочти вслух:

5.times { print "Odelay!" }

В английском знаки пунктуации (точки, скобки, запятые) - это паузы. Пунктуация уточняет смысл слов, поясняет мысль автора фразы. Фразу выше можно прочитать так: "Five times print 'Odelay!'" ("Пять раз напечатай 'Odelay!'")

Именно это и делает маленькая Ruby-программа. Испанское восклицание Бека появится на экране пять раз. (Бек - звезда альтернативного рока, "Odelay", название одного из его альбомов - испано-мексиканское сленговое восклицание, эквивалентно американскому "Cool" - прим.перев.)

Прочти вслух:

exit unless "restaurant".include? "aura"

Здесь выполняется простая проверка. Программа выйдет (exit, закончит выполнение) если не (unless) выполнится условие: слово "restaurant" содержит (include) слово "aura". Еще раз, по-английски: "Exit unless the word restaurant includes the word aura" (и еще раз, по-русски: "Выйти, если слово 'restaurant' не содержит слова 'aura'")

Когда-нибудь видели, чтобы язык программирования так эффективно использовал вопросительные знаки? Ruby использует некоторые знаки пунктуации, например, вопрос и восклицание, чтобы улучшить читабельность кода. В коде, написанном выше, мы задаем вопрос, так почему бы не сделать это очевидным?

Прочти вслух:

['toast', 'cheese', 'wine'].each { |food| print food.capitalize }

Хотя этот кусочек кода читается тяжелее и меньше похож на обычную фразу, чем примеры выше, я все же прошу попробовать его прочитать. В некоторых случаях Ruby читается как английский, а в других - как сокращенный английский. Переводя на полноценный английский, это можно прочитать вот так: "With the words ‘toast’, ‘cheese’, and ‘wine’: take each food and print it capitalized" ("Со словами ‘toast’, ‘cheese’, ‘wine’ сделать: взять каждый предмет и напечатать его с большой буквы")

Компьютер исполнительно выведет: "Toast", "Cheese" и "Wine".

Теперь вам наверное интересно, как эти слова объединяются. Смочкиссс хочет знать, что эти точки и скобочки значат. Ниже описаны разные части речи.

Все, что вам пока стоит знать - Ruby построен из предложений. Они не совсем похожи на английские. Каждое предложение - короткий набор слов и знаков пунктуации, выражающий единую мысль. Из этих предложений можно составлять книги. Можно составлять страницы. Можно составлять целые романы. Романы, которые могут читать люди - но и компьютер тоже.

  • Post a new comment

    Error

    default userpic
  • 0 comments