bash.im ithappens.me zadolba.li
6491

Всепроникающее омикрософчивание

Была программа. Cамая обычная программа — на С++ с GUI. Из-за попыток сделать её кроссплатформенной внутренний интерфейс был настолько сложен, что запрограммировать новое действие означало исполнить балетную сюиту с бубном. Все ругались, но терпели.

Начальству потребовалось прикрутить к программе скриптовый язык, чтобы проигрывать пользовательские сценарии. Поручили мне. Я не стал изобретать велосипед — присобачил к программе OLE-хост, вывел все ручки в COM-интерфейс, а вместо скриптового языка (который, по мнению начальства, должен был придумать сам) прикрутил VBScript, благо он на любой виндузной машине есть.

Эффект проявился через два месяца. Сначала все отказались от громоздкого внутреннего протокола и стали активно использовать сделанный для скрипта СОМ-интерфейс. Вторым шагом стало повсеместное использование в коде мини-скриптов, создаваемых на лету, — и это избавило от необходимости знать методы СОМ-интерфейса. Создаёшь в строковой переменной скрипт и отравляешь одним движением на исполнение. Потом вместо диалогов повились окна с HTML-браузером, в котором Javascript коннектился с моим OLE-хостом, и в ответ на нажатие кнопки на HTML-странице в кишках программы что-то проворачивалось. Количество людей, которые продолжали программировать на С++, упало ниже плинтуса. Когда я увольнялся, всерьёз обсуждался вопрос об интеграции в приложение сервлетов и элементов протокола HTTP.

Вот и думаю: саботажник я или нет?