Я долго размышлял над этим и даже ходил на конференции по Лиспу, чтобы попытаться понять, что это за «темная сторона» Лиспа, которая мешает всем принять его.
Я не нашел полного приличного ответа.
Невежество может быть причиной недостающей популярности, но меня больше удивляет то, что даже тот, кто наверняка знает о Лиспе (например, Google - у них работает Питер Норвиг), не использует его.
Единственное частичное объяснение, которое я придумываю, состоит в том, что большинство великих идей на Лиспе стали обычным явлением, единственная действительно важная пропущенная идея (чрезвычайно важная IMO) - это простота метапрограммирования.
К сожалению, я не вижу простого способа адсорбировать эту концепцию для других языков, потому что для хорошего метапрограммирования требуется гомоиконичный и регулярный язык (я говорю об общем метапрограммировании, а не о простой версии только для шаблонов). Другими словами, это в основном требует подхода Lisp к синтаксису: код - это данные, а данные - это код. Написание кода на языке с богатым синтаксисом, который манипулирует AST, сложнее, потому что вам нужно знать два языка: как писать код и как писать AST. Это особенно сложно, если ваш AST является фиксированным, а также сложным и нерегулярным с большим количеством различных типов узлов. Вместо этого Lisp имеет достаточно регулярный (и расширяемый!) AST, и вы уже обычно пишете код, напрямую записывая AST.
Метапрограммирование также по своей природе более сложное (и метапрограммирование даже больше и так далее), и большинство программистов и менеджеров, очевидно, просто предпочитают ответ «никому не понадобится».
Мне особенно грустно, что такие «новые» языки, как, например, go
заканчивали тем, что использовали текстовое метапрограммирование, когда это необходимо (генераторы внешнего кода, пишущие текстовые файлы) и «магию» (то есть компилятор может делать то, что не могут делать программисты).
Я думаю, что решением проблемы сложности являются мощные инструменты и образование. Тенденция, видимо, вместо тупых инструментов и притворяется, что проблемы нет.