> Для того, чтобы об этом рассуждать, надо для начала ввести критерии языка
> промышленного назначения. Легко. В двух словах: промышленный язык программирования -- должен быть предельно прост (но не примитивен), для успешного переноса с платформы на платформу ,возможности внедрения даже на самые смешные контроллеры и максимально препятствовать совершению ошибок со стороны программиста с одной стороны, и позволять легко проверять код с другой стороны. Семантика языка должна быть жёстко зафиксирована.
> Критерии, очевидно, будут зависеть от конкретной области деятельности.
> Скажем, для интернет-магазина и PHP отлично подходит.
Нет. Куча дыр в самом языке, и ещё больше дыр во всех программах написанных на нём.
> Если же говорить об областях, в которых от бесперебойной работы ПО зависит
> жизнь и здоровье человека (как экстремуме), то даже в Ada с
> ее богатой системой типов выразительных средств недостаточно, чтобы дать 100% гарантии.
Ада по определению не может дать 100% гарантии. Так как ВНЕЗАПНО её компилятором является gcc, который никто никогда не проверял и не верифицировал даже для основных платформ. Более того, на компанию, которая делает Аду распространяются требования торговой палаты США, а значит она не имеет права продавать Аду в Россию со всеми вытекающими последствиями. Делайте выводы.
> В идеале, для критических алгоритмов должно требоваться доказательство их корректности,
> а типы должны учитывать контекст. Такой язык есть, хоть и в
> экспериментальном статусе (по сути, разрабатывается одним человеком) - Idris. Да, ФП
> а-ля Haskell, и чтобы программировать в этой парадигме, нужна определенная подготовка,
> но без выделения pure functions эта задача вряд ли вообще решаема.
Всё это не может быть использовано в качестве промышленных языков программирования по причинам смотрите выше в кратком определении.
Автомат Калашникова -- потому и автомат Калашникова, что он _предельно_ прост, что влечёт за собой надёжность и эффективность. Ни Идрис, ни Хаскель не удовлетворяют этим требованиям.