Lisp nel mondo reale


146

Ho sperimentato Lisp (in realtà Scheme) e l'ho trovato una lingua molto bella di cui sono interessato a saperne di più. Tuttavia, sembra che Lisp non sia mai utilizzato in progetti seri e non l'ho visto elencato come l'abilità desiderata in nessun annuncio di lavoro. Sono interessato a ricevere notizie da chiunque abbia usato Lisp o che l'abbia visto usato nel "mondo reale" o che sappia se è considerato un linguaggio puramente accademico.


1
@titaniumdecoy: Dopo aver appena scoperto Clojure e non aver avuto precedenti esperienze in linguaggi in stile Lisp, ho aggiunto il tag Clojure per coloro che sono alla ricerca di un discorso in Lisp. :)
Ande Turner,

1
@titaniumdecoy: Clojure è un discendente di Lisp che gira su JVM ed è in grado di utilizzare le API scritte in Java
Ande Turner,

12
Non imparerei Lisp come un modo per migliorare la tua carriera, perché non lo farà. Imparalo per renderti un programmatore generale migliore, in ogni caso.
Skaffman,

13
Nella mailing list di Clojure riceviamo spesso storie di successo del settore da parte di persone che usano la lingua.
Rayne,

42
@skaffman: ma non ti aiuterà a migliorare la tua carriera?
Erik Forbes,

Risposte:


88

Franz, Inc. fornisce un elenco esaustivo di storie di successo sul loro sito Web. Però:

Si prega di non dare per scontato che Lisp sia utile solo per animazione e grafica, AI, bioinformatica, B2B ed e-commerce, data mining, applicazioni EDA / semiconduttori, sistemi esperti, finanza, agenti intelligenti, gestione della conoscenza, CAD meccanico, modellistica e simulazione, Linguaggio naturale, ottimizzazione, ricerca, analisi dei rischi, programmazione, telecomunicazioni e web authoring solo perché queste sono le uniche cose che sono state elencate. - Kent Pitman

Possiamo trovare altre storie di successo qui:  http://lisp-lang.org/success/

e un elenco delle società attuali che utilizzano Common Lisp: https://github.com/azzamsa/awesome-lisp-companies


41
Quel blurb mi sembra un mantra molto vuoto. Certo, potrebbe essere in giro in quelle aree, ma poi principalmente come codice legacy. Nella mia esperienza dalla vita reale, Python combinato con il C / C ++ modificato ha molto sostituito Lisp come il linguaggio oi linguaggi di prototipazione rapida di scelta per gli hacker pragmatici.
Johan Kotlinski,

30
@kotlinski dov'è la prova? quando sovradimensionalizzi il settore, allora stai parlando della media, non delle sue parti migliori. le storie di successo seguono quasi ogni volta tecnologie / idee distintive e non così nella media.
Luka Ramishvili,

Altro qui: lisp-lang.org/success (magnificamente presentato) e qui: aziende che usano Common LIsp .
Ehvince,

54

L'elisp di Emacs conta? Questo è l'uso più "reale" che conosco (anche se non sono sicuro che Emacs sia considerato "mondo reale").


No, ma lo vimfa;). Sfortunatamente (o forse per fortuna), nessuno ha scritto software serio vimscript.
nuovo123456,



25

come piccola startup abbiamo creato qualcosa che alcune persone chiamano "application server". ma in realtà sono solo un mucchio di librerie lisp comuni integrate per la connettività sql e le applicazioni web. alcuni dettagli sono disponibili nella pagina del progetto cl-dwim

utilizzando che abbiamo sviluppato e gestiamo un'applicazione web per il governo ungherese che raccoglie dati dai governi locali e calcola la parte rilevante del bilancio del paese. questo è il secondo budget che stiamo pianificando ora.

ha circa 4000 utenti e funziona su un cluster di computer.

a partire dal "linguaggio accademico": stiamo giocando con cose come continuazioni persistenti per la modellizzazione dei processi aziendali. è un codice lisp casuale con alcune primitive aggiuntive relative al processo e alcuni vincoli. può fermarsi in punti casuali nel codice e addormentarsi (entrare nel database) mentre attende qualche evento esterno.

