Lisp in der realen Welt

146

Ich habe mit Lisp (eigentlich Schema) experimentiert und festgestellt, dass es eine sehr schöne Sprache ist, über die ich mehr erfahren möchte. Es scheint jedoch, dass Lisp niemals in ernsthaften Projekten verwendet wird, und ich habe es in keiner Stellenanzeige als gewünschte Fähigkeit aufgeführt. Ich bin daran interessiert, von jemandem zu hören, der Lisp verwendet oder in der "realen Welt" gesehen hat oder der weiß, ob es sich um eine rein akademische Sprache handelt.

Titandecoy
quelle
1
@titaniumdecoy: Nachdem ich gerade Clojure entdeckt hatte und noch keine Erfahrungen mit Sprachen im Lisp-Stil gesammelt hatte, fügte ich das Clojure-Tag für diejenigen hinzu, die nach einem Diskurs über Lisp suchen. :)
Ande Turner
1
@titaniumdecoy: Clojure ist ein Nachkomme von Lisp, das auf der JVM läuft und APIs verwenden kann, die in Java geschrieben wurden
Ande Turner
12
Ich würde Lisp nicht lernen, um Ihre Karriere zu verbessern, weil es nicht so ist. Lernen Sie es auf jeden Fall, um Sie zu einem besseren allgemeinen Programmierer zu machen.
Skaffman
13
Auf der Clojure-Mailingliste erhalten wir häufig Branchenerfolgsgeschichten von Personen, die die Sprache verwenden.
Rayne
42
@skaffman: Aber hilft das nicht, deine Karriere zu verbessern?
Erik Forbes

Antworten:

88

Franz, Inc. bietet auf seiner Website eine erschöpfende Liste von Erfolgsgeschichten . Jedoch:

Bitte nehmen Sie nicht an, dass Lisp nur für Animation und Grafik, KI, Bioinformatik, B2B und E-Commerce, Data Mining, EDA / Halbleiteranwendungen, Expertensysteme, Finanzen, intelligente Agenten, Wissensmanagement, mechanisches CAD, Modellierung und Simulation nützlich ist. Natürliche Sprache, Optimierung, Forschung, Risikoanalyse, Planung, Telekommunikation und Web-Authoring, nur weil dies die einzigen Dinge sind, die sie zufällig aufgelistet haben. - Kent Pitman

Weitere Erfolgsgeschichten finden Sie hier:  http://lisp-lang.org/success/

und eine Liste der aktuellen Unternehmen, die Common Lisp verwenden: https://github.com/azzamsa/awesome-lisp-companies

Matthias Benkard
quelle
41
Dieser Klappentext scheint mir ein sehr hohles Mantra zu sein. Sicher, es kann in diesen Bereichen sein, aber dann meistens als Legacy-Code. Nach meiner Erfahrung aus dem wirklichen Leben hat Python in Kombination mit C / C ++ Lisp als Rapid-Prototyping-Sprache (n) für pragmatische Hacker stark abgelöst.
Johan Kotlinski
30
@ Kotlinski Wo ist der Beweis? Wenn Sie die Branche übergeneralisieren, sprechen Sie über den Durchschnitt, nicht über die besten Teile davon. Erfolgsgeschichten folgen fast jedes Mal unverwechselbaren und nicht so durchschnittlichen Technologien / Ideen.
Luka Ramishvili
Mehr hier: lisp-lang.org/success (wunderschön präsentiert) und hier: Unternehmen, die Common LIsp verwenden .
Ehvince
54

Zählt Emacs 'Elisp? Das ist die "realste" Verwendung, mit der ich vertraut bin (obwohl ich nicht sicher bin, ob Emacs auch als "reale Welt" gilt).

Eschercycle
quelle
Nein, aber vimtut;). Leider (oder vielleicht zum Glück) hat niemand ernsthafte Software geschrieben vimscript.
new123456
25

Als kleines Startup haben wir etwas aufgebaut, das manche Leute als "Anwendungsserver" bezeichnen. Tatsächlich handelt es sich jedoch nur um eine Reihe integrierter allgemeiner Lisp-Bibliotheken für SQL-Konnektivität und Webanwendungen. Einige Details finden Sie auf der Projektseite von cl-dwim

