Pourquoi devrais-je apprendre Lisp? [fermé]

125

J'ai vraiment le sentiment que je devrais apprendre Lisp et il y a plein de bonnes ressources pour m'aider à le faire.

Je ne suis pas découragé par la syntaxe compliquée, mais où trouverais-je dans la "programmation commerciale traditionnelle" des endroits où il serait logique de l'utiliser au lieu d'un langage procédural.

Existe-t-il une application commerciale qui a été écrite en Lisp?

David
la source
5
Difficile d'être rebuté par ce qui n'existe pas.
Kaz du
Lisez le CV de Philip Greenspun . Il regorge de vrai travail Lisp.
Kaz
1
Ici aussi . Greenspun a travaillé sur la simulation de réseau à commutation de paquets, la conception de DSP, la conception de processeurs, la disposition VLSI, l'automatisation du génie mécanique, l'automatisation du terrassement, etc., le tout en utilisant Lisp ou impliquant Lisp. Il a aidé à concevoir l'architecture PA-RISC de Hewlett Packard à l'aide d'outils développés sur une machine Lisp.
Kaz
Voici quelques applications développées en Lisp - Emacs, G2, AutoCad, Igor Engraver et Yahoo Store
Arulx Z

Réponses:

55

L'une des principales utilisations de Lisp est l'intelligence artificielle. Un de mes amis à l'université a suivi un cours d'intelligence artificielle et pour son projet principal, il a écrit un solveur " Lights Out " en Lisp. Plusieurs versions de son programme utilisaient des routines d'IA légèrement différentes et des tests sur une quarantaine d'ordinateurs ont donné des résultats assez intéressants (j'aurais aimé qu'il soit en ligne quelque part pour que je puisse établir un lien, mais je ne pense pas que ce soit le cas).

Il y a deux semestres, j'ai utilisé Scheme (un langage basé sur Lisp) pour écrire un programme interactif qui simulait la routine «Who's on First» d'Abbott et Costello. L'entrée de l'utilisateur a été comparée à des structures de données assez compliquées (ressemblant à des cartes dans d'autres langues, mais beaucoup plus flexibles) pour choisir ce que serait une réponse appropriée. J'ai également écrit une routine pour résoudre un puzzle de diapositives 3x3 (un algorithme qui pourrait facilement être étendu à de plus grands puzzles de diapositives).

En résumé, apprendre Lisp (ou Scheme) peut ne pas donner de nombreuses applications pratiques au-delà de l'IA, mais c'est une expérience d'apprentissage extrêmement précieuse, comme beaucoup d'autres l'ont déclaré. La programmation dans un langage fonctionnel comme Lisp vous aidera également à penser de manière récursive (si vous avez eu des problèmes de récursivité dans d'autres langages, cela pourrait être d'une grande aide).

Justin Bennett
la source
5
Pourquoi dites-vous que Lisp n'est bon que pour l'IA? En outre, c'est un langage multi-paradigme. Le fonctionnel n'est que l'un des nombreux paradigmes qu'il permet.
Luís Oliveira
6
Je n'ai pas dit qu'il était uniquement utilisé pour l'IA, j'ai dit que l'une de ses principales utilisations était l'IA. Est-ce que vous l'avez vu?
Justin Bennett
32
"Veuillez ne pas supposer que Common Lisp n'est utile que pour les bases de données, les cadres de test unitaires, les filtres anti-spam, les analyseurs ID3, la programmation Web, les serveurs Shoutcast, les interpréteurs de génération HTML et les compilateurs de génération HTML simplement parce que ce sont les seules choses qui ont été implémentées dans le livre Practical CL "
Mikael Jansson
23
@JustinBennett oui vous l'avez dit. Ici: "En résumé, apprendre Lisp (ou Scheme) peut ne pas donner beaucoup d'applications pratiques au-delà de l'IA". Je déteste quand les gens se confrontent en se trompant.
Luka Ramishvili
127

