Начал переводить, но потом вспомнил, что уже читал перевод. Правда тот вариант найти не могу, а тут не полный перевод, но суть уже изложена. Но и не пропадать же сделанному? ))) Я
"Некоторые слова очень вредные. Ни за что не поддаются! Особенно глаголы! Гонору в них слишком много! Прилагательные попроще - с ними делай, что хочешь. Но глаголы себе на уме! Впрочем, я с ними со всеми справляюсь".— Шалтай-Болтай
Всем привет! Сегодня мы послушаем сказку о Злом Короле Java и его попытке всемирного искоренятения1 глаголов.
Предупреждение: эта история без счастливого конца. Эта история не для людей со слабым сердцем или с критичными устами. Если Вы обидчивы или склонны плохо вести себя в комментариях - не читайте дальше.
Перед тем как начать нашу сказку, давайте сперва уберём "грязь" с нашего пути.
Бак полон
Все Java-люди любят сценарии использования, так что начнём с такого сценария, называемого "вынеси мусор". Ну знаете, "Джонни, вынеси мусор! Бак полон!"
Если Вы нормальный, обычный, заурядный, рускоязычный человек и Вас попросят описать процесс выноса мусора, Вы скорее всего скажете что-то вроде этого:
взять мусорный бак из-под раковины
вынести его в гараж
выбросить мусор в мусорный баквернуться в домпомыть рукиплюхнуться обратно на диван
продолжить играть в приставку (ну или чем Вы там занимаетесь)
Даже если Вы думаете не на русском, Вы всё равно скорее всего опишете порядок действий на своём любимом языке. В любом случае, вне зависимости от языка и от конкретного порядка действий, Вы будете описывать порядок действий приводящий к устранению мусора и вашему возвращению на диван, так как для этого Вы что-то делаете.
Наши мысли полны храбрыми, пылкими, активными действиями: мы живём, дышим, ходим, говорим, смеёмся, плачем, надеемся, боимся, едим, пьём, останавливаемся, идём и выносим мусор. Наша свобода заключается в возможности делать или не делать, выполнять или нет. Если мы будем камнями, лежащими на пляже, возможно жизнь и будет прекрасна, но мы не будем свободны, так как свобода - это наша возможность действовать.
Конечно в наших мыслях полно и существительных. Мы едим существительные, покупаем существительные в магазине, сидим на них и спим на них. Существительные могут упасть нам на голову, создав большое или маленькое существительное. Существительные - это вещи, а кто хотел бы жить без вещей? Но они лишь вещи: средства достижения цели или сами цели, дорогое имущество или то, что мы видим вокруг нас. Вот дом. Вот скала. Любой ребёнок может показать на существительное. И именно те изменения, которые происходят с ними и делают их интересными.
Но для изменений нужны действия. Действия - придают жизни вкус. Действия придают вкус вкусу! В конце концов Вы не почувствуете вкус пока что-то не съедите. Существительные могут быть везде, но течение жизни и интерес к ней - это глаголы.
Понятно, что кроме глаголов и существительных есть ещё и прилагательные, предлоги, местоимения, артикли (в некоторых языках), обязательные союзы, смачные ругательства и все остальные любимые нами части речи, которые помогают нам думать и выражать наши гениальные мысли. Я думаю, что все мы согласимся, что части речи разные нужны, части речи разные важны. Было бы совсем не хорошо потерять хоть одну из них.
Было бы странно, если бы решили отказаться от глаголов, верно?
Давайте я расскажу Вам о месте, где ровно так и поступили...
Королевство Существительных
В Джаваленде (Javalend), где кремниевым кулаком правил Король Джава, людям было запрещено думать так, как думаем мы с Вами. По приказу самого Короля в Джаваленде Существительные играют особую роль.Существительные в этой стране - самые почётные и важные граждане. Целыми днями они ходят туда-сюда, красуясь в своих пышных нарядах, которые для них шьют Прилагательные. Конечно, Прилагательные и рядом не стояли в местной иерархии рядом с Существительными, но и Прилагательные несказанно рады своей доле. Тому, что они не родились Глаголами.
Потому что положение глаголов в этом Королевстве очень, очень плохое...
В Джаваленде, декретом Короля Джава, Глаголы - собственность Существительных. Но они не просто домашние животные, нет; Глаголы выполняют всю самую грязную и рутинную ручную работу во всём этом Королевстве. По сути, они просто рабы, ну или в лучшем случае крепостные или закабалённые слуги. Жители Джаваленда вполне довольны таким положением и вряд ли представляют себе жизнь по другому.
Глаголы в Джаваленде отвечают за всю работу, но все к ним относятся крайне пренебрежительно. Ни какому Глаголу не позволено бродить без работы. Если Вы где-то на улице увидели Глагол, знайте, что его обязательно сопровождает Существительное.
Кончено, поскольку "сопровождает" это тоже глагол, он тоже не обходится без сопровождения. Он должен предоставить СопроводительГлаголов, который обеспечит сопровождение. А как же "предоставить" и "обеспечит"? Без проблем, у нас же есть Предоставлятель и Обеспечиватель, важные Существительные, чья работа в том, чтобы сопровождать эти никчёмные глаголы "предоставлять" и "обеспечивать" с помощью Предоставления и Обеспечивания соответсвенно.
Король, посоветовавшись с Богом Солнце (он же Sun), постоянно грозится изгнать все глаголы из своего Королевства Джава. Жители прекрасно понимают, что если это когда-то случится, всё равно потребуется хотя бы один Глагол, который будет делать за них всю работу. Выбор Короля, известного своим "особым" чувством юмора, решил, что это будет "исполнять".
Глагол "исполнять" и его синонимы-братья "выполнять", "запускать", "начинать", "сделайЭто", "сделайЭтоТак" и т.д могут выполнить работу любого другого глагола при помощи соответствующего Выполнителя и вызова выполнить(). Надо подождать? Ждатель.выполнить(). Почистить зубы? Зубочиститель(моиЗубы).начать(). Вынести мусор? ИсполнительПланаИзбавленияОтМусора.сделатьЭто(). Ни на одни глагол нельзя положиться, поэтому каждый из них может быть заменён Существительным и "запустить".
В наиболее патриотичных углах Джаваленда Существительные полностью изгнали Глаголы. Невнимательный наблюдатель может этого не заметить и решить, что Глаголы тут ещё где-то есть, они выносят мусор и обрабатывают поля... Но если присмотреться, станет ясно, что это не так. Существительные могут переименовать свой Глагол выполнить() без малейших для себя последствий.
In the more patriotic corners of Javaland, the Nouns have entirely ousted the Verbs. It may appear to casual inspection that there are still Verbs here and there, tilling the fields and emptying the chamber pots. But if one looks more closely, the secret is soon revealed: Nouns can rename their execute() Verb after themselves without changing its character in the slightest. When you observe the FieldTiller till(), the ChamberPotEmptier empty(), or the RegistrationManager register(), what you're really seeing is one of the evil King's army of executioners, masked in the clothes of its owner Noun.
Глаголы в соседних Королевствах
В соседних Королевствах-Языков-Программирования вынос мусора настолько же прост, как мы о нём и думаем. Так же как и в Java объекты являются существительными а функции - глаголами2, но, в отличие от Джаваленда, жители других королевств могут безо всяких проблем смешивать их друг с другом по своему желанию.
Например, в соседних царствах Силандия, Джаваскриптландия, Перлландия и Рубиландия можно вынести мусор с помощью последовательности действий, то есть глаголов или функций. И если они приложат действия к правильным объектам в правильном порядке (взять мусор, вынести наружу, выкинуть в контейнер...) вынос мусора будет благополучно завершён без лишних сопровождающих на каждом шагу.
Там редко возникает потребность создавать обёртки для того, чтобы делать из Глаголов Существительные. У них нет таких Существительных как ПланВыносаМусора, ПоисковикМестаДляВыносаМусора, ДелательДействийПослеВыносаМусора. Они просто используют Глаголы для того чтобы воздействовать на находящиеся рядом Существительные и в итоге получают таких Мастеров Глаголов как вынести_мусор() который уже гоняет Глаголов-Подмастерий для выполнения правильных действий в правильном порядке.
Notes
[1] Раньше это был глагол "to stamp out (искоренять)", который был заменён результатом вызова вызовом ФабрикаОтделенияГлаголов.создатьСепараторГлагола(текущийКонтекст).запустить(). Но это мы забегаем вперёд
[2] Переменные - это правильные существительные, атрибуты - прилагательные, операторы часто служат союзами, переменное число аргументов - местоимение "эй вы все" и т.д. Но мы сейчас не об этом.
[3] The meaning of the verb "lambda" is allegedly "to lambda".
[4] And arguably C#, due to its similar roots.
Комментариев нет:
Отправить комментарий