è pratico o accademico? tu decidi... :)


Wow! Pensavo totalmente che tutto il software che il governo usa fosse scritto al massimo, dato che la maggior parte di loro faceva schifo. È ancora in uso?
RR

5
certo che no ... siamo stati abbandonati una volta che il progetto è stato progettato, si è dimostrato fattibile e abbiamo ricevuto abbastanza denaro / attenzione. una grande azienda ben collegata prese il controllo e scrisse la sua versione in Java. un aspetto interessante è che hanno continuato a far funzionare il nostro codice per anni. li ho aiutati con una giornata di consulenza ...
Attila Lendvai,


22

Paul Graham ha usato e scritto su ViaWeb che è stato scritto in LISP

Leggi qui - Beating the Average


4
Non è proprio un buon esempio, hanno cessato l'attività anni fa
1800 INFORMAZIONI

9
A proposito, posso solo aggiungere che penso che Paul sia delirante su questo: non è stato LISP a dare loro il vantaggio, è stato solo essere intelligente e prestare attenzione. Avrebbero potuto avere successo con VB se quello fosse l'unico strumento a portata di mano.
Jeff,

23
Non fallirono, furono acquistati da Yahoo. Grande differenza, almeno per gli sviluppatori. :-)
Head Geek,

18
@ 1800: "è finito nel terreno" solo dopo che Yahoo l'ha posseduto e lo ha riscritto in un'altra lingua, quindi smetti di usare la paglia.
wfarr,

6
@ 1800: dimentica quello che ha detto Matthias, in realtà penso che sia abbastanza divertente. La tua affermazione che "non ci sono stati altri esempi significativi di utilizzo del LISP nel mondo reale" implica direttamente che sei onnisciente. Bravo!
Ali,


12

LilyPond è un progetto open source abbastanza recente che sta ancora svolgendo un'attività di sviluppo coerente e considerevole .

È un programma di notazione musicale che prende come input un file di testo facile da scrivere e lo converte in bellissimi spartiti (file pdf). Offre tutti i tipi di modi per giocherellare con l'output, se lo si desidera. Può persino produrre file midi dal suono decente. Lo uso ogni volta che devo produrre spartiti piacevoli che altri musicisti leggeranno. Penso che sia meglio di Finale ed è gratuito !

Nella categoria commerciale, c'è anche Igor Engraver di Notehead . Sfortunatamente, il sito non mi consente di pubblicare un link diretto alla pagina che parla di Lisp, quindi vai ai download e cerca in fondo un link "Lisp".

C'è anche Naughty Dog (una società di giochi per computer) che usa Lisp nei loro giochi. Questo articolo ne parla e mostra anche del codice.

E ce ne sono molti altri che sono stati menzionati e collegati, ma questi sono i principali che risuonano con me (essendo un compositore / programmatore / giocatore / ... tipo).


1
Come Schemer, è interessante e stimolante leggere la parte del manuale di LilyPond che spiega come Scheme è diventata parte di LilyPond. In passato era interamente in C ++, ma hanno scoperto che doveva essere più programmabile dall'utente e sono stati in grado di risolvere quel problema riscrivendo parti di esso in Scheme e creando un interprete Scheme che consente all'utente di accedere a LilyPond interni.
Lindsey Kuper il

10

Se avessi avviato il mio grande progetto software ora, prenderei la mia decisione linguistica in base ai criteri sopra. Certo, adoro Lisp, CLOS è formidabile, le vere rocce scoping lessicali, le macro Lisp sono fantastiche (se usate come diretto) e personalmente mi piace molto la sintassi di Lisp. […] Ma ci vorrebbe molto, o richiedere circostanze speciali, per convincermi a scegliere Lisp per un grande progetto software, se fossi incaricato di fare la scelta. - Dan Weinreb


Bene, allora divertiti a non essere in grado di assumere nessuno :)
Jeff,

@Jeff: "Ma ci vorrebbe molto , o richiedere circostanze speciali , per convincermi a scegliere Lisp per un grande progetto software". È un punto contro Lisp.
jfs,

da dove viene questa citazione? googling con blocchi di testo produce solo questo post