Lisp est un langage volumineux et complexe avec un runtime volumineux et complexe pour le prendre en charge. Pour cette raison, Lisp est le mieux adapté aux problèmes volumineux et complexes.

Maintenant, un problème complexe n'est pas la même chose qu'un problème compliqué . Un problème complexe est un problème avec beaucoup de petits détails, mais ce n'est pas difficile. La rédaction d'un système de réservation pour les compagnies aériennes est une entreprise complexe, mais avec suffisamment d'argent et de programmeurs, ce n'est pas difficile. Obtenez la différence?

Un problème compliqué est un problème alambiqué, un problème où la division traditionnelle pour la conquête ne fonctionne pas. Contrôler un robot, ou travailler avec des données qui ne sont pas tabulaires (langues par exemple), ou des situations très dynamiques.

Lisp est vraiment bien adapté aux problèmes où la solution doit être extensible; l'exemple classique est l'éditeur de texte emacs. Il est entièrement programmable, et donc un environnement de programmation à part entière.

Dans son célèbre livre PAIP , Norvig dit que Lisp est idéal pour la programmation exploratoire. C'est-à-dire programmer une solution à un problème qui n'est pas entièrement compris (par opposition à un système de réservation en ligne). En d'autres termes: des problèmes compliqués.

De plus, apprendre Lisp vous rappellera quelque chose de fondamental qui a été oublié: la différence entre Von Neumann et Turing. Comme nous le savons, le modèle de calcul de Turing est un modèle théorique intéressant, mais inutile comme modèle pour la conception d'ordinateurs. Von Neumann, pour sa part, a conçu un modèle de la façon dont les ordinateurs et le calcul devaient s'exécuter: le modèle de Von Neumann. Le point central du modèle Von Neumann est que vous n'avez qu'une seule mémoire et que vous y stockez à la fois votre code et vos données. Notez attentivement qu'un programme Java (ou C #, ou ce que vous voulez) est une manifestation du modèle de Turing. Vous définissez votre programme concrètement, une fois pour toutes. Ensuite, vous espérez pouvoir gérer toutes les données qui y sont jetées.

Lisp maintient le modèle de Von Neuman; il n'y a pas de frontière nette et prédéterminée entre le code et les données. La programmation en Lisp ouvre votre esprit à la puissance du modèle Von Neumann. La programmation en Lisp vous fait voir les anciens concepts sous un nouveau jour.

Enfin, étant interactif, vous apprendrez à interagir avec vos programmes au fur et à mesure que vous les développez (par opposition à la compilation et à l'exécution). Cela change également la façon dont vous programmez et la façon dont vous visualisez la programmation.

Avec cette intro, je peux enfin offrir une réponse à votre question: trouveras-tu des endroits où cela surpasse les langues «traditionnelles»?

Si vous êtes un programmeur avancé, vous avez besoin d'outils avancés. Et il n'y a pas d'outil plus avancé que Lisp. Ou, en d'autres termes: la réponse est oui si vos problèmes sont difficiles. Non autrement.

user7517
la source
30
"mais avec suffisamment d'argent et de programmeurs, ce n'est pas difficile" - cela dit, avec suffisamment de programmeurs, cela devient impossible ;-)
Jonas Kölker
J'ai lu sur la capacité de lisps à générer du code à la volée, mais j'ai aussi lu qu'il peut être compilé .. y a-t-il des implémentations qui peuvent mélanger l'exécution interprétée et compilée? ou qui contiennent leur propre compilateur?
centaurian_slug
@centaurian_slug: Oui, absolument. Cela fait partie du pouvoir. Toute version qui n'a pas été délibérément paralysée aura son compilateur / interpréteur disponible au moment de l'exécution. Ainsi, par exemple, un développeur peut se connecter à une connexion spéciale sur son serveur Web, effectuer un débogage, mettre à jour certaines définitions de classes et de fonctions, et éventuellement recompiler tout ce qui s'appuyait sur ces définitions si nécessaire. Tout cela pendant que le serveur est opérationnel. Probablement pas légal dans une entreprise qui s'inquiète de la conformité SOX, mais c'est l'une des raisons pour lesquelles les industries utilisent des langages Braindead comme Java et C #
James
46

