web-dev-qa-db-fra.com

Lisp dans le monde réel

J'ai fait des expériences avec LISP (en fait Scheme) et j'ai trouvé que c'était une très belle langue sur laquelle j'aimerais en savoir plus. Cependant, il semble que LISP ne soit jamais utilisé dans des projets sérieux, et je ne l'ai pas vu répertorié comme une compétence souhaitée sur aucune offre d'emploi. Je suis intéressé à entendre toute personne qui a utilisé LISP ou l'a vu utilisé dans le "monde réel", ou qui sait si elle est considérée comme une langue purement académique.

144
titaniumdecoy

Franz, Inc. fournit un liste d'histoires de réussite sur leur site Web. Toutefois:

Veuillez ne pas supposer que LISP n'est utile que pour l'animation et les graphiques, l'IA, la bioinformatique, le B2B et le commerce électronique, l'exploration de données, les applications EDA/semi-conducteurs, les systèmes experts, la finance, les agents intelligents, la gestion des connaissances, la CAO mécanique, la modélisation et la simulation, Langage naturel, optimisation, recherche, analyse des risques, planification, télécommunications et création de sites Web simplement parce que ce sont les seules choses qu'ils ont énumérées. - Kent Pitman

Nous pouvons trouver d'autres histoires de réussite ici: http://LISP-lang.org/success/

et une liste des entreprises actuelles utilisant Common LISP: https://github.com/azzamsa/awesome-LISP-companies

87
Matthias Benkard

L'élisp d'Emacs compte-t-il? C'est l'utilisation la plus "réelle" que je connaisse (même si je ne suis pas sûr qu'Emacs soit considéré comme "réel").

54
eschercycle

ITA Software utilise Common LISP pour son moteur de recherche à bas prix QPX qui alimente des sites comme Orbitz , Kayak , et Américain et nited Compagnies aériennes entre autres. Il est également utilisé en partie pour son prochain système de réservation de passagers pour Air Canada. Paul Graham a écrit un pe sur LISP à l'ITA dans le passé.

(Avertissement: j'y travaille.)

43
Joe Shaw
26
jfs

en tant que petite startup, nous avons créé quelque chose que certains appellent un "serveur d'applications". mais en fait, ce n'est qu'un tas de bibliothèques LISP communes intégrées pour la connectivité SQL et les applications Web. certains les détails sont disponibles sur page du projet cl-dwim

à l'aide de cela, nous avons développé et exploité une application Web pour le gouvernement hongrois qui collecte des données auprès des gouvernements locaux et calcule la partie pertinente du budget du pays . il s'agit du deuxième budget que nous prévoyons maintenant.

il compte environ 4000 utilisateurs et s'exécute sur un cluster d'ordinateurs.

à partir du "langage académique": nous jouons avec des choses comme des continuations persistantes pour la modélisation des processus métier. c'est du code LISP aléatoire avec quelques primitives liées au processus supplémentaires et quelques contraintes. il peut s'arrêter à des points aléatoires dans le code et s'endormir (se commettre dans la base de données) pendant qu'il attend un événement externe.

est-ce pratique ou académique? tu décides... :)

25
Attila Lendvai

Reddit a été initialement écrit en LISP puis réécrit plus tard en Python. Il y a une bonne analyse du commutateur et de ce que cela signifie pour LISP sur Finding LISP .

23
Mark Reid

Paul Graham a utilisé et écrit sur ViaWeb qui a été écrit en LISP

Lisez à ce sujet ici - Battre la moyenne

22
epatel

Un projet open source assez récent qui bénéficie toujours d'une activité de développement cohérente et considérable est LilyPond .

C'est un programme de notation musicale qui prend en entrée un fichier texte facile à écrire et le convertit en de belles partitions (fichiers pdf). Offre toutes sortes de façons de jouer avec la sortie si vous le souhaitez. Il peut même produire des fichiers midi au son correct. Je l'utilise chaque fois que j'ai besoin de produire de belles partitions que d'autres musiciens liront. Je pense que c'est mieux que Finale et c'est gratuit !

Dans la catégorie commerciale, il y a aussi Igor Engraver de Notehead . Malheureusement, le site ne me permet pas de publier un lien direct vers la page qui parle de LISP, alors allez dans les téléchargements et regardez en bas pour un lien "LISP".

Il y a aussi Naughty Dog (une société de jeux informatiques) qui utilise LISP dans leurs jeux. Cet article en parle et montre même du code.

Et il y en a beaucoup d'autres qui ont été mentionnés et liés à, mais ce sont les principaux qui résonnent avec moi (être un compositeur/programmeur/joueur/... type).

12
Galghamon

Le logiciel ITA utilise une bonne quantité de CL.

http://www.itasoftware.com/careers/l_e_t_LISP.html?catid=8

12
Ali

Quelques plus récents:

Les trois premiers ont été écrits à l'aide de Weblocks, un framework web CL. Wigflip et Clutu utilisent du Hunchentoot pur.

Obtenez maintenant le codage! :)

