Many thanks to Tristan Morris for creating a beautiful illustrated hardcover print edition of the site

tcc-case-title

Однажды ночью худой и потрёпанный незнакомец подошёл к Храму и попросил позвать учителя Кайму. Учителя разбудили и привели к вратам, после чего незнакомец сказал:

“В течение многих лет я бродил по этой безжалостной земле в поисках идеального языка программирования. Назовите любой от Ada до Zeno и я выберу его, будь он быстрый или медленный, высокоуровневый или низкоуровневый. Но на любые плюсы есть свои минусы, так что я соберусь и снова отправлюсь в путь, который сегодня привёл меня к вашим дверям”.

Кайму попросил незнакомца описать язык, который хочет всем сердцем.

“Он должен использоваться в масштабах предприятия”, - ответил незнакомец, - “на стороне клиента и на стороне сервера, в скриптах, командных файлах и ячейках электронных таблиц. Мне нужно, чтобы он работал в режиме реального времени; был многопоточный и, возможно, объектно-ориентированный; включал сборку мусора, обнаружение тупиков, пользовательские исключения, массивы с автоматическим изменением размеров и регулярные выражения для сопоставления строк. Я хочу простоту BASIC, чистоту Smalltalk, краткость Haskell, скорость C, согласованность Lisp, читаемость Python, гибкость Perl и мобильность… Java, я полагаю, но не с безобразной привязкой к системному коду”.

“Завтра утром мы попробуем Вам помочь, чем сможем”, - сказал Кайму. “Но сегодня Вы должны заночевать в сарае плотника у южной стены”.

Незнакомец поклонился и отправился стелить постель на фоне опилок и древесной стружки. Когда Кайму шёл к своей келье, монах спросил: “Что Вы придумали для него?”

“Когда рассветёт”, - ответил учитель, - “наш гость увидит, что на стенах того сарая находятся десять тысяч инструментов, каждый из которых был создан ради единственной цели. Никто не принял бы молоток за зубило, и ни один настоящий плотник не мог бы отказаться от одного ради другого”.

С первыми лучами солнца незнакомец вернулся к вратам Храма, где снова встретил Кайму и монаха.

“Вы всё ещё ищете язык, который хотите всем сердцем?” - спросил Кайму.

“Нет!” - ответил незнакомец. “Ибо в сарае я нашел самый изумительный кинжал не больше моей руки, в рукояти которого содержатся самые замечательные вещи: пинцет и зубочистки, плоскогубцы и сверла, ключи и развёртки, линейки и столько крошечных лезвий, что и не сосчитаешь! Взяв его, я понял, что моя судьба заключается в моделировании того, что я искал - языка, сделанного из других языков; инструмента, убирающего потребность в других инструментах!”

Сказав это, незнакомец поклонился и удалился.

Монах повернулся к Кайму, чья челюсть отвисла. “Что говорится в анналах про непонятый урок?”

“Что это тоже приносит мудрость,” - сказал учитель, - “но только несчастному учителю. Без сомнения, я был бы в два раза эффективнее, если бы был вдвое умнее”.

“А как быть с незнакомцем?” - спросил монах. “Безусловно, он не достигнет успеха в своём начинании, так как его кинжал не содержит ни молотка, ни зубила. А если частично и добьётся цели, то будет ещё хуже, так как добавится ещё один язык программирования, увеличивающий путаницу среди них”.

“Пусть попробует, и удачи ему!” - сказал Кайму. “Если бы не было таких дураков, мы бы не имели ни Perl, ни Python, ни Bourne shell, ни Tcl, и мир был бы беднее. Я только переживаю, что ни Вы, ни я не такие дураки, мы никогда не будем пытаться добиться невозможного и мы не можем даже надеяться достичь этого”.

Так учитель и монах пошли в Храм, чтобы вместе встретить утро.