Lisp dans le monde réel

146

J'ai expérimenté Lisp (en fait Scheme) et j'ai trouvé que c'était un très beau langage sur lequel je suis intéressé à en savoir plus. Cependant, il semble que Lisp n'est 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 quiconque a utilisé Lisp ou l'a vu utilisé dans le «monde réel», ou qui sait s'il est considéré comme un langage purement académique.

titaniumdecoy
la source
1
@titaniumdecoy: Après avoir découvert Clojure et n'avoir aucune expérience préalable dans les langages de style Lisp, j'ai ajouté la balise Clojure pour ceux qui recherchent un discours dans Lisp. :)
Ande Turner
1
@titaniumdecoy: Clojure est un descendant de Lisp qui fonctionne sur la JVM et est capable d'utiliser des API écrites en Java
Ande Turner
12
Je n'apprendrais pas Lisp pour améliorer votre carrière, car ce ne sera pas le cas. Apprenez-le pour faire de vous un meilleur programmeur général, par tous les moyens.
skaffman
13
Sur la liste de diffusion Clojure, nous recevons fréquemment des histoires de réussite de l'industrie de personnes qui utilisent la langue.
Rayne
42
@skaffman: mais cela n'aidera-t-il pas à améliorer votre carrière?
Erik Forbes

Réponses:

88

Franz, Inc. fournit une liste inépuisable d'histoires de réussite sur son 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 / Semiconductor, 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écom et création Web simplement parce que ce sont les seules choses qu'ils ont répertoriées. - Kent Pitman

Nous pouvons trouver d'autres exemples 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

Matthias Benkard
la source
41
Ce texte de présentation me semble être un mantra très creux. Bien sûr, cela peut être dans ces domaines, mais surtout sous forme de code hérité. D'après mon expérience de la vie réelle, Python combiné à un C / C ++ swigged a largement remplacé Lisp en tant que langage (s) de prototypage rapide de choix pour les pirates pragmatiques.
Johan Kotlinski
30
@kotlinski où sont les preuves? lorsque vous sur-généralisez l'industrie, vous parlez de la moyenne, et non des meilleurs éléments. Les histoires de réussite suivent presque à chaque fois des technologies / idées distinctives et pas si moyennes.
Luka Ramishvili
Plus d'informations ici: lisp-lang.org/success (magnifiquement présenté) et ici: les entreprises utilisant Common LIsp .
Ehvince
54

Est-ce que elisp d'Emacs compte? C'est l'utilisation la plus "du monde réel" que je connaisse (même si je ne suis pas sûr qu'Emacs compte non plus comme "le monde réel").

eschercycle
la source
Non, mais vimoui;). Malheureusement (ou peut-être heureusement), personne n'a écrit de logiciel sérieux vimscript.
nouveau123456
25

en tant que petite startup, nous avons construit 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 détails sont disponibles sur la page du projet cl-dwim

en utilisant 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. c'est le deuxième budget que nous prévoyons actuellement.

il compte environ 4 000 utilisateurs et fonctionne sur un cluster d'ordinateurs.

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

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

Attila Lendvai
la source
Hou la la! Je pensais totalement que tous les logiciels utilisés par le gouvernement étaient au plus basiques, étant donné à quel point la plupart d'entre eux sont nuls. Est-ce toujours utilisé?
RR
5
bien sûr que non ... nous avons été abandonnés une fois que le projet a été conçu, prouvé être viable et suffisamment d'argent / d'attention ont été alloués. une grande entreprise bien connectée a pris le relais et a écrit sa propre version en java. une information intéressante est qu'ils ont continué à exécuter notre base de code pendant des années. Je les ai aidés avec une journée de consultation ...
Attila Lendvai
22

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

Lisez à ce sujet ici - Battre la moyenne