10
Leslie P. Polzer

Le télescope spatial Hubble est planifié à l'aide des outils de planification LISP. La navette spatiale était. Le télescope Webb sera. La société que j'écris LISP pour analyse des milliards de dollars de réclamations d'assurance maladie et a augmenté d'environ 30% par an, même pendant la récession. Nous avons été achetés par une énorme entreprise, et l'un de nos programmeurs a égalé (en fait amélioré) la sortie du logiciel (de l'énorme entreprise) pour analyser les demandes d'assurance-maladie, à partir de zéro, par lui-même, en un an. (énorme entreprise), le code, pas dans LISP, a pris 6 ans et plusieurs programmeurs. Le problème, sur le plan de la carrière, est que trop de gens écoutent les doutes sur "beaucoup de parenthèses idiotes irritantes", etc. La plupart des managers ne comprennent pas et préfèrent avoir un projet dans une langue suffisamment familière pour pouvoir la micro-gérer. Ils pensent "LISP = AI" et ne veulent même pas envisager la possibilité que ce soit un bon langage à usage général. Ils bouchent juste leurs oreilles. Il n'y a pas d'outils raffinés pour créer des sites Web compatibles avec M $ ou regrouper ou pipeliner des applications existantes Java, et c'est 90% de ce dont s'occupe l'informatique en ces jours de croissance par acquisition. Je pourrais aller mais ça me rendrait amer. :)

10
ThePrisoner

Si je lance maintenant mon propre projet logiciel majeur, je prendrais ma décision linguistique en fonction des critères ci-dessus. Bien sûr, j'adore LISP, CLOS est génial, de véritables roches de portée lexicale, les macros LISP sont bien cool (lorsqu'elles sont utilisées comme indiqué), et personnellement j'aime vraiment la syntaxe LISP. […] Mais il faudrait beaucoup, ou nécessiter des circonstances particulières, pour me persuader de choisir LISP pour un grand projet logiciel, si j'étais en charge de faire le choix. - Dan Weinreb

9
Ólafur Waage

Je pense qu'Autocad a des extensions qui utilisent LISP pour étendre le produit. Voir AutoLISP .

9
Alex Miller

Peter Christensen a compilé une grande liste d'entreprises LISP (financièrement) prospères.

http://www.pchristensen.com/blog/LISP-companies/

9
Eric Normand

Il existe de nombreuses entreprises, projets et produits qui utilisent LISP dans divers rôles - j'ai travaillé pour plusieurs d'entre eux.

Il y a deux points pertinents:

  1. vous ne saurez peut-être jamais que votre dernier appareil électronique grand public a été construit avec, ou même programmé dans, Common LISP, ou que certains services que vous utilisez sont alimentés par un serveur LISP. Il serait incorrect de conclure que LISP n'est "jamais utilisé".

  2. … Et, comme tant de domaines, ces emplois ne sont jamais apparus sur Monster.com. Ce n'est pas parce que vous n'avez jamais vu une offre d'emploi qu'il n'y a aucune opportunité LISP requise ou un bon outil pour l'emploi.

8
Rich