Auf dieser Grundlage haben wir eine Webanwendung für die ungarische Regierung entwickelt und betrieben , die Daten von den lokalen Regierungen sammelt und den relevanten Teil des Haushalts des Landes berechnet. Dies ist das zweite Budget, das wir jetzt planen.

Es hat ungefähr 4000 Benutzer und läuft auf einem Cluster von Computern.

ab "akademische Sprache": Wir spielen mit Dingen wie dauerhaften Fortsetzungen für die Modellierung von Geschäftsprozessen. Es ist ein zufälliger Lisp-Code mit einigen zusätzlichen prozessbezogenen Grundelementen und einigen Einschränkungen. Es kann an zufälligen Stellen im Code anhalten und einschlafen (in die Datenbank aufgenommen werden), während es auf ein externes Ereignis wartet.

ist es praktisch oder akademisch? du entscheidest... :)

Attila Lendvai
quelle
Beeindruckend! Ich dachte total, dass jede Software, die die Regierung verwendet, höchstens grundlegend geschrieben wurde, wenn man bedenkt, wie viel die meisten von ihnen saugen. Wird das noch benutzt?
RR
5
Natürlich nicht ... wir wurden verlassen, sobald das Projekt entworfen wurde, sich als realisierbar erwiesen hat und genug Geld / Aufmerksamkeit zugewiesen wurde. Ein gut vernetztes größeres Unternehmen übernahm und schrieb eine eigene Version in Java. Ein interessanter Leckerbissen ist, dass sie unsere Codebasis jahrelang weiter betrieben haben. Ich half ihnen mit einem Tag der Beratung ...
Attila Lendvai
23

Reddit wurde ursprünglich in Lisp geschrieben und später in Python umgeschrieben. Es gibt eine gute Analyse des Schalters und dessen Bedeutung für Lisp bei Finding Lisp .

Mark Reid
quelle
Hier ist eine umgekehrte Geschichte: pgloader wurde von Python zu Common Lisp umgeschrieben
Ehvince
22

Paul Graham hat ViaWeb verwendet und darüber geschrieben, das in LISP geschrieben wurde

Lesen Sie hier darüber - Schlagen Sie den Durchschnitt

Epatel
quelle
4
Das ist kein wirklich gutes Beispiel, sie haben vor Jahren ihr Geschäft eingestellt
1800 INFORMATION
9
Übrigens, kann ich nur hinzufügen, dass ich denke, dass Paul in dieser Sache eine Wahnvorstellung hat: Es war nicht LISP, das ihnen den Vorteil verschaffte, es war nur klug zu sein und aufmerksam zu sein. Sie hätten mit VB Erfolg haben können, wenn dies das einzige Werkzeug gewesen wäre.
Jeff
23
Sie gingen nicht aus dem Geschäft, sie wurden von Yahoo aufgekauft. Großer Unterschied, zumindest zu den Entwicklern. :-)
Head Geek
18
@ 1800: Es wurde erst "in den Boden gerissen", nachdem Yahoo es besaß und es in einer anderen Sprache umschreiben ließ, also hör auf mit Strohmann.
wfarr
6
@ 1800: Vergiss was Matthias gesagt hat, ich finde es eigentlich ziemlich lustig. Ihre Behauptung, dass "es keine anderen bedeutenden Beispiele für die Verwendung von LISP in der realen Welt gegeben hat", impliziert direkt, dass Sie allwissend sind. Bravo!
Ali
12

LilyPond ist ein relativ neues Open-Source-Projekt, das immer noch eine konstante und beachtliche Entwicklungsaktivität aufweist .

Es ist ein Musiknotationsprogramm, das eine einfach zu schreibende Textdatei als Eingabe verwendet und in schöne Noten (PDF-Dateien) konvertiert. Bietet alle Arten von Möglichkeiten, um mit der Ausgabe herumzuspielen, wenn Sie möchten. Es kann sogar anständig klingende MIDI-Dateien erzeugen. Ich benutze es immer dann, wenn ich schöne Noten produzieren muss, von denen andere Musiker lesen werden. Ich denke es ist besser als Finale und es ist kostenlos !

In der kommerziellen Kategorie gibt es auch Noteheads Igor Engraver . Leider erlaubt mir die Site nicht, einen direkten Link zu der Seite zu veröffentlichen, die über Lisp spricht. Gehen Sie also zu den Downloads und suchen Sie unten nach einem "Lisp" -Link.