syntaxe compliquée ??

La syntaxe de lisp est incroyablement simple .

Application Killer écrite en lisp: emacs . Lisp vous permettra d'étendre emacs à volonté pour faire presque tout ce que vous pouvez imaginer qu'un éditeur pourrait faire.

Mais , vous ne devriez apprendre le lisp que si vous le souhaitez , et vous ne pourrez peut-être jamais l'utiliser au travail, mais c'est toujours génial.

Aussi, je veux ajouter: même si vous trouvez des endroits où lisp aura du sens, vous ne convaincrez probablement personne d'autre qu'il devrait être utilisé sur java, c ++, c #, python, ruby, etc.

Justin Standard
la source
@Justin: Il est probablement intéressant de noter que le noyau emacs est écrit en C. Mais ce n'est que du pinaillage - toutes les commandes sont écrites en elisp.
Bernard
3
ou plutôt - la syntaxe de base du lisp commun est simple. defmacro permet d'étendre la syntaxe, et certaines des macros intégrées (comme defmacro) peuvent devenir incroyablement compliquées; listes lambda, guillemets imbriqués, etc.
Aaron
Il est presque juste de dire que la partie C d'emacs est du code glue.
Luka Ramishvili
Selon le manuel de référence d'Emacs, "La plupart des commandes d'édition d'Emacs sont écrites en Lisp; les quelques exceptions auraient pu être écrites en Lisp mais utiliser C à la place pour plus d'efficacité." gnu.org/software/emacs/manual/html_mono/emacs.html#Intro
dpritch
25

Je ne peux pas répondre par une expérience de première main, mais vous devriez lire ce que Paul Graham a écrit sur Lisp . En ce qui concerne la partie "killer-app", lisez Battre les moyennes .

Christian Lescuyer
la source
2
+1. Cette réponse doit mentionner Yahoo Stores, la première application web, a été partiellement écrite en lisp. Citant Wikipedia: En 1998, Yahoo! Inc. a acheté Viaweb pour 455 000 actions de Yahoo! stock, évalué à environ 49 millions de dollars, et l'a renommé Yahoo! Boutique.
Steven Lu
17

J'ai programmé en Lisp professionnellement pendant environ un an, et cela vaut vraiment la peine d'être appris. Vous aurez une opportunité inégalée de supprimer la redondance de votre code, en étant en mesure de remplacer tout le code standard par des fonctions lorsque cela est possible, et des macros où non. Vous pourrez également accéder à une flexibilité inégalée lors de l'exécution, en traduisant librement entre le code et les données. Ainsi, les situations où les actions des utilisateurs peuvent déclencher le besoin de construire des structures complexes de manière dynamique sont celles où Lisp brille vraiment. Les horaires de vol des compagnies aériennes populaires sont écrits en Lisp, et il y a aussi beaucoup de CAD / CAM en Lisp.

John avec gaufre
la source
9

Si vous aimez la programmation, vous devriez apprendre Lisp pour le pur plaisir. XKCD exprime parfaitement l'illumination intellectuelle qui s'ensuit. Apprendre Lisp est pour le programmeur ce qu'est la méditation pour le moine bouddhiste (et je voulais dire cela sans aucune connotation blasphématoire).

Konrad Rudolph
la source
9

Lisp est très utile pour créer de petits DSL. J'ai une copie de Lisp in a Box en cours d'exécution au travail et j'ai écrit de petits DSL pour interroger les bases de données du serveur SQL et générer des couches de données, etc. en C #. Tout mon code de plaque de chaudière est maintenant écrit dans des macros lisp qui sortent en C #. Je génère du HTML, du XML, toutes sortes de choses avec. Bien que j'aimerais pouvoir utiliser Lisp pour le codage quotidien, Lisp peut apporter des avantages pratiques.