Le système de plug-in de GIMP est basé sur Scheme, je crois. Je ne sais pas si c'est complètement "réel", mais cela semble être une application pratique de LISP, à tout le moins.

8
Tikhon Jelvis

Cherchez ACL2 . Il s'agit d'un moteur logique formel basé sur LISP qui a été utilisé pour un certain nombre de projets "réels" comme les méthodes formelles de sécurité logicielle et les preuves de correction pour le matériel à virgule flottante.

6
BCS

Loin d'être épuisé dans la liste http://www.franz.com/success/all_customer_apps.lhtml

6
fincomus

Si mes plans fonctionnent, nous utiliserons tous Scheme dans 5 ans! ; p

6
leppie

LISP est utilisé dans la composition musicale algorithmique du monde réel avec la bibliothèque Common Music . Les notes de Rick Taube du Metalevel sont un excellent texte d'introduction au sujet qui contient un tas d'exemples dans LISP pour la composition. Voir le répertoire d'exemples ici et une copie du texte ici .

6
Curtis

J'ai été très impressionné quand j'ai découvert que le PRISME ("Le projet Prism est un projet à long terme pour construire des outils logiciels pour la planification de la radiothérapie, y compris l'intelligence artificielle ainsi que des systèmes de simulation manuelle. ") est écrit en LISP commun.

Dans mon travail, j'écris des logiciels qui utilisent DICOM et je dois dire que l'écriture d'une bonne implémentation DICOM est une tâche difficile. Dans leur rapport ils décrivent comment Common LISP leur a permis de construire une bonne implémentation DICOM qui est meilleure (au moins à certains égards) que d'autres implémentations avec moins d'efforts.

6
dmitry_vk

Matthew Eric Bassett sur l'utilisation de la raquette dans l'industrie cinématographique: http://www.youtube.com/watch?v=37owCjWnkK

Daniel Liebgold sur Raquette et PS3: http://www.youtube.com/watch?v=oSmqbnhHp1c

5
soegaard

Je viens de réaliser maintenant que Maxima , un programme d'algèbre symbolique, est écrit en LISP commun. Je l'utilise depuis un certain temps et je pense que c'est aussi un très bon exemple dans la vraie vie.

5
Jan Stolarek

Google App Inventor est écrit dans le schéma

5
shikhar

Eh bien, ce n'est guère courant, mais j'utilise LISP pour autant de mon code de recherche que possible. C'est de loin le meilleur langage que j'ai trouvé pour l'équilibre du dynamisme et de l'expressivité tout en générant des performances décentes pour les chiffres, etc.

5
simon

GNU Make est extensible avec le schéma. Un cas pour la programmation du monde réel :)

https://www.gnu.org/software/make/manual/html_node/Guile-Integration.html

4
antono

LISP a tenté le saut à la vitesse de la lumière au début des années 80. Avant qu'il n'y ait des PC, il y avait des "machines LISP" produites commercialement qui ressemblent superficiellement à des postes de travail modernes, mais qui étaient LISP "tout en bas". Le matériel LISP a finalement perdu contre Intel (comme tout le reste). Le logiciel LISP a finalement perdu en C/C++. Il existe une variété de théories expliquant pourquoi il en est ainsi. http://www.andromeda.com/people/ddyer/LISP/

3
ddyer

Comme indiqué précédemment, le système d'algèbre informatique "Maxima" est écrit en LISP, mais d'autres CAS sont également écrits en LISP, par exemple Axiom et ses fourches (OpenAxiom et Fricas).

2
Thomas Baruchel

Boîte à outils de composition algorithmique de Paul Berg: http://www.koncon.nl/downloads/ACToolbox/

2
rabidmachine9

Je vois que quelques personnes l'ont déjà mentionné, mais LISP est largement utilisé dans le développement personnalisé d'Autocad. Autocad comprend un interpréteur LISP intégré. C'est l'un des moyens les plus simples d'étendre le produit et offre la possibilité d'améliorer rapidement votre productivité.

