Clojure

Clojure è un moderno linguaggio di programmazione funzionale, un’implementazione moderna di Lisp (si può anche chiamarlo “dialetto” di Lisp), che gira sulla macchina virtuale Java. E’ stato uno dei primi a portare alla macchina virtuale Java la potenza della programmazione funzionale, strutture dati persistenti e metaprogrammazione al livello delle grandi imprese.

Clojure, per poter lavorare sulla macchina virtuale Java, genera byecode Java. L’implicazione di questo sta nel fatto che Clojure può collaborare facilmente con i programmi Java e viceversa. Inoltre, tutti i linguaggi di programmazione basati sulla macchina virtuale Java, possono facilmente collaborare con Clojure.

Tra i punti più forti di Clojure ci sono la sua gestione della concorrenza e del parallelismo, le sue strutture dati e la metaprogrammazione.

Clojure implementa meccanismi per la gestione dei thread molto avanzati. L’immutabilità intrinseca dei dati singoli e delle strutture dati facilitano molto il lavoro negli ambienti altamente parallelizzati e distribuiti e aiutano a prevenire gli errori. Clojure lascia comunque la libertà di eseguire anche delle esplicite mutazioni, in ambiente controllato, nel caso ce ne fosse bisogno. Questo viene fatto all’interno delle transazioni, e non sono necessarie sincronizzazioni, tipiche di Java.

Le strutture dati di Clojure sono persistenti e immutabili. Dove gli altri linguaggi usano le mutazioni, Clojure crea nuove strutture dati, condividendone i dati con quelle esistenti in modo estremamente efficace. Questo aiuta a prevenire le eventuali incosistenze dei dati mutabili negli ambienti multithread. Clojure, essendo basato sulla macchina viruale Java, lascia la libertà di usare anche le tipiche strutture dati di Java, anche quelle mutabili.

Essendo fondamentalmente un Lisp, Clojure segue la tradizione di Lisp di omoiconicità e di metaprogrammazione. Il codice Clojure ha la stessa forma delle strutture dati, ed è quello delle liste. Possiamo creare una lista e poi eseguirla. L’implicazione di questo sta nel fatto che possiamo creare programmi che sviluppano se stessi. Clojure, come gli altri Lisp, è molto adatto per programmare intelligenze artificiali.

Clojure, di conseguenza, è un linguaggio da implementare nella propria azienda, e i nostri corsi ve lo permetereanno.

Se avete bisogno di un Lisp che non necessiti della macchina virtuale Java, vi suggeriamo di valutare anche il nostro corso di Common Lisp, di Racket, di Scheme o di PicoLisp.