Phil Bennett
la source
J'utilise dotlisp.sourceforge.net/dotlisp.htm pour cela.
Mark Hurd
5

N'importe quelle langue semble beaucoup plus difficile quand on n'utilise pas les conventions d'indentation courantes d'une langue. Quand on les suit de Lisp, on voit comment il exprime assez facilement une structure d'arbre syntaxique (notez que ce n'est pas tout à fait correct car l'aperçu est un peu; les r devraient s'aligner avec les fns dans l'argument de tri rapide récursif):

(defun quicksort (lis) 
  (if (null lis) 
      nil
      (let* ((x (car lis)) 
             (r (cdr lis)) 
             (fn (lambda (a) 
                   (< a x))))
         (append (quicksort (remove-if-not fn 
                                           r)) 
                 (list x)
                 (quicksort (remove-if fn 
                                       r))))))
John avec gaufre
la source
1
Je pense qu'il y a une critique juste dans ce que vous dites. Je veux simplement dire "cela semble beaucoup plus difficile tel que vous l'avez présenté, et semble beaucoup plus clair tel qu'il est présenté ici". Je pense que vous devriez convenir que de nombreuses langues semblent beaucoup plus déroutantes si leurs conventions d'indentation ne sont pas respectées. De plus, si nous comparons l'indentation de, disons Java et Lisp, je dirais qu'ils nécessitent généralement à peu près le même niveau de connaissance des constructions de base de chaque langage pour les indenter correctement. Mais, il est juste, bien que totalement subjectif, de dire que cela semble toujours difficile.
John avec gaufre le
1
Pour simplifier un peu les choses, vous pouvez utiliser la norme letet utiliser un defunau début de la fonction pour définir fncar elle ne change pas.
Aaron Robson
4
@FerretallicA Sur quelle base déterminez-vous si quelque chose est «facilement lisible par l'homme» ou «auto-descriptif»? Similitude avec l'anglais? Le chinois est-il «facilement lisible par l'homme»? Et la notation mathématique? N'est-il «pas facilement lisible par l'homme»? Ce genre d'argument est un charabia ennuyeux, car son message caché est: "Cela ne ressemble pas à la façon dont j'ai appris à raisonner pour la première fois."
3
Plus comme votre «réfutation» sonne comme «Whinge whinge». Essayez le test de détection du langage de programmation. Prenez quelqu'un qui n'a pas programmé auparavant et montrez-lui une page de code VB et une page de code Lisp. Je parierai volontiers mon écrou gauche sur lequel des deux l'observateur occasionnel sera plus facilement en mesure de tirer des observations significatives.
nathanchere
1
Je me demande ce qu'un non-programmeur chinois, japonais, coréen, sumérien, hindi ou arabe penserait de votre désir plutôt impétueux d'abandonner votre testicule pour un argument facile.
4

J'ai trouvé que l'apprentissage d'un nouveau langage influence toujours votre style de programmation dans les langages que vous connaissez déjà. Pour moi, cela m'a toujours fait réfléchir de différentes manières pour résoudre un problème dans ma langue principale, qui est Java. Je pense qu'en général, cela élargit simplement votre horizon en termes de programmation.

dlinsin
la source
C'est parce que vous êtes un bon programmeur. Les mauvais programmeurs, au lieu d'influencer d'anciennes compétences avec de nouvelles connaissances, pensent dans des langages déjà connus tout en écrivant dans de nouveaux. Mais pourquoi utilisez-vous Java après lisp? :) Java est le plus difficile à utiliser après Lisp, imo.
Luka Ramishvili
4

Si vous devez vous demander si vous devez apprendre le lisp, vous n'avez probablement pas besoin de le faire.