Aucune compilation n'est requise, côté utilisateur, et 1 ou plusieurs expressions LISP de ligne peuvent être entrées sur la ligne de commande et exécutées immédiatement sur le dessin. Pour les concepteurs et dessinateurs désireux de prendre même un petit pas pour apprendre les bases du LISP, cela peut fournir une énorme amélioration de la productivité.

Autocad fournit un certain nombre d'autres façons de personnaliser leurs produits; ObjectARX (C++), VB, C #, etc. L'interface LISP est de loin la plus facile à apprendre et à implémenter. Et la majorité des autres environnements de développement utilisent LISP d'une manière ou d'une autre.

L'interpréteur LISP a été mis à disposition dans une toute première version d'Autocad et s'appelait Variables et expressions. Il était assez limité mais a été un tel succès auprès des utilisateurs que des fonctionnalités supplémentaires ont été rapidement ajoutées. Un visuel complet IDE était plus tard (dans la version 2000 je pense).

Je détesterais deviner combien de millions (milliards?) De lignes de code LISP sont disponibles pour Autocad. Une recherche google sur "autocad .lsp" renvoie 2,3 millions de visites.

Ok, assez de dactylographie, c'est de retour au travail pour moi, en écrivant plus de LISP pour mon projet actuel :)

2
bluesixty

Pour l'application AutoCAD, AutoLISP/Visual LISP sont beaucoup utilisés pour les projets réels et il existe une grande communauté d'utilisateurs.

Le langage de programmation de schéma est utilisé comme langage de script par FLUENT Flow Modeling Software (dynamique des fluides numérique, CFD).

2
jfs

Mon entreprise a le logiciel écrit en schéma (PLOT). Le logiciel est utilisé pour agir comme un pare-feu de messagerie pour les grandes entreprises.

2
paul

http://www.gensym.com/ - Le moteur de règles métier en temps réel a de nombreux clients industriels.

En interne, il est écrit dans Commom LISP

1
kmmbvnr

Pour ajouter à tous les commentaires très judicieux ci-dessus: regardez l'outil Corman LISP et découvrez comment intégrer des FONCTIONS TRÈS INTELLIGENTES dans un système embarqué!

1
Alan P Borsalino

http://echowaves.com est construit en clojure avec compojure. Le site a été conçu comme un exercice d'apprentissage pour voir s'il est pratique d'utiliser clojure pour créer des applications Web. La réponse est oui! Bravo pour clojure sur le web. Apprenez le clojure par tous les moyens - cela améliorera votre carrière. Le code est open source, si quelqu'un veut voir par exemple quelles sont les pièces mobiles typiques d'une application compojure typique https://github.com/echowaves/echowaves

1
dmitryame

C'est un langage merveilleux, mais il est paralysé parce que (à mon avis en tant que propriétaire et programmeur d'une entreprise de logiciels), il y a très peu de packages LISP commerciaux et les rares qui existent exigent des frais d'exécution (car un package LISP approprié peut être également utilisé par les utilisateurs finaux pour écrire des programmes LISP).

J'utilise Steel Bank Common LISP pour prototyper du code sous Windows et Linux, et j'adore ça - mais je n'envisagerais jamais d'envoyer un produit écrit avec. Il n'y a pas de moyen facile de configurer l'accès en un seul clic aux programmes, de sorte que l'utilisateur final ne sera jamais confronté à une invite LISP. Il n'y a aucun moyen d'expédier un produit compilé afin que l'utilisateur ne puisse pas le démonter, apporter des modifications pour supprimer votre nom et le vendre comme le sien. J'ai vu des systèmes LISP dans lesquels les deux peuvent être effectués, mais ce sont des systèmes commerciaux où vous devez payer des frais d'exécution pour chaque utilisateur final de votre programme, ce qui est ridicule.

LISP peut se développer un jour (et j'espère vivement qu'il le fera), mais il n'est pas encore viable pour la plupart des logiciels commerciaux. La seule exception est quelque chose où il sera toujours exécuté sur des systèmes sur lesquels vous avez un contrôle complet, comme un serveur Web (et je n'ai entendu parler que de quelques sociétés l'utilisant même pour cela).

0
Head Geek

Walmart utilise clojure pour traiter les achats en temps réel

0
blue_note