Perché Lisp non è più diffuso? [chiuso]


50

Sto iniziando a imparare Scheme dai video SICP e vorrei passare al Common Lisp successivo.

La lingua sembra molto interessante e la maggior parte delle persone che scrivono libri su di essa sostengono che abbia un potere espressivo senza pari. CL sembra avere una libreria standard decente.

Perché Lisp non è più diffuso? Se è davvero così potente, le persone dovrebbero usarlo dappertutto, ma invece è quasi impossibile trovare, ad esempio, annunci di lavoro Lisp.

Spero non sia solo la parentesi, in quanto dopo poco non sono un grosso problema.



5
Steel Bank (comune) LISP è in realtà più popolare di quanto si possa immaginare. Anche i processori macro come LISP (ad esempio M4) sono ampiamente utilizzati. Potresti non vederlo nel tuo dominio preferito, ma è ancora là fuori (nel bene o nel male).
Tim Post

8
Il recente terremoto e lo tsunami hanno spazzato via la fabbrica di parentesi in Giappone. :-(
oosterwal

1
Quale versione di Lisp dovremmo usare? Ricorda che i dialetti Lisp sono più o meno incompatibili.

2
LISP (o dialetti di) sono usati ovunque, ad es. AutoLISP è un dialetto di LISP utilizzato da Autocad en.wikipedia.org/wiki/AutoLISP o EMACS en.wikipedia.org/wiki/Emacs_Lisp
Jaydee,

Risposte:


68

L'espressività non è sempre un tratto linguistico positivo in un ambiente aziendale. Java è estremamente popolare in parte perché è facile da imparare, facile da scrivere e facile da leggere. I programmatori mediocri possono ancora essere molto produttivi in ​​Java, anche se il loro codice è prolisso e inelegante.

Inoltre, è facile abusare di linguaggi espressivi. Un esperto programmatore Java può refactificare rapidamente il codice scritto male. Più la lingua è espressiva, più difficile diventa la comprensione e il refactoring del codice orribile. Le macro LISP sono un buon esempio. Le macro sono strumenti potenti nelle mani giuste. Nelle mani sbagliate, possono risultare in codice confuso e difficile da eseguire il debug.

LISP è una scelta rischiosa per il senior management. Se le cose vanno male, nessuno incolperà la gestione per aver scelto un linguaggio popolare orientato agli oggetti supportato da una grande azienda come Oracle o Microsoft. È molto più facile assumere programmatori con esperienza in lingue popolari e facili da imparare.

Anche le aziende progressiste che desiderano usare un linguaggio più potente di solito non scelgono LISP. Questo perché molte delle lingue più recenti cercano di scendere a compromessi prendendo in prestito potenti funzionalità da LISP, restando facili da imparare per le masse. Scala e Ruby seguono questo modello. I cattivi programmatori possono prenderli rapidamente e continuare a scrivere lo stesso codice mediocre che hanno fatto in Java. I bravi programmatori possono sfruttare le funzionalità più avanzate per scrivere codice stupendo.

Le parentesi non sono il problema. Haskell è un linguaggio incredibilmente potente ed espressivo con una sintassi simile a Python o Ruby e non è stato ampiamente adottato per molte delle stesse ragioni di LISP.

Nonostante tutto, spero ...

Clojure ha la possibilità di diventare popolare. Funziona su JVM, ha un'ottima interoperabilità con Java e semplifica la programmazione simultanea. Queste sono tutte cose importanti per molte aziende.

* Questa è la mia prospettiva di programmatore JVM professionista con esperienza in Java, Clojure, JRuby e Scala.


24
L'obiezione sulla difficoltà di trovare programmatori qualificati è un po 'di un cane che insegue la coda. Se Lisp fosse più diffuso, sarebbe più facile trovare buoni programmatori.
Andrea

2
@Andrea È assolutamente vero. Tuttavia, è più difficile imparare lisp, il che contribuisce anche al problema. Mi rendo conto che potrebbe essere un'opinione controversa, poiché molti professori insegnano lo schema come prima lingua.
dbyrne,

8
Sì, APL è un eccellente esempio di linguaggio espressivo. Inoltre, un buon esempio del perché l'espressività non è la cosa più importante;)
dbyrne,

9
Non penso che questa definizione trasmetta effettivamente ciò che significa espressivo. Personalmente, prima di chiamare un linguaggio espressivo, mi assicurerei di essere in grado di leggere ciò che ho scritto. Ad esempio, l'uso della logica non banale nell'inizializzatore di loop in C può salvare alcune righe di codice, ma non è facilmente comprensibile. D'altra parte una comprensione dell'elenco in Python può salvare un paio di righe ed essere più leggibile. Quindi hai effettivamente trovato il modo di esprimere ciò che intendevi in ​​modo più conciso. Se non è leggibile, non hai trovato il modo di esprimere nulla.
Andrea

3
Penso che forse sto venendo fuori come qualcuno a cui non piace il lisp. In verità, lo adoro. Clojure è un linguaggio incredibile. Penso che sia una scelta molto praticabile da utilizzare per un certo tipo di azienda. Sto solo sottolineando che ci sono molte aziende in cui non avrebbe senso, e usare qualcosa come Scala è una scelta molto più pratica.
dbyrne,

17

Perché Lisp non è più diffuso? Se è davvero così potente, le persone dovrebbero usarlo ovunque,

Se ritieni che le lingue siano state scelte per i loro meriti tecnici, ti aspetta una delusione straziante.

Tali decisioni vengono prese sulla base di Strippers And Steaks . Microsoft può permetterseli. Oracle può. Sun ha speso così tanti soldi per ipnotizzare Java che sono falliti. Due volte. Una comunità di volontari decentralizzata, eterogenea, non può competere con questo.

ma invece è quasi impossibile trovare, ad esempio, annunci di lavoro Lisp.

Stranamente, le società Lisp dicono esattamente il contrario: hanno costantemente opportunità di lavoro ma non riescono a trovare abbastanza persone per riempirle. (Lo stesso vale per Haskell, ML, O'Caml, Forth, Smalltalk, ...)


3
Dove vivo (Italia) dubito che esista una sola compagnia Lisp ...
Andrea

1
Quali grandi aziende stanno spingendo Ruby, Python e JavaScript? JS è certamente un caso speciale, ma gli altri due sembrano molto popolari senza il massiccio sostegno di aziende / venditori
Ben Hughes,

Sì, è vero anche per altre lingue. La maggior parte dei bravi programmatori COBOL hanno già dei lavori e non leggono comunque gli annunci. Perché preoccuparsi della pubblicità?
Bo Persson,

Cosa veramente? Codificherò in qualsiasi lingua che non sia mainstream, anche se Haskell suona molto sopra la mia testa. La piccola quantità di codice che ho inserito è estremamente bella, ma senza un buon mentore non ho idea di quando usare ogni Monade e i Funzionari Applicativi.
aoeu256,

9

Non ho esperienza di lavoro in un'azienda reale, ma so perché LISP è stato difficile da usare per me.

Prima di tutto, questo mi ricorda questo post sul blog: http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html

Il problema principale che ho con Lisp è la domanda "che Lisp". Di solito lavoro su Linux come piattaforma principale, ma le cose che faccio devono essere compatibili con Windows. Ciò significa che quando sto valutando una tecnologia da utilizzare, deve semplificarmi la vita quando lavoro su due sistemi operativi radicalmente diversi. Non mi piace questo requisito, ma usarlo su un vero progetto è un requisito. Ora userò lingue che non hanno un ottimo supporto su Windows per i miei progetti secondari personali, ma poiché non ho mai la possibilità di scrivere un grande progetto software in loro, non ho l'esperienza necessaria.

Ora, quando stavo cercando di imparare un linguaggio funzionale, volevo davvero imparare Common Lisp. Sembrava la cosa giusta da fare. Ho iniziato a leggere Practical Common Lisp come punto di partenza poiché non conoscevo le funzioni integrate e avevo bisogno di un progetto su cui lavorare in Lisp. Le espressioni S erano belle e facili. Tutte quelle parentesi sono state incredibilmente belle per me, dato che era chiaro esattamente cosa stava succedendo nel codice.

Quindi provo a scrivere il mio primo programma in Lisp al di fuori del libro. Volevo uno strumento da riga di comando che contasse le righe di codice e rimuovesse le righe banali dal conteggio del codice. Non lo strumento più utile, ma divertente da fare. Implica l'accesso ai file, un po 'di analisi e il conteggio. Avevo implementato lo stesso strumento in Python circa una settimana prima.

Devo accedere agli argomenti della riga di comando. Quindi ho imparato che non esiste un modo standard per ottenere argomenti da riga di comando. Sono tutte caratteristiche non standard. Non è affatto multipiattaforma. Per lo più peggiora da lì in quanto il linguaggio non ha molte librerie integrate. Ho finito per passare a Haskell e non sono andato molto lontano in Common Lisp (quindi le mie lamentele potrebbero non essere nemmeno valide).

Questo tipo di cose non standard è sempre stato un dolore per me in passato. Il C ++ ha lo stesso problema, ma con librerie come Boost puoi ovviare a questi punti deboli.

Inoltre, non aiuta che la sintassi di Lisp per tutto tranne che per le espressioni S sia un po 'brutta.


1
La racchetta PLT (precedentemente PLT Scheme) funziona bene su Linux e Windows.
Larry Coleman,

Interessante, mi aspetto che Common Lisp sia molto più standard e utilizzabile per applicazioni reali rispetto a Scheme. (Sto leggendo Practical Common Lisp in questo momento.)
Giorgio

Ti lodo per aver scelto Haskell (che secondo me è una lingua migliore), ma Clojure? Funziona su JVM, quindi dovrebbe essere portatile e avere accesso a tutte le librerie di cui hai bisogno.
Andres F.

Gli argomenti della riga di comando sono difficili da usare in C ++? Veramente?
Nick Keighley

Non è banale costruire un cross-complier che cambi Lisp in Scheme in Clojure? Perché le persone non li usano?
aoeu256,

8

IMO, è principalmente dovuto a:

  • Supporto per librerie scadente. Certo, c'è Quicklisp ora, che semplifica l'installazione delle librerie, ma non compensa il fatto che siano ancora abbastanza poche, e parecchie sono scarsamente documentate o non molto ben tenute. Rispetto a Python, ci sono buone probabilità che scrivere un'applicazione Lisp non banale (indipendentemente dal dialetto particolare) probabilmente implicherà comunque il reinventare almeno parte di una o due ruote.
  • Mancanza di familiarità con il modello adottato dagli strumenti di sviluppo. La maggior parte delle persone che conosco sono piuttosto intimidite dal dover usare SLIME ed Emacs, il che è comprensibile per le persone abituate a Eclipse e Visual Studio. Ci sono due plugin di Eclipse, penso, ne ho provato uno solo pochi anni fa ed è stato piuttosto difettoso. L'intero ecosistema di Lisp sembra essere bloccato a metà strada tra i giorni in cui faceva parte di un sistema in esecuzione Lisp a tutti gli effetti e il moderno standard di oh-è-un'altra lingua. L'apprendimento di Lisp non si limita all'apprendimento di una nuova lingua: devi anche imparare un modo completamente diverso di lavorare e pensare, e mentre questo va bene se lo fai come hobby, è discutibile se valga la pena farlo in un attività commerciale.

Le cose stanno iniziando a sembrare leggermente migliori, specialmente con Clojure.


1
"La maggior parte delle persone che conosco sono abbastanza intimorite dal dover usare SLIME ed Emacs, il che è comprensibile per le persone abituate a Eclipse e Visual Studio.": Ancora e ancora ho la sensazione che Lisp sia per l'élite.
Giorgio,

2
"Devi anche imparare un modo completamente diverso di lavorare e pensare, e mentre questo va bene se lo fai come hobby, è discutibile se valga la pena farlo in un'azienda". motivo abbastanza buono?
Giorgio,

Questa "maggiore produttività" è stata dimostrata? Certamente non è chiaro per me (sì, ho programmato in un dialetto Lisp). Non ci sono proiettili d'argento.
Nick Keighley,

5

Ho imparato LISP un miliardo di anni fa al college.

LISP, come FORTH, è ottimo per la logica. Ma la maggior parte della programmazione non riguarda la logica, si tratta di manipolare i dati in modi meccanici noiosi. Ad esempio, al momento non esiste un modo per giustificare a destra l'output numerico.

LISP riguarda la funzionalità nidificata e le persone semplicemente non la pensano in questo modo. Pensano in termini di DO A, B, C, D, quindi E. Non fare A, che implica fare B e C, quindi D ed E. Questo comporta un tipo di concorrenza che è confusa. Ad eccezione di attività predefinite come "presentare una dichiarazione dei redditi", le persone non pensano contemporaneamente, ma pensano in sequenza. Ecco perché oggi le lingue procedurali sono dominanti.

Di conseguenza, il codice del prodotto come Java e C può essere tradotto facilmente in inglese. Il codice LISP non può; nessun linguaggio umano è strutturato in questo modo.

Quindi è ottimo per la risoluzione dei problemi, ma la risoluzione dei problemi non è molto importante nella programmazione. Immissione dei dati, validazione, formattazione dell'output, in cui LISP era terribilmente debole.


7
La risoluzione dei problemi è tutto ciò che facciamo. Manipolare i dati non è facile in Java o C. Manipolare i dati nelle celle contro è molto più semplice in Lisp e in altri linguaggi funzionali. La maggior parte delle operazioni sui dati sono esattamente le stesse e non importa in quale ordine le elaborate. Queste sono facilmente eseguibili con una chiamata per mappare e un puntatore a funzione. Direi anche che è più facile pensare alla funzionalità nidificata che alla funzionalità procedurale (poiché uno dettaglia il tuo obiettivo e gli altri dettagli su come raggiungere tale obiettivo), ma non ne ho prove. Ad ogni modo, non direi che questo è il motivo per cui LISP non viene utilizzato.
jsternberg,

4
La programmazione non riguarda la risoluzione dei problemi? Io non la penso così. E comunque non penso che tu possa imparare una lingua al college.
Adam Arold,

+1, sembra molto plausibile per me che non conosco nessun Lisp. Direi lo stesso motivo per cui C / Java è migliore di Python per soluzioni di dimensioni aziendali.
Jonas Byström l'

Questa è l'unica risposta finora che ha sollevato l'enorme argomento di funzionale vs procedurale, ma non dimentichiamo che il pensiero procedurale tende a piacere armeggiare con globi di dati in vari punti ovunque tu possa toccare da molti luoghi e thread creando problemi di sincronizzazione. Funzionale non soffre così rapidamente da questo, funzionale ben scritto non soffre affatto.
maxpolk,

1
Una volta un programmatore mi ha chiesto quale fosse il modo migliore per esprimere un ciclo for usando un diagramma del flusso di dati. Per tali persone non ha senso utilizzare linguaggi non procedurali. Il pensiero in FORTRAN.
Nick Keighley,

5

Penso che un problema con Lisp non ancora menzionato sia che per un programmatore mediocre o alle prime armi (come me, lo ammetto liberamente), può essere difficile vedere come si trasforma il codice Lisp in un grande programma. È facile da scrivere ma difficile da progettare. Non credo che nessuno dei concetti sia particolarmente difficile, ma la mentalità fai-da-te è così forte che spesso mi sento in perdita da dove cominciare.

Con un linguaggio OOP come Java o C #, puoi usare il sistema dei tipi per spingerti verso un modello funzionante e costruirlo. Con Lisp (o Lua, o Javascript, per quella materia) c'è questa idea che puoi uscire e farlo come vuoi. Se vuoi OOP, crea il tuo sistema OOP! Tranne creare il tuo OOP o imparare qualcun altro, è una nuova barriera in cima alla lingua prima di ottenere programmi utilizzabili. Inoltre mi sento sempre come se l'OOP in Lisp o Lua non fosse davvero lì, come se potessi davvero ignorarlo, se lo volessi davvero, quindi che senso ha?

In breve, penso che la programmazione in Lisp richieda molta disciplina, ed è molto difficile da trovare. Le lingue fortemente tipizzate e le lingue OOP offrono entrambe una sorta di disciplina integrata, quindi il programmatore può concentrare le proprie riserve limitate sul completamento dei progetti invece di modificare la lingua.

EDIT: Come un'analogia che mi ha appena colpito, è come se avessi bisogno di fare un po 'di lavoro in legno e due persone ti offrano le loro cassette degli attrezzi. Gli strumenti di una persona sono piuttosto scadenti, ma sostanzialmente farebbero il lavoro con un po 'di sforzo. L'altra persona ha una grande quantità di pezzi, ma è promettente che puoi combinarli per creare i migliori strumenti che tu abbia mai usato, perfettamente adatti alla tua presa e della migliore qualità. Devi solo costruirli prima.


2
Common Lisp, almeno, è esplicitamente un linguaggio OO: il Common Lisp Object System fa parte dello standard.
Frank Shearar,

È vero, e a quanto ho capito è molto potente, ma mi viene in mente come una caratteristica del linguaggio. Non è come Java dove devi capire gli oggetti dal primo giorno. Pratico Common Lisp non tocca CLOS fino al capitolo 16. Potrei anche essere solo parziale nei confronti della tipizzazione statica, anche se non mi piacciono i linguaggi tipizzati dinamicamente .
CodexArcanum,

Lisp ti permette di usare chiusure (let-over-lambda) invece di oggetti per OOP leggero, ma credo che sia facile aggiornarlo per usare OOP tramite CLOS.
aoeu256,

2

Mi chiedo lo stesso da molto tempo e sono persino andato alle conferenze di Lisp per cercare di capire cos'è questo "lato oscuro" di Lisp che impedisce a tutti di adottarlo.

Non ho trovato una risposta decente completa.

L'ignoranza può essere la ragione della popolarità mancante, ma ciò che mi confonde di più è che anche chi sicuramente conosce Lisp (ad esempio Google - Peter Norvig lavora per loro) non lo sta usando.

L'unica spiegazione parziale che mi viene in mente è che la maggior parte delle grandi idee di Lisp sono ormai all'ordine del giorno, l'unica che manca davvero importante (una IMO estremamente importante) è la facilità di metaprogrammazione.

Sfortunatamente non vedo un modo semplice di assorbire questo concetto per altre lingue perché la metaprogrammazione per essere carina richiede un linguaggio omoiconico e regolare (sto parlando di metaprogrammazione generale, non della versione solo stupida del modello). In altre parole, richiede fondamentalmente l'approccio Lisp alla sintassi: il codice è dato e i dati sono codice. Scrivere codice in un linguaggio ricco di sintassi che manipola un AST è più difficile perché è necessario conoscere due lingue: come scrivere il codice e come scrivere l'AST. Ciò è particolarmente difficile se il tuo AST è fisso e anche complesso e irregolare con molti tipi di nodi diversi. Lisp invece ha un AST ragionevolmente regolare (ed estensibile!) E già normalmente codice scrivendo direttamente l'AST.

La metaprogrammazione è anche intrinsecamente più difficile (e la meta-metaprogrammazione ancora di più e così via) e la maggior parte dei programmatori e manager apparentemente preferisce semplicemente la risposta "nessuno avrebbe bisogno di quella".

Trovo particolarmente triste il fatto che "nuovi" linguaggi come goquello abbiano finito per usare la metaprogrammazione testuale quando è necessario (generatori di codice esterni che scrivono file di testo) e "magia" (cioè il compilatore può fare ciò che i programmatori non possono fare).

Penso che la soluzione al problema della complessità siano strumenti ed educazione potenti. La tendenza è apparentemente invece strumenti smussati e fingendo che il problema non sia presente.


+1 per "Penso che la soluzione al problema della complessità siano strumenti ed educazione potenti".
Giorgio,

dopo 50 anni la scusa dell '"ignoranza" si sta esaurendo
Nick Keighley il

1
@NickKeighley: dipende. Anche oggi la maggior parte dei programmatori in realtà non sa nulla di Lisp (ad esempio la maggior parte delle volte senti Lisp descritto come un linguaggio funzionale). Anche tra coloro che "conoscono" Lisp quasi nessuno ha mai visto l'idea macro con sufficienti dettagli (non sto parlando della versione ridotta dello schema, ma del pieno potere algoritmico con la comodità di quasi citare quando si adatta meglio).
6502

@ 6502: pur non essendo puramente funzionale, IMO Lisp supporta la programmazione funzionale molto meglio di molti linguaggi tradizionali come C #, Java, C ++ e così via. Per molti programmatori, FP significa di tanto in tanto usare un'espressione lambda: questi programmatori non mancheranno Lisp o Clojure o Haskell. Quindi aggiungerei: (1) Lisp supporta abbastanza bene FP e ne trarrebbero vantaggio i programmatori funzionali, ma (2) l'ignoranza su FP e i suoi benefici è uno dei motivi per cui Lisp non viene usato più spesso.
Giorgio,

1
@ 6502: Avere elenchi come struttura di dati di base e le solite funzioni di alto ordine negli elenchi è anche una caratteristica che manca in Javascript. E, per quanto posso ricordare, Javascript ha anche la dichiarazione / espressione di dualità. Definirei sicuramente Lisp (Common Lisp) qualche passo più avanti nella direzione di FP rispetto a Javascript o Python. Con questo non intendo dire che Common Lisp sia un linguaggio puramente funzionale, concordo sul fatto che sia multi-paradigma, ma supporta FP molto meglio di altri linguaggi multi-paradigma.
Giorgio,

1

Sembra che anche CL non abbia un ottimo supporto per le librerie. Almeno secondo le persone che sono passate da Lisp a Python:

http://www.redmountainsw.com/wordpress/archives/reddit-switches-from-lisp-to-python

Personalmente, conosco qualche Schema e mi diverto a giocarci, ma non riesco a immaginare di fare un progetto non banale in quella lingua.


2
Questo non è più vero. Quicklisp ha risolto il problema.

2
Vale anche la pena ricordare che con CFFI, qualsiasi libreria C può essere utilizzata da Common Lisp. CFFI è ben documentato e funziona bene. D'altra parte, se passare qualche ora a scrivere wrapper per le funzioni C ha un impatto notevole sul progetto, probabilmente Lisp non è la scelta giusta per questo.
Larry Coleman,

Ho fatto un progetto non banale in Scheme e conosco un'azienda che utilizza Scheme (Chicken Scheme) per diversi prodotti.
Giorgio,

1

Essere potenti non implica necessariamente un uso diffuso. Hai mai sentito parlare del termine "Ottimizza per il caso comune"? Sfortunatamente, come molti hanno detto prima della mediocrità, se assicurato costantemente è molto meglio per le persone rispetto ai grandi successi con molti fallimenti tra di loro.

Questo non è solo il caso di lisp, ma con molte tecnologie. Un buon tocco sugli strumenti di elaborazione del testo Unix, awk, sed, perl può farti risparmiare giorni di programmazione. Sfortunatamente ho visto persone impiegare giorni a svolgere questo tipo di attività con altri strumenti, cosa che avrebbe potuto fare con questi strumenti in modo più efficiente in pochi minuti. Ma se si trascorre tutta la vita in eclissi, non verrà mai ad apprezzare il valore di queste cose. Puoi scrivere un programma enorme con leggibilità e manutenibilità e tutto il resto, ma qual è il punto centrale di scrivere un programma del genere senza scriverlo, avrebbe potuto facilmente fare il lavoro.

Un altro aspetto durante la progettazione di strumenti in questi giorni quanto sono utili pronti all'uso per usarli direttamente per risolvere un problema. Non puoi costruire qualcosa di troppo generico e poi dire che lo coprirai attraverso librerie e framework. È un po 'difficile risolvere le cose in questo modo. Un buon strumento si adatta bene all'ambiente e ai problemi che lo circondano. Ecco perché strumenti come php, perl e awk continuano a rimanere rilevanti nonostante trolling e bashing infiniti, perché sono troppo utili per buttarli via e spesso fanno molto lavoro di un linguaggio generale con molte librerie e framework imbullonati.

Allo stesso modo vedrai che lingue come Java / Python sono molto buone e direi meglio per certe attività. Python in particolare è molto buono e facile da imparare e scrivere. Anche queste lingue funzionano davvero bene se gli endpoint dei dati sono standard. Una sorta di database o XML o dati di quel tipo. Dati sostanzialmente strutturati.

Lisp sarà lì a lungo, ma non necessariamente molto diffuso. Come vedrai, ogni strumento ha la sua nicchia. E risolvono alcuni problemi molto bene fuori dalla scatola. Penso e sono sicuro che lisp stia andando bene in aree e problemi per i quali è progettato per risolversi bene.


+1 per aver citato il principio "Ottimizza per il caso comune".
Giorgio,

Sì, ma le chiusure di LISP sono un'ottimizzazione per il caso comune di Oggetti. Inoltre mi chiedevo se qualcuno apporta modifiche alla propria base di codice LISP trattandola come un albero ed eseguendo query su di esso come JQuery per HTML.
aoeu256,

1

Per lo sviluppo web con i dialetti di Lisp, può esserci un po 'di problema a base di gallina e uovo - poiché poche persone usano Lisp, gli host o non lo consentono o non lo rendono facile, e poiché non è facile, poche persone usalo. Ma in realtà, far funzionare Lisp su un host può essere più semplice di quanto si possa pensare, anche se richiede un po 'più di lavoro rispetto al loro servizio PHP predefinito. Recentemente ho avuto l'astuzia Scheme apps lavorare qui con solo un piccolo sforzo.


0

IMO, è soprattutto una questione di scadenze scadenti: Lisp era vecchio (e quasi per definizione non più eccitante) molto prima che diventasse pratico per la maggior parte delle persone o degli usi. Clojure (per un esempio) ha molte più possibilità. Il suo successo dipenderà molto di più dall'essere percepito come nuovo, alla moda e alla moda di qualsiasi cosa pratica come l'interoperabilità con Java (e tutto il resto che gira su JVM).

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.