Étranger
la source
8
Je dirais le contraire: si vous comprenez déjà lisp parce que vous avez de l'expérience avec un langage similaire, ce n'est probablement pas nécessaire. Si vous ne comprenez pas ce que Lisp a à offrir, vous pourriez bénéficier de l'exposition.
Mr Fooz
@MrFooz, il n'y a pas de langues similaires qui peuvent supprimer le besoin d'apprendre la partie lispy de lisp. Les principales fonctionnalités de lisp ne se trouvent dans aucune langue. Bien que la plupart le soient.
Luka Ramishvili
En fonction de vos objectifs. Si vous voulez mourir, vous n'avez pas besoin de respirer. Mais cela ne veut pas dire que vous ne devriez pas.
mimoralea
4

J'ai suivi une «classe lisp» à l'université dans les années quatre-vingt. Malgré le grokking de tous les concepts présentés dans la classe, je suis resté sans aucun appréciation pour ce qui rend lisp génial. J'ai peur que beaucoup de gens considèrent lisp comme un simple langage de programmation, ce que ce cours à l'université a fait pour moi il y a tant d'années. Si vous voyez quelqu'un se plaindre de la syntaxe de Lisp (ou de son absence), il y a de fortes chances qu'il fasse partie de ces personnes qui n'ont pas réussi à saisir la grandeur de Lisp. J'ai été l'une de ces personnes pendant très longtemps.

Ce n'est que deux décennies plus tard, quand j'ai ravivé mon intérêt pour lisp, que j'ai commencé à «comprendre» ce qui le rend intéressant - pour moi en tout cas. Si vous parvenez à apprendre Lisp sans avoir l'esprit époustouflé par les fermetures et les macros Lisp, vous avez probablement manqué le point.

fdesmet
la source
Je suis d'accord. Je suis actuellement sur ma deuxième incursion dans Lisp, 5 ans hors de l'école. Un terme de Lisp lorsque vous êtes encore vert peut ne pas avoir d'effet adéquat - je me souviens de m'être concentré uniquement sur la métaprogrammation, et je n'avais pas encore apprécié la métaprogrammation et la flexibilité.
Aaron
4

L'apprentissage de LISP / Scheme peut ne pas vous donner plus d'espace d'application, mais cela vous aidera à avoir une meilleure idée de la programmation fonctionnelle, de ses règles et de ses exceptions.

Cela vaut la peine d'investir du temps simplement pour apprendre la différence entre la beauté de six fonctions pures imbriquées et le cauchemar de six fonctions imbriquées avec des effets secondaires.

JT Hurley
la source
4

Depuis http://www.gigamonkeys.com/book/introduction-why-lisp.html

L'un des mythes les plus fréquemment répétés à propos de Lisp est qu'il est «mort». S'il est vrai que Common Lisp n'est pas aussi largement utilisé que, par exemple, Visual Basic ou Java, il semble étrange de décrire un langage qui continue d'être utilisé pour de nouveaux développements et qui continue d'attirer de nouveaux utilisateurs comme "mort". Parmi les récentes réussites de Lisp, citons Viaweb de Paul Graham, qui est devenu Yahoo Store lorsque Yahoo a acheté sa société; Le système de tarification des billets d'avion et d'achat de ITA Software, QPX, utilisé par le vendeur de billets en ligne Orbitz et d'autres; Le jeu de Naughty Dog pour PlayStation 2, Jak and Daxter, qui est en grande partie écrit dans un dialecte Lisp spécifique au domaine que Naughty Dog a inventé appelé GOAL, dont le compilateur est lui-même écrit en Common Lisp; et le Roomba, l'aspirateur robot autonome, dont le logiciel est écrit en L, un sous-ensemble de Common Lisp à compatibilité descendante. Peut-être encore plus révélateur est la croissance du site Web Common-Lisp.net, qui héberge des projets Common Lisp open source, et le nombre de groupes d'utilisateurs Lisp locaux qui ont vu le jour ces dernières années.