Si dovrebbe fare clic su: "ripetere la ricerca con risultati omessi". La citazione è tratta da: discuss.fogcreek.com/joelonsoftware/…
Chris Jester-Young,

5
Saluti. Devo dire che questa citazione sembra più forte di quanto non sia in realtà, al di fuori del contesto. weinreb ora lavora presso ITA e, tra le altre cose, blogga su lisp; mi chiedo come e se ciò possa aver influenzato la sua opinione.

10

Alcuni più recenti:

I primi tre di questi sono stati scritti utilizzando Weblocks, un framework Web CL. Wigflip e Clutu usano Hunchentoot puro.

Ora ottieni la codifica! :)


10

Il telescopio spaziale Hubble è programmato utilizzando gli strumenti di pianificazione Lisp. Lo Space Shuttle era. Sarà il telescopio Webb. La società con cui scrivo Lisp analizza miliardi di dollari di richieste di risarcimento per malattia e ha registrato una crescita del ~ 30% all'anno anche durante la recessione. Siamo stati acquistati da una grande azienda e uno dei nostri programmatori ha eguagliato (effettivamente migliorato) l'output del software (della grande azienda) per analizzare i reclami di Medicare, partendo da zero, da solo, in un anno. Il codice (della grande compagnia), non in Lisp, impiegò 6 anni e diversi programmatori. Il problema, dal punto di vista della carriera, è che troppi ascoltano la chiacchierata su "molte irritanti sciocche parentesi" e così via. La maggior parte dei manager non "capisce" e preferirebbe avere un progetto in una lingua abbastanza familiare da poterli gestire. Pensano "


9

Credo che Autocad abbia estensioni che usano Lisp per estendere il prodotto. Vedi AutoLISP .


Corretta. Implementa anche ActiveX: è abbastanza potente e AtoDesk stesso lo usa per scrivere comandi "interni". In sostanza, viene interpretato in ObjectARX - C ++.
Bloke CAD,


8

Ci sono molte aziende, progetti e prodotti che usano Lisp in una varietà di ruoli - ho lavorato per molti di loro.

Vi sono due punti rilevanti:

  1. potresti non sapere mai che l'ultima parte dell'elettronica di consumo è stata costruita con, o addirittura programmata in, Common Lisp, o che alcuni servizi che usi sono alimentati da un server Lisp. Sarebbe errato concludere che Lisp non è "mai usato".

  2. ... e, come tanti domini, quei lavori non sono mai apparsi su Monster.com. Solo perché non hai mai visto un annuncio di lavoro per questo non significa che non ci siano opportunità richieste da Lisp o lo strumento giusto per il lavoro là fuori.


Allora, dove non compaiono quei posti di lavoro? Ho cercato di risolverlo da solo.
Charlie Flowers,

2
Dall'esperienza: mailing list, posta personale diretta da aziende e recruiter, menzioni di persona, gruppi di utenti e simili.
Ricco

1
Grazie. Sembra che tu stia dicendo la stessa cosa che ho letto altrove ... che il mondo Lisp è una piccola comunità, e puoi trarne vantaggio contribuendo e facendoti conoscere all'interno di quella comunità, e questo è probabilmente il modo migliore per ottenere Lisp lavori. Sei d'accordo?
Charlie Flowers,

5
Sì. Inoltre, questo è il modo migliore per trovare lavoro, punto. Dimostrare le tue abilità, conoscere persone e farti conoscere.
Ricco

8

Credo che il sistema di plug-in di GIMP sia basato su Scheme. Non so se questo è completamente "mondo reale", ma sembra essere un'applicazione pratica di Lisp, almeno.


6

Cerca ACL2 . È un motore logico formale basato su lisp che è stato utilizzato per una serie di progetti "del mondo reale" come metodi formali di sicurezza del software e prove di correttezza per l'hardware in virgola mobile.


Questo è un software straordinario.
user37248


6

Se i miei piani funzionano, useremo Scheme tra 5 anni! ; p


I miei piani sono probabilmente abbastanza simili: 1) Crea una libreria kickass in cima allo schema (a metà strada ora). 2) Prova la libreria scrivendo programmi interessanti (1 in basso, pochi altri per andare). 3) Open source la libreria (già eseguita ma in modo molto casuale). 4) ... 5) Lisp diventa lo strumento naturale per un lavoro al lavoro.
Ali,