Es gibt auch Naughty Dog (eine Computerspielfirma), die Lisp in ihren Spielen verwenden. Dieser Artikel spricht darüber und zeigt sogar Code.

Und es gibt viele andere, die erwähnt und verlinkt wurden, aber dies sind die wichtigsten, die mich ansprechen (Komponist / Programmierer / Spieler / ... Typ).

Galghamon
quelle
1
Als Schemer ist es interessant und inspirierend, den Teil des LilyPond-Handbuchs zu lesen, in dem erklärt wird, wie Scheme Teil von LilyPond wurde. Früher war es vollständig in C ++, aber sie stellten fest, dass es vom Benutzer programmierbarer sein musste, und sie konnten dieses Problem lösen, indem sie Teile davon in Scheme umschrieben und einen Scheme-Interpreter einbauten, der dem Benutzer Zugriff auf LilyPond gewährt Einbauten.
Lindsey Kuper
10

Wenn ich jetzt mein eigenes großes Softwareprojekt starten würde, würde ich meine Sprachentscheidung anhand der oben genannten Kriterien treffen. Klar, ich liebe Lisp, CLOS ist großartig, echte lexikalische Scoping Rocks, Lisp-Makros sind sehr cool (wenn sie wie angegeben verwendet werden) und ich persönlich mag die Lisp-Syntax wirklich. […] Aber es würde viel oder besondere Umstände erfordern, um mich davon zu überzeugen, Lisp für ein großes Softwareprojekt zu wählen, wenn ich für die Auswahl verantwortlich wäre. - Dan Weinreb

Ólafur Waage
quelle
Richtig - dann genießen Sie es, niemanden einstellen zu können :)
Jeff
@ Jeff: "Aber es würde viel oder besondere Umstände erfordern , um mich davon zu überzeugen, Lisp für ein großes Softwareprojekt zu wählen." Es ist ein Punkt gegen Lisp.
JFS
Woher kommt dieses Zitat? googeln nach
Sie sollten auf klicken: "Suche mit ausgelassenen Ergebnissen wiederholen". Das Zitat stammt von: Diskussion.fogcreek.com/joelonsoftware/…
Chris Jester-Young
5
Prost. Ich muss sagen, dieses Zitat liest sich stärker als es wirklich ist, außerhalb des Kontexts. weinreb arbeitet jetzt bei ITA und bloggt unter anderem über lisp; Ich frage mich, wie und ob das seine Meinung beeinflusst haben könnte.
10

Einige neuere:

Die ersten drei wurden mit Weblocks, einem CL-Webframework, geschrieben. Wigflip und Clutu verwenden reines Hunchentoot.

Jetzt Codierung bekommen! :) :)

Leslie P. Polzer
quelle
10

Das Hubble-Weltraumteleskop wird mit Lisp-Planungstools geplant. Das Space Shuttle war. Das Webb-Teleskop wird sein. Das Unternehmen, für das ich Lisp schreibe, analysiert Krankenversicherungsansprüche in Milliardenhöhe und ist selbst während der Rezession um ~ 30% pro Jahr gewachsen. Wir wurden von einem großen Unternehmen gekauft, und einer unserer Programmierer hat die Ausgabe der Software eines großen Unternehmens für die Analyse von Medicare-Ansprüchen innerhalb eines Jahres von Grund auf selbst angepasst (tatsächlich verbessert). Der Code der (großen Firma), nicht in Lisp, dauerte 6 Jahre und mehrere Programmierer. Das Problem in Bezug auf die Karriere ist, dass zu viele dem Geschwätz über "viele irritierende dumme Klammern" und so weiter zuhören. Die meisten Manager "verstehen" es nicht und möchten lieber ein Projekt in einer Sprache haben, die so vertraut ist, dass sie Mikromanagement betreiben können. Sie denken "

Der Häftling
quelle
9

Ich glaube, Autocad hat Erweiterungen, die Lisp verwenden, um das Produkt zu erweitern. Siehe AutoLISP .

Alex Miller
quelle
Richtig. Es implementiert auch ActiveX - es ist ziemlich leistungsfähig und AtoDesk selbst verwendet es, um 'interne' Befehle zu schreiben. Es wird grundsätzlich in ObjectARX - C ++ interpretiert.
CAD Kerl
8