krdluzni
la source
4

"Lisp vaut la peine d'être appris pour l'expérience d'illumination profonde que vous aurez quand vous l'aurez enfin; cette expérience fera de vous un meilleur programmeur pour le reste de vos jours, même si vous n'utilisez jamais beaucoup Lisp lui-même."

--Eric S. Raymond, "Comment devenir un hacker"

http://www.paulgraham.com/avg.html

eric.christensen
la source
3

Je reconnais que Lisp est l'une de ces langues que vous ne pouvez jamais utiliser dans un cadre commercial. Mais même si vous n'y parvenez pas, l'apprendre élargira certainement votre compréhension de la programmation dans son ensemble. Par exemple, j'ai appris Prolog à l'université et même si je ne l'ai jamais utilisé par la suite, je me suis donné une meilleure compréhension de nombreux concepts de programmation et (parfois) une meilleure appréciation des langages que j'utilise.

Mais si vous voulez l'apprendre ... par tous les moyens, lisez On Lisp

Adam Haile
la source
Petite note: sur Lisp n'est pas une introduction appropriée à Lisp, lisez d'abord autre chose. Je recommande Practical Common Lisp.
Luís Oliveira
3

L'apprentissage de lisp mettra Javascript sous un tout autre jour! Lisp vous oblige vraiment à saisir à la fois la récursion et l'ensemble des «fonctions comme objets de première classe» -paradigm. Voir l'excellent article de Crockford sur Scheme vs Javascript . Javascript est peut-être le langage le plus important aujourd'hui, il est donc extrêmement utile de mieux le comprendre!

Erlend Halvorsen
la source
1
La langue la plus importante? Je ne pense pas, monsieur.
TraumaPony
7
Eh bien, il est disponible sur à peu près tous les appareils dotés d'un navigateur Web (et probablement sur quelques-uns qui n'en ont pas), donc en ce qui concerne les langages d'exécution des applications des utilisateurs finaux, il a probablement la pénétration la plus élevée de tous les langages de programmation de la planète. . De toute évidence, vous pourriez avoir une opinion entièrement différente sur ce qui est important. Sera-t-il utilisé pour guérir le cancer? Probablement pas. Mais, qu'on le veuille ou non, ce sera l'une des pierres angulaires du développement d'applications (Web) pour les années à venir.
Erlend Halvorsen
1
Je suis allé de la même manière! Bien que j'utilisais déjà les fonctionnalités fonctionnelles et de prototypage de Javascript, après avoir appris Lisp, Javascript était néanmoins un nouveau langage pour moi.
Luka Ramishvili
3

Le Script-Fu de Gimp est très lèvres. C'est une application photoshop-tueur.

Peter Turner
la source
3

D'accord, je suis peut-être bizarre mais je n'aime pas trop les essais de Paul Graham et sur Lisp est un livre vraiment difficile si vous ne maîtrisez pas déjà Common Lisp. Au lieu de cela, je dirais opter pour le Lisp pratique de Siebel . En ce qui concerne les "killer-apps", Common Lisp semble trouver sa place dans les boutiques de niche, comme ITA , donc bien qu'il n'y ait pas d'application synonyme de CL comme Rails est pour Ruby, il y a des endroits dans l'industrie qui l'utilisent si vous le faites un peu de fouille.

C Hogg
la source
2

Syntaxe compliquée? La beauté de lisp est qu'il a une syntaxe ridiculement simple. C'est juste une liste, où chaque élément de la liste peut être une autre liste ou un type de données élémentaire.

Cela vaut la peine d'apprendre en raison de la façon dont cela améliore votre capacité de codage à penser et à utiliser les fonctions comme un autre type de données. Cela améliorera la façon dont vous codez dans un langage impératif et / ou orienté objet, car cela vous permettra d'être plus flexible mentalement dans la façon dont votre code est structuré.