epatel
la source
4
Ce n'est pas vraiment un bon exemple, ils ont cessé leurs activités il y a des années
1800 INFORMATION
9
BTW, puis-je juste ajouter que je pense que Paul est illusoire sur celui-ci: ce n'est pas LISP qui leur a donné l'avantage, c'était juste d'être intelligent et de prêter attention. Ils auraient pu réussir avec VB si c'était le seul outil à portée de main.
Jeff
23
Ils n'ont pas fait faillite, ils ont été rachetés par Yahoo. Grosse différence, du moins pour les développeurs. :-)
Head Geek
18
@ 1800: Il n'a été "percuté" que lorsque Yahoo l'a possédé et l'a fait réécrire dans une autre langue, alors arrêtez de faire de la paille.
wfarr
6
@ 1800: Oubliez ce que Matthias a dit, je pense en fait que c'est assez drôle. Votre affirmation selon laquelle "il n'y a pas eu d'autres exemples significatifs d'utilisation de LISP dans le monde réel" implique directement que vous êtes omniscient. Bravo!
Ali
12

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 un fichier texte facile à écrire comme entrée et le convertit en une belle partition (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 décent. 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 poster 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 vidéo) 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 de type compositeur / programmeur / joueur / ...).

Galghamon
la source
1
En tant qu'intrigant, il est intéressant et inspirant de lire la partie du manuel LilyPond qui explique comment Scheme est devenu une partie de LilyPond. Auparavant, il était entièrement en C ++, mais ils ont trouvé qu'il devait être plus programmable par l'utilisateur, et ils ont pu résoudre ce problème en réécrivant des parties de celui-ci dans Scheme et en intégrant un interpréteur Scheme qui donne à l'utilisateur l'accès à LilyPond. internes.
Lindsey Kuper
10

Si je commençais maintenant mon propre grand projet logiciel, 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 vraiment cool (lorsqu'elles sont utilisées comme indiqué), et personnellement j'aime beaucoup la syntaxe Lisp. […] Mais il en faudrait beaucoup, voire 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

Ólafur Waage
la source
Bon - alors profitez de ne pouvoir embaucher personne :)
Jeff
@Jeff: "Mais il en faudrait beaucoup , ou nécessiterait des circonstances particulières , pour me persuader de choisir Lisp pour un grand projet logiciel". C'est un point contre Lisp.
jfs
d'où vient cette citation? googler par morceaux de texte ne donne que ce message
Vous devez cliquer sur: "répéter la recherche avec des résultats omis". La citation est tirée de: discuss.fogcreek.com/joelonsoftware/…
Chris Jester-Young
5
à votre santé. Je dois dire que cette citation est plus forte qu'elle ne l'est vraiment, hors contexte. weinreb travaille maintenant à l'ITA, et blogue sur lisp, entre autres; Je me demande comment et si cela a pu influencer son opinion.
10

Quelques plus récents:

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

Maintenant, codez! :)

Leslie P. Polzer
la source
10

Le télescope spatial Hubble est programmé à l'aide d'outils de planification Lisp. La navette spatiale était. Le télescope Webb le sera. La société pour laquelle j'écris Lisp analyse des milliards de dollars de réclamations d'assurance maladie et a connu une croissance d'environ 30% par an même pendant la récession. Nous avons été achetés par une grande entreprise et l'un de nos programmeurs a égalé (en fait amélioré) la sortie du logiciel de (énorme entreprise) pour analyser les demandes d'assurance-maladie, en partant de zéro, par lui-même, en un an. Le code de (énorme entreprise), pas en Lisp, a pris 6 ans et plusieurs programmeurs. Le problème, en ce qui concerne la carrière, c'est que trop de gens écoutent les rumeurs sur "beaucoup de parenthèses idiotes irritantes" et ainsi de suite. La plupart des managers ne «comprennent pas» et préfèrent avoir un projet dans une langue suffisamment familière pour pouvoir micro-gérer. Ils pensent "

Le prisonnier
la source
9

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

Alex Miller
la source
Correct. Il implémente également ActiveX - il est assez puissant et AtoDesk l'utilise lui-même pour écrire des commandes «internes». Il est interprété en ObjectARX - C ++, essentiellement.
Bloke CAD
8

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

Il y a deux points importants:

  1. vous ne saurez peut-être jamais que votre dernière pièce d'électronique grand public a été construite avec, ou même programmée, en 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 que cela signifie qu'il n'y a pas d'opportunités Lisp-required ou right-tool-for-the-job.

