Ho letto molte discussioni sui linguaggi di programmazione funzionale ultimamente (quasi l'anno scorso, infatti). Mi piacerebbe davvero sceglierne uno e impararlo a fondo.
Ultimo semestre [corso], sono stato presentato a Scheme. Lo amavo. È piaciuta l'estrema semplicità della sintassi, il principio omoiconicity , i macro ( igienico e non igienico), la nazionalità delle procedure, ecc.
Il problema con Scheme è che si tratta di una lingua accademica. Non penso sia realmente usato negli ambienti di produzione. Non credo neanche che sia particolarmente bello avere sul nostro curriculum. Quindi, ho cercato alternative. Ce ne sono molti e in qualche modo sembrano tutti avere un livello di popolarità simile.
Alcune riflessioni su altri linguaggi funzionali che ho preso in considerazione:
- Clojure: Sembra fantastico perché può accedere al mondo Java, è orientato alla scalabilità e alla concorrenza, ma non è il mondo Java su un bordo in questo momento? Conosco già bene Java, ma sarebbe saggio aggiungere ancora più energia a seconda della JVM?
- Haskell: sembra un linguaggio molto apprezzato, ma da quello che ho letto, è anche più di un linguaggio accademico.
- Lisp: è in circolazione da sempre. Sembra avere la maggior parte di quello che mi piace da Scheme. Ha una grande comunità. Per quello che so [credo], è probabilmente il linguaggio di programmazione funzionale più utilizzato nell'industria (?).
- F #: non l'ha davvero preso in considerazione. Non sono un grande fan delle cose di MS. Non ho i soldi per pagare i loro software (potrei averli liberi dalle alleanze universitarie, ma sono più incline ad andare con le soluzioni guidate dalla comunità). Però ... Immagino che sarebbe la scelta migliore per la mia carriera.
Stanotte, mi sto appoggiando a Lisp. Una settimana fa, era Haskell. Prima era Clojure. L'anno scorso stavo facendo un po 'di Scheme per divertimento, non spingendolo per il motivo che sai. Ora vorrei prendere sul serio (sull'apprendimento di uno, sul fare progetti reali con esso, magari lavorando professionalmente con esso). Il mio problema è che avrei bisogno di impararli tutti in profondità prima di poterne scegliere uno.