Antonio Haley
la source
2

Pour ajouter aux autres réponses:

Parce que le cours SICP (les vidéos sont disponibles ici ) est génial: vous apprend Lisp et bien plus encore !

HuîtreD
la source
2

Une application qui tue? Franz Inc. a une longue liste d' histoires à succès , mais cette liste ne comprend que les utilisateurs d'AllegroCL ... Il y en a probablement d'autres. Mon préféré est l'histoire de Naughty Dog , car j'étais un grand fan des jeux Crash Bandicoot.

Pour apprendre Common Lisp, je recommanderais Practical Common Lisp . Il a une approche pratique qui au moins pour moi l'a rendu plus facile que d'autres livres que j'ai consultés.

Vetle
la source
2

Vous pouvez utiliser Clojure aujourd'hui pour écrire des tests et des scripts sur la machine virtuelle Java. Bien qu'il existe d'autres langages Lisp implémentés sur la JVM, je pense que Clojure fait le meilleur travail d'intégration avec Java.

Il y a des moments où le langage Java lui-même empêche d'écrire des tests pour le code Java (y compris la «programmation commerciale traditionnelle»). (Je ne veux pas dire que comme une mise en accusation de Java - d'autres langages souffrent du même problème - mais c'est un fait. Puisque le sujet, et non Java, je ne vais pas élaborer. N'hésitez pas à commencer un nouveau sujet si quelqu'un veut en discuter.) Clojure élimine bon nombre de ces obstacles.

Bill Smith
la source
2

Lisp peut être utilisé partout où vous utilisez la programmation traditionnelle. Ce n'est pas si différent, c'est juste plus puissant. Vous rédigez une application Web? vous pouvez le faire sur Lisp, en écrivant une application de bureau? vous pouvez le faire sur Lisp, peu importe, vous pouvez probablement le faire sur Lisp, ou Python, ou toute autre programmation générique (il y a quelques langages qui conviennent pour une seule tâche).

Le plus gros obstacle sera probablement l'acceptation de votre patron, de vos pairs ou de vos clients. C'est quelque chose que vous devrez travailler avec eux. Le choix d'une solution pragmatique telle que Clojure qui peut exploiter la base d'installation actuelle de l'infrastructure Java, de la JVM aux bibliothèques, peut vous aider. De plus, si vous avez un programme Java, vous pouvez créer une architecture de plug-in et écrire des plug-ins Clojure pour celui-ci et finir par écrire la moitié de votre code dans Clojure.

Pablo
la source
1

Ce n'est pas une raison mais (triviale) AutoCAD prend en charge les runtime LISP et DCL. C'est un moyen pratique d'écrire des macros complexes (y compris l'automatisation ActiveX) si vous ne souhaitez pas utiliser VBA ou leurs SDK C ++ ou .NET, ou si une expression DIESEL ne le coupe pas.

De nombreuses fonctions d'AutoCAD sont en fait des routines LISP.

Type CAD
la source
1

C'est un sujet que j'ai moi-même réfléchi pendant un moment mais je ne suis pas vraiment parvenu à une décision, le temps étant le principal problème ...;)

Et comme je ne trouve pas ces liens dans ce post, je les ajoute pour l'intérêt public:

Histoire de réussite et d'échec: Lisping chez JPL

Une réussite vraiment impressionnante: Lisp utilisé dans la société Orbitz

Comparaison et analyse de l'utilisation de Lisp au lieu de Java: Lisp comme alternative à Java

PPS
la source
0

La syntaxe n'est pas pertinente, la lisibilité ne l'est pas!

kokos
la source
0

Une application qui tue? Le moteur de recherche de vols de ITA Software en est un.

Quant au "pourquoi", il fera très probablement de vous un meilleur développeur et il est extrêmement peu probable qu'il vous rende pire. Cela peut cependant vous faire préférer les dialectes lisp à d'autres langues.

Vatine
la source