Es gibt viele Unternehmen, Projekte und Produkte, die Lisp in verschiedenen Rollen einsetzen - ich habe für mehrere von ihnen gearbeitet.

Es gibt zwei relevante Punkte:

  1. Möglicherweise wissen Sie nie, dass Ihre neueste Unterhaltungselektronik mit Common Lisp erstellt oder sogar programmiert wurde oder dass ein von Ihnen verwendeter Dienst von einem Lisp-Server betrieben wird. Es wäre falsch zu folgern, dass Lisp "nie benutzt" wird.

  2. … Und wie so viele Domains sind diese Jobs nie auf Monster.com erschienen. Nur weil Sie noch nie eine Stellenanzeige dafür gesehen haben, bedeutet dies nicht, dass es keine Lisp-erforderlichen oder richtigen Tools für die Arbeit gibt.

Reich
quelle
Wo erscheinen diese Jobs? Ich habe versucht, das selbst herauszufinden.
Charlie Flowers
2
Aus Erfahrung: Mailinglisten, persönliche Direktwerbung von Unternehmen und Personalvermittlern, persönliche Erwähnungen, Benutzergruppen und dergleichen.
Rich
1
Vielen Dank. Es hört sich so an, als würden Sie dasselbe sagen, was ich an anderer Stelle gelesen habe ... dass die Lisp-Welt eine kleine Community ist, und Sie können dies nutzen, indem Sie einen Beitrag leisten und innerhalb dieser Community bekannt werden, und das ist wahrscheinlich der beste Weg, um Lisp zu bekommen Arbeitsplätze. Sind Sie einverstanden?
Charlie Flowers
5
Ja. Darüber hinaus ist das der beste Weg, um Jobs zu bekommen, Punkt. Demonstrieren Sie Ihre Fähigkeiten, lernen Sie Menschen kennen und machen Sie sich bekannt.
Rich
8

Ich glaube, das Plug-In-System des GIMP basiert auf Scheme. Ich weiß nicht, ob dies eine vollständig "reale Welt" ist, aber es scheint zumindest eine praktische Anwendung von Lisp zu sein.

Tikhon Jelvis
quelle
6

Suchen Sie nach ACL2 . Es ist eine lisp-basierte formale Logik-Engine, die für eine Reihe von "realen" Projekten verwendet wurde, wie formale Methoden für die Software-Sicherheit und Korrektheitsnachweise für Gleitkomma-Hardware.

BCS
quelle
Dies ist eine erstaunliche Software.
user37248
6

Wenn meine Pläne klappen, werden wir in 5 Jahren alle Scheme verwenden! ; p

Leppie
quelle
Meine Pläne sind wahrscheinlich ziemlich ähnlich: 1) Erstellen Sie eine Kickass-Bibliothek über dem Schema (auf halbem Weg jetzt). 2) Testen Sie die Bibliothek, indem Sie coole Programme darin schreiben (1 nach unten, noch ein paar). 3) Open Source der Bibliothek (bereits erledigt, aber sehr beiläufig). 4) ... 5) Lisp wird zum natürlichen Werkzeug für einen Job bei der Arbeit.
Ali
3
Ich ziehe für dich. Aber Sie haben nur noch zweieinhalb Jahre! Hoffe du bist auf dem richtigen Weg.
Charlie Flowers
10
Hallo. 5 Jahre sind vorbei.
Karol S
1
Besser spät als nie!
Loïc Faure-Lacroix
1
@ LoïcFaure-Lacroix Ich versuche es immer noch! : D
Leppie
6

Ich war ziemlich beeindruckt, als ich herausfand, dass das PRISM («Das Prism-Projekt ist ein langfristiges Projekt zur Erstellung von Softwaretools für die Planung der Strahlentherapie, einschließlich Tools für künstliche Intelligenz sowie manuelle Simulationssysteme.») In Common Lisp geschrieben ist.

In meinem Job schreibe ich Software, die DICOM verwendet, und ich muss sagen, dass das Schreiben einer guten DICOM-Implementierung eine schwierige Aufgabe ist. In ihrem Bericht beschreiben sie, wie Common Lisp es ihnen ermöglicht, eine gute DICOM-Implementierung zu erstellen, die (zumindest in gewisser Hinsicht) besser ist als andere Implementierungen mit geringerem Aufwand.