Riches
la source
Alors , où ne ces emplois apparaissent? J'ai essayé de résoudre cela moi-même.
Charlie Flowers le
2
Par expérience: listes de diffusion, courrier personnel direct d'entreprises et de recruteurs, mentions en personne, groupes d'utilisateurs, etc.
Riche le
1
Merci. On dirait que vous dites la même chose que j'ai lue ailleurs ... que le monde Lisp est une petite communauté, et vous pouvez en profiter en contribuant et en vous faisant connaître au sein de cette communauté, et c'est probablement la meilleure façon d'obtenir Lisp emplois. Êtes-vous d'accord?
Charlie Flowers
5
Oui. De plus, c'est la meilleure façon d'obtenir un emploi, point final. Démontrez vos compétences, apprenez à connaître les gens et faites-vous connaître.
Riche le
8

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

Tikhon Jelvis
la source
6

Recherchez ACL2 . C'est un moteur de logique formelle basé sur Lisp qui a été utilisé pour un certain nombre de projets «du monde réel» comme des méthodes formelles de sécurité logicielle et des preuves d'exactitude pour le matériel en virgule flottante.

BCS
la source
C'est un logiciel incroyable.
user37248
6

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

leppie
la source
Mes plans sont probablement assez similaires: 1) Créez une bibliothèque kickass au-dessus du schéma (à mi-chemin maintenant). 2) Testez la bibliothèque en y écrivant des programmes sympas (1 vers le bas, quelques autres à faire). 3) Ouvrez la bibliothèque en open source (déjà fait mais très désinvolte) 4) ... 5) Lisp devient l'outil naturel pour un travail au travail.
Ali
3
Je tire pour toi. Mais il ne vous reste plus que 2 ans et demi! J'espère que vous êtes sur la bonne voie.
Charlie Flowers le
10
Salut. 5 ans, c'est fini.
Karol S
1
Mieux vaut tard que jamais!
Loïc Faure-Lacroix
1
@ LoïcFaure-Lacroix Essaye toujours! : D
leppie
6

J'ai été assez impressionné quand j'ai découvert que le PRISM («Le projet Prism est un projet à long terme visant à construire des outils logiciels pour la planification de la radiothérapie, y compris des outils d'intelligence artificielle ainsi que des systèmes de simulation manuels.») Est écrit en Common Lisp.

Dans mon travail, j'écris des logiciels qui utilisent DICOM et je dois dire qu'écrire 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) qu'une autre implémentation avec moins d'effort.

dmitry_vk
la source
6

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

Curtis
la source
5

Eh bien, ce n'est guère courant, mais j'utilise lisp pour autant de code de recherche qu'il est gérable. C'est de loin le meilleur langage que j'ai trouvé pour l'équilibre entre dynamisme et expressivité tout en générant des performances décentes pour les numériques, etc.

Simon
la source
5

Google App Inventor est écrit dans Scheme

Shikhar
la source
5

Je viens de me rendre compte que Maxima , un programme d'algèbre symbolique, est écrit en Common Lisp. J'utilise cela depuis un certain temps et je pense que c'est aussi un très bon exemple de la vie réelle.

Jan Stolarek
la source
3

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

ddyer
la source
2

Le langage de programmation Scheme est utilisé comme langage de script par FLUENT Flow Modeling Software (Computational Fluid Dynamics, CFD).

jfs
la source
2

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

Jimmy Bergmark - JTB Monde
la source
2

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

Aucune compilation n'est requise, côté utilisateur, et une ou plusieurs expressions de ligne lisp peuvent être saisies sur la ligne de commande et exécutées immédiatement sur le dessin. Pour les concepteurs et les dessinateurs désireux de faire un petit pas pour apprendre les bases de Lisp, cela peut offrir un énorme avantage de productivité.

Autocad propose un certain nombre d'autres moyens de personnaliser ses produits; ObjectARX (C ++), VB, C #, etc. L'interface lisp est de loin la plus simple à 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é rendu disponible dans une toute première version d'Autocad et s'appelait Variables et expressions. Il était assez limité mais a rencontré un tel succès auprès des utilisateurs que des fonctionnalités supplémentaires ont été rapidement ajoutées. Un IDE visuel complet a été plus tard (en version 2000 je pense).

Je n'aimerais pas 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 résultats.

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

bluesixty
la source