"В течение многих лет я бродил по этой безжалостной земле в поисках идеального языка программирования. Назовите любой от Ada до Zeno и я выберу его, будь он быстрый или медленный, высокоуровневый или низкоуровневый. Но на любые плюсы есть свои минусы, так что я соберусь и снова отправлюсь в путь, который сегодня привёл меня к вашим дверям".
Кайму попросил незнакомца описать язык, который хочет всем сердцем.
"Он должен использоваться в масштабах предприятия", - ответил незнакомец, - "на стороне клиента и на стороне сервера, в скриптах, командных файлах и ячейках электронных таблиц. Мне нужно, чтобы он работал в режиме реального времени; был многопоточный и, возможно, объектно-ориентированный; включал сборку мусора, обнаружение тупиков, пользовательские исключения, массивы с автоматическим изменением размеров и регулярные выражения для сопоставления строк. Я хочу простоту BASIC, чистоту Smalltalk, краткость Haskell, скорость C, согласованность Lisp, читаемость Python, гибкость Perl и мобильность… Java, я полагаю, но не с безобразной привязкой к системному коду".
"Завтра утром мы попробуем Вам помочь, чем сможем", - сказал Кайму. "Но сегодня Вы должны заночевать в сарае плотника у южной стены".
Незнакомец поклонился и отправился стелить постель на фоне опилок и древесной стружки. Когда Кайму шёл к своей келье, монах спросил: "Что Вы придумали для него?"
"Когда рассветёт", - ответил учитель, - "наш гость увидит, что на стенах того сарая находятся десять тысяч инструментов, каждый из которых был создан ради единственной цели. Никто не принял бы молоток за зубило, и ни один настоящий плотник не мог бы отказаться от одного ради другого".
С первыми лучами солнца незнакомец вернулся к вратам Храма, где снова встретил Кайму и монаха.
"Вы всё ещё ищете язык, который хотите всем сердцем?" - спросил Кайму.
"Нет!" - ответил незнакомец. "Ибо в сарае я нашел самый изумительный кинжал не больше моей руки, в рукояти которого содержатся самые замечательные вещи: пинцет и зубочистки, плоскогубцы и сверла, ключи и развёртки, линейки и столько крошечных лезвий, что и не сосчитаешь! Взяв его, я понял, что моя судьба заключается в моделировании того, что я искал - языка, сделанного из других языков; инструмента, убирающего потребность в других инструментах!"
Сказав это, незнакомец поклонился и удалился.
Монах повернулся к Кайму, чья челюсть отвисла. "Что говорится в анналах про непонятый урок?"
"Что это тоже приносит мудрость," - сказал учитель, - "но только несчастному учителю. Без сомнения, я был бы в два раза эффективнее, если бы был вдвое умнее".
"А как быть с незнакомцем?" - спросил монах. "Безусловно, он не достигнет успеха в своём начинании, так как его кинжал не содержит ни молотка, ни зубила. А если частично и добьётся цели, то будет ещё хуже, так как добавится ещё один язык программирования, увеличивающий путаницу среди них".
"Пусть попробует, и удачи ему!" - сказал Кайму. "Если бы не было таких дураков, мы бы не имели ни Perl, ни Python, ни Bourne shell, ни Tcl, и мир был бы беднее. Я только переживаю, что ни Вы, ни я не такие дураки, мы никогда не будем пытаться добиться невозможного и мы не можем даже надеяться достичь этого".
Так учитель и монах пошли в Храм, чтобы вместе встретить утро.
Original: Babel
Комментариев нет:
Отправить комментарий