dmitry_vk
quelle
6

Lisp wird in der realen algorithmischen Musikkomposition mit der Common Music- Bibliothek verwendet. Rick Taubes Notes from the Metalevel ist ein großartiger Einführungstext zu diesem Thema, der eine Reihe von Beispielen in Lisp zum Komponieren enthält. Siehe das Beispielverzeichnis hier und eine Kopie des Textes hier .

Curtis
quelle
5

Nun, es ist kaum Mainstream, aber ich verwende Lisp für so viel von meinem Forschungscode, wie handhabbar ist. Es ist bei weitem die beste Sprache, die ich für das Gleichgewicht zwischen Dynamik und Ausdruckskraft gefunden habe, während es dennoch eine anständige Leistung für Numerik usw. Erzeugt.

Simon
quelle
5

Google App Inventor ist in Schema geschrieben

Shikhar
quelle
5

Ich habe gerade festgestellt, dass Maxima , ein Programm für symbolische Algebra, in Common Lisp geschrieben ist. Ich benutze das schon seit einiger Zeit und ich denke, es ist auch ein sehr gutes Beispiel aus dem wirklichen Leben.

Jan Stolarek
quelle
3

Lisp versuchte in den frühen 80ern den Sprung zur Lichtgeschwindigkeit. Bevor es PCs gab, gab es kommerziell produzierte "Lisp Machines", die oberflächlich gesehen modernen Workstations sehr ähnlich waren, aber "ganz unten" lispelten. Lisp-Hardware ging schließlich an Intel verloren (wie alles andere auch). Lisp-Software verlor schließlich an C / C ++. Es gibt eine Vielzahl von Theorien, warum dies alles so ist. http://www.andromeda.com/people/ddyer/lisp/

ddyer
quelle
2

Die Programmiersprache Schema wird von der FLUENT Flow Modeling Software (Computational Fluid Dynamics, CFD) als Skriptsprache verwendet.

jfs
quelle
2

Für die AutoCAD-Anwendung werden AutoLISP / Visual LISP häufig für reale Projekte verwendet, und es gibt eine große Benutzergemeinschaft.

Jimmy Bergmark - JTB Welt
quelle
2

Ich sehe, einige Leute haben es bereits erwähnt, aber Lisp wird häufig in der benutzerdefinierten Autocad-Entwicklung verwendet. Autocad enthält einen eingebauten Lisp-Interpreter. Dies ist eine der einfachsten Möglichkeiten, das Produkt zu erweitern, und bietet die Möglichkeit, Ihre Produktivität schnell zu steigern.

Auf der Benutzerseite ist keine Kompilierung erforderlich, und 1 oder mehr Zeilen-Lisp-Ausdrücke können in die Befehlszeile eingegeben und sofort in der Zeichnung ausgeführt werden. Für Designer und Zeichner, die bereit sind, auch nur einen kleinen Schritt zum Erlernen der Grundlagen von Lisp zu machen, kann dies einen enormen Produktivitätssegen bedeuten.

Autocad bietet eine Reihe weiterer Möglichkeiten zur Anpassung der Produkte. ObjectARX (C ++), VB, C # usw. Die Lisp-Schnittstelle ist bei weitem am einfachsten zu erlernen und zu implementieren. Und die meisten anderen Entwicklungsumgebungen verwenden Lisp in irgendeiner Weise.

Der Lisp-Interpreter wurde in einer sehr frühen Version von Autocad zur Verfügung gestellt und hieß Variablen und Ausdrücke. Es war ziemlich begrenzt, aber bei den Benutzern so erfolgreich, dass schnell zusätzliche Funktionen hinzugefügt wurden. Eine vollständige visuelle IDE wurde später veröffentlicht (in Version 2000, glaube ich).

Ich würde es hassen zu erraten, wie viele Millionen (Milliarden?) Zeilen Lisp-Code für Autocad verfügbar sind. Eine Google-Suche auf "autocad .lsp" liefert 2,3 Millionen Treffer.

Ok, genug tippen, es funktioniert wieder für mich und ich schreibe mehr Lisp für mein aktuelles Projekt :)

Bluesixty
quelle