Je n'ai aucune expérience professionnelle dans une vraie entreprise, mais je sais pourquoi LISP a été difficile à utiliser pour moi.
Tout d’abord, cela me rappelle ce billet de blog: http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html
Le principal problème que j'ai avec Lisp est la question "quel Lisp". Je travaille habituellement sous Linux comme plate-forme principale, mais ce que je fabrique doit être compatible avec Windows. Cela signifie que lorsque j'évalue une technologie à utiliser, elle doit me faciliter la vie lorsque je travaille sur deux systèmes d'exploitation radicalement différents. Je n'aime pas cette exigence, mais l'utiliser sur un vrai projet, c'est une exigence. Maintenant, je vais utiliser des langages qui ne supportent pas très bien Windows pour mes projets personnels, mais comme je n'ai jamais la chance d'écrire un gros projet logiciel, je n'ai pas l'expérience nécessaire.
Maintenant, quand j'essayais d'apprendre un langage fonctionnel, je voulais vraiment apprendre le Common Lisp. Cela semblait la bonne chose à faire. J'ai commencé à lire Practical Common Lisp comme point de départ, car je ne connaissais vraiment pas les fonctions intégrées et j'avais besoin d'un projet sur lequel travailler à Lisp. Les expressions S étaient belles et faciles. Toutes ces parenthèses étaient incroyablement belles pour moi car il était clair au jour le jour exactement ce qui se passait dans le code.
J'essaye donc d'écrire mon premier programme en Lisp en dehors du livre. Je voulais un outil de ligne de commande qui compte les lignes de code et supprime les lignes triviales du nombre de codes. Ce n'est pas l'outil le plus utile, mais c'est amusant à faire. Cela implique un accès aux fichiers, un peu d’analyse et de comptage. J'avais implémenté le même outil en Python environ une semaine plus tôt.
J'ai besoin d'accéder aux arguments en ligne de commande. Ensuite, j'apprends qu'il n'y a pas de moyen standard d'obtenir des arguments en ligne de commande. Ce sont toutes des fonctionnalités non standard. Ce n'est pas du tout multiplateforme. La situation ne fait qu'empirer, à partir du moment où la langue ne comprend pas beaucoup de bibliothèques. J'ai fini par basculer sur Haskell et je ne suis pas allé très loin dans Common Lisp (mes plaintes risquent donc de ne pas être valables).
Ce genre de chose non standard a toujours été une douleur pour moi dans le passé. C ++ a le même problème, mais avec des bibliothèques comme Boost, vous pouvez contourner ces faiblesses.
Cela n'aide pas non plus que la syntaxe Lisp pour tout ce qui est autre que les expressions S soit un peu moche.