Башня Вавилонская, 1 шт.

thoughtful emoticon

Я, как известно, программирую сам только и исключительно потому, что заставить больше некого… Давным-давно, в детстве, я читал такую чудную книжку как «Маленькая энциклопедия о большой кибернетике». Она и сейчас у меня есть, 1973 года издания, то бишь заметно старше меня самого.

И на букву «Я» есть там статья о языках программирования, которые изображены в виде Вавилонской Башни. Почти все кирпичи этой башни нынче благополучно умерли и остались пылиться разве что в музее, хотя кирпичиков там преизрядно. Только вот сама башня не исчезла никуда, и у меня такое подозрение, что она растет слишком быстро.

Скажем, понадобилось мне скриптовый интерпретатор для идеологически чуждого кода который я уже много лет видеть не могу… Взял я Lua – он полегче и пошустрее, и вроде бы не слишком заумный…. За десять строк кода я прикрутил его на место, т.е. функцию написанную на Lua можно вызвать из программы. Еще десять строк понадобились на то, чтобы таким манером программу нельзя было угробить, как-никак сервер. Но мне надо прикрутить ее не только таким манером, но и обратно, чтобы работать с данными доступными только самой программе изнутри Lua… Оказалось, что для этого мне надо продублировать до тридцати процентов ее кода, и видимо придется дублировать, а куда ж я денусь.

Полистав книжки про этот кошмарик, я обнаружил что он странен донельзя — все переменные глобальны пока не сказано обратное, (…?! Я понимаю, что это упрощает интерпретатор, но кгхм…) функции — это тоже переменные, (пффт) и особый акцент делается на то, чтобы плодить их на лету и присваивать направо и налево, (уууу…) и синтаксис, опять же, свой. Ладно, откладываем в сторону, начинаем думать над другой задачей, благо задач и так невпроворот.

Понадобилось мне сотворить веб-приложение для работы с довольно сложной базой данных, которую я уже упоминал недавно. Идею писать все это добро с нуля я оставил сразу же, потому что возиться с таким количеством форм — увольте. Вокруг раздаются экстатические крики любителей Ruby on Rails — но я в нем ни бум-бум, пока что, и сначала посмотрел в сторону CakePHP. Однако, несмотря на все полезные качества последнего, он довольно слабо документирован, копаться во внутренностях чужого кода меня совершенно не тянет, а главное, внятной поддержки древесной структуры записей в нем нет, а у меня на эту структуру много чего завязано, и писать ее заново я не буду, ибо и без нее есть чем заняться.

Поэтому CakePHP отправился лесом, я чертыхнулся и пошел изучать очередной язык. Посмотрел на этот Ruby… мдя… В детстве у меня была такая чудная вещь как Clarion 3.0. Я его обожал и клепал на нем неоптимальные, но очень хорошо работающие программы баз данных, не написав ни одной строчки кода. Здравствуй старая идея, давно не виделись… …но так ли надо было делать это на еще одном языке, с еще одним синтаксисом?

Они плодятся. У них там гнездо. Вавилонская башня уже скоро начнет царапать небесную сферу.

Пора что-нибудь сделать, чтобы мне не надо было держать на системе более четырех компиляторов, ибо это уже просто свинство.