3
Sto tirando per te. Ma ti restano solo 2 anni e mezzo! Spero che tu sia sulla buona strada.
Charlie Flowers,

10
Ciao. 5 anni sono finiti.
Karol S,

1
Meglio tardi che mai!
Loïc Faure-Lacroix,

1
@ LoïcFaure-Lacroix Stai ancora provando! : D
leppie,

6

Sono rimasto piuttosto colpito quando ho scoperto che il PRISM («Il progetto Prism è un progetto a lungo termine per costruire strumenti software per la pianificazione della radioterapia, compresi strumenti di intelligenza artificiale e sistemi di simulazione manuale.») È scritto in Common Lisp.

Nel mio lavoro sto scrivendo software che utilizza DICOM e devo dire che scrivere una buona implementazione DICOM è un compito difficile. Nel loro rapporto descrivono come Common Lisp ha permesso loro di costruire una buona implementazione DICOM migliore (almeno in qualche modo) di altre implementazioni con meno sforzo.


6

Lisp è utilizzato nella composizione musicale algoritmica del mondo reale con la libreria Common Music . Notes from the Metalevel di Rick Taube è un ottimo testo introduttivo all'argomento che ha un sacco di esempi in Lisp per la composizione. Vedi la directory degli esempi qui e una copia del testo qui .


5

Beh, non è quasi mainstream, ma uso lisp per tutto il mio codice di ricerca che è gestibile. È di gran lunga il miglior linguaggio che ho trovato per l'equilibrio tra dinamismo ed espressività, pur generando prestazioni decenti per i numeri, ecc.



5

Mi sono appena reso conto che Maxima , un programma per l'algebra simbolica, è scritto in Common Lisp. Lo uso da un po 'di tempo e penso che sia anche un ottimo esempio di vita reale.




3

Lisp ha tentato il salto alla velocità della luce nei primi anni '80. Prima che esistessero i PC, c'erano "Lisp Machines" prodotte commercialmente che assomigliano molto alle moderne stazioni di lavoro, ma che erano lisce "fino in fondo". L'hardware di Lisp alla fine perse con Intel (come tutto il resto). Il software Lisp alla fine ha perso in C / C ++. Esistono varie teorie sul perché tutto ciò sia così. http://www.andromeda.com/people/ddyer/lisp/


2

Il linguaggio di programmazione dello schema viene utilizzato come linguaggio di scripting da FLUENT Flow Modeling Software (fluidodinamica computazionale, CFD).



2

Vedo che alcune persone lo hanno già menzionato, ma lisp è ampiamente utilizzato nello sviluppo personalizzato di Autocad. Autocad include un interprete lisp incorporato. È uno dei modi più semplici per estendere il prodotto e offre la possibilità di migliorare rapidamente la produttività.

Non è richiesta la compilazione, sul lato utente e 1 o più, le espressioni line lisp possono essere immesse sulla riga di comando ed eseguite immediatamente sul disegno. Per i progettisti e i disegnatori disposti a fare anche un piccolo passo per apprendere le basi del lisp, può fornire un enorme vantaggio in termini di produttività.

Autocad offre numerosi altri modi per personalizzare i propri prodotti; ObjectARX (C ++), VB, C #, ecc. L'interfaccia lisp è di gran lunga la più facile da imparare e implementare. E la maggior parte degli altri ambienti di sviluppo usa lisp in qualche modo.

L'interprete lisp è stato reso disponibile in una versione molto antica di Autocad ed è stato chiamato Variabili ed espressioni. Era abbastanza limitato ma ebbe un tale successo con gli utenti che furono aggiunte rapidamente funzionalità aggiuntive. Un IDE visivo completo è stato in seguito (nella versione 2000 credo).

Odierei indovinare quanti milioni (miliardi?) Di righe di codice lisp sono disponibili per Autocad. Una ricerca su Google su "autocad .lsp" restituisce 2,3 milioni di hit.

Ok, digitando abbastanza, è tornato a funzionare per me, scrivendo più lisp per il mio progetto attuale :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.