Many thanks to Tristan Morris for creating a beautiful illustrated hardcover print edition of the site |
|||||||||||||||||
Однажды ночью худой и потрёпанный незнакомец подошёл к Храму и попросил позвать учителя Кайму. Учителя разбудили и привели к вратам, после чего незнакомец сказал: “В течение многих лет я бродил по этой безжалостной земле в поисках идеального языка программирования. Назовите любой от Ada до Zeno и я выберу его, будь он быстрый или медленный, высокоуровневый или низкоуровневый. Но на любые плюсы есть свои минусы, так что я соберусь и снова отправлюсь в путь, который сегодня привёл меня к вашим дверям”. Кайму попросил незнакомца описать язык, который хочет всем сердцем. “Он должен использоваться в масштабах предприятия”, - ответил незнакомец, - “на стороне клиента и на стороне сервера, в скриптах, командных файлах и ячейках электронных таблиц. Мне нужно, чтобы он работал в режиме реального времени; был многопоточный и, возможно, объектно-ориентированный; включал сборку мусора, обнаружение тупиков, пользовательские исключения, массивы с автоматическим изменением размеров и регулярные выражения для сопоставления строк. Я хочу простоту BASIC, чистоту Smalltalk, краткость Haskell, скорость C, согласованность Lisp, читаемость Python, гибкость Perl и мобильность… Java, я полагаю, но не с безобразной привязкой к системному коду”. “Завтра утром мы попробуем Вам помочь, чем сможем”, - сказал Кайму. “Но сегодня Вы должны заночевать в сарае плотника у южной стены”. Незнакомец поклонился и отправился стелить постель на фоне опилок и древесной стружки. Когда Кайму шёл к своей келье, монах спросил: “Что Вы придумали для него?” “Когда рассветёт”, - ответил учитель, - “наш гость увидит, что на стенах того сарая находятся десять тысяч инструментов, каждый из которых был создан ради единственной цели. Никто не принял бы молоток за зубило, и ни один настоящий плотник не мог бы отказаться от одного ради другого”. С первыми лучами солнца незнакомец вернулся к вратам Храма, где снова встретил Кайму и монаха. “Вы всё ещё ищете язык, который хотите всем сердцем?” - спросил Кайму. “Нет!” - ответил незнакомец. “Ибо в сарае я нашел самый изумительный кинжал не больше моей руки, в рукояти которого содержатся самые замечательные вещи: пинцет и зубочистки, плоскогубцы и сверла, ключи и развёртки, линейки и столько крошечных лезвий, что и не сосчитаешь! Взяв его, я понял, что моя судьба заключается в моделировании того, что я искал - языка, сделанного из других языков; инструмента, убирающего потребность в других инструментах!” Сказав это, незнакомец поклонился и удалился. Монах повернулся к Кайму, чья челюсть отвисла. “Что говорится в анналах про непонятый урок?” “Что это тоже приносит мудрость,” - сказал учитель, - “но только несчастному учителю. Без сомнения, я был бы в два раза эффективнее, если бы был вдвое умнее”. “А как быть с незнакомцем?” - спросил монах. “Безусловно, он не достигнет успеха в своём начинании, так как его кинжал не содержит ни молотка, ни зубила. А если частично и добьётся цели, то будет ещё хуже, так как добавится ещё один язык программирования, увеличивающий путаницу среди них”. “Пусть попробует, и удачи ему!” - сказал Кайму. “Если бы не было таких дураков, мы бы не имели ни Perl, ни Python, ни Bourne shell, ни Tcl, и мир был бы беднее. Я только переживаю, что ни Вы, ни я не такие дураки, мы никогда не будем пытаться добиться невозможного и мы не можем даже надеяться достичь этого”. Так учитель и монах пошли в Храм, чтобы вместе встретить утро. Перевод Sergey Malenkov. Отрывок из The Codeless Code, созданная Qi (qi@thecodelesscode.com). При условии, в соответствии с условиями Creative Commons Attribution-NonCommercial 3.0 Unported License. *The topic was suggested by Xunie. |