Хайретдинов рассказывал забавный случай, когда программист в коде забыл закрыть одну скобку. В результате этой крошечной ошибки 50-процентная скидка вместо одного уценённого товара распространилась на весь ассортимент. Два часа сеть магазинов торговала всем товаром за полцены и наторговала 400 000 долларов убытков. Какой злоумышленник сумел бы нанести столь огромный ущерб, как этот разгильдяй?
Но виноват не разгильдяй. Ошибка в исходном коде программы - это стандартная ситуация. Типичная и штатная. Для её вылавливания и устранения строится технологический процесс с версиями, документированием, депонированием кода, ТЗ, ветками, тестированием, патчами, сертификацией, багтрекингом, DRM, стандартами...
Но всё это развесистое великолепие уместно лишь при разработке ПО, которое пишется на продажу или на заказ. А в софте, который пишется для себя, этих сущностей нет. Потому что невозможно отделить предыдущую версию от следующей, поскольку изменения вносятся десятки раз в день в сотне мест. Каждое из этих изменений невозможно документировать, составить предварительное ТЗ и утвердить его у начальства. Какие могут быть патчи, если ПО существует в единственном экземпляре? Какое может быть планирование изменений, если новые требования возникают каждый день и реализованы должны быть за 30 минут, а задержка на сутки уже несёт убытки бизнесу? Какой ещё аудит кода, если мы с трудом нашли программиста для этого проприетарного языка, а аудитор для него будет стоить втрое дороже, если он вообще существует в мире?
Кустарное ПО "для себя" не умеет подчиняться тем же правилам, что товарное ПО. Но при этом оно составляет больше половины всего софта в мире, если считать по количеству уникальных программ (если же по количеству строк кода, то напротив - товарное ПО преобладает). При разработке кустарного нет никакой возможности ввести процедуры, обеспечивающие контроль и аудит.
Вот поэтому, с точки зрения рисков, встроенные языки программирования - зло. Нельзя давать работникам писать программы. Их надо загнать в жёсткие рамки интерфейсов. Только нажимать кнопки и расставлять галки в чекбоксах. Любые команды, любой программный код - опасны для вашего бизнеса.