Software

Test: sviluppo, è arrivata l’ora di Clojure

Redazione | 4 Agosto 2014

Software

Un linguaggio creato per la virtual machine di Java, con radici profonde nella tradizione del Lisp. Rich Hickey è un […]

Un linguaggio creato per la virtual machine di Java, con radici profonde nella tradizione del Lisp.

clojure 01Rich Hickey è un uomo che sa quello che vuole ed è un hacker con competenze sui linguaggi di sviluppo con pochi confronti. Hickey, infatti, di fronte a una lunga lista di critiche agli ambienti di produzione esistenti, ha scelto di girarla in positivo e adottarla come specifica per un nuovo linguaggio, realizzato da zero. La sua scelta ha dato i natali a Clojure.

Il nome viene da chiusura (closure), un termine familiare a chi ci ha seguito, su queste pagine, nei meandri di JavaScript e nelle notizie sull’evoluzione dei linguaggi più diffusi, da C++ a C#.

La storpiatura dell’ortografia, dà  una poco rassicurante assonanza con conjure (congiura), ma è servita per avere un nome con zero occorrenze su Google all’inizio del progetto. Con il senno di poi, alcuni pensano che la j venga da Java, mentre qualcuno si spinge anche a pensare alle prime lettere come un acronimo di Common Lisp on Java.

Clojure, infatti, è proprio questo: un Lisp che gira sulla Java Virtual Machine. In realtà , non è l’unico Lisp che può girare sulla Jvm (e sulla macchina virtuale Clr della piattaforma Microsoft) e non basterebbe solo questo a renderlo interessante. Il punto centrale è che Clojure è un linguaggio pensato per rendere più produttivo il lavoro di chi crea applicazioni web, senza perdere una virgola della qualità  e della robustezza dell’ambiente della Jvm.

Un punto di partenza del progetto, infatti, è che Clojure è il linguaggio e la Jvm, l’ambiente di programmazione.

Come di consueto con le piattaforme Lisp, lo sviluppo con Clojure è dinamico, ovvero non c’è necessità  di invocare il compilatore mentre si scrive il codice e si definiscono funzioni, un vantaggio non da poco, dato che i cicli di compilazione e test, semplicemente non esistono più.

Ma la dinamicità  non è l’unico dono di Clojure, ci sono anche due aspetti importanti del linguaggio a venire in aiuto della produttività . Il primo è che Clojure supporta un paradigma tipico dei linguaggi funzionali: strutture di dati immutabili. Il secondo è il supporto nativo per la concorrenza. Dobbiamo anche aggiungere una buona dose di scetticismo per la programmazione a oggetti e il supporto per il polimorfismo e abbiamo le caratteristiche principali del cocktail.

Perché una nuova architettura

Le motivazioni per la creazione di Clojure sono espresse con molta chiarezza alla pagina clojure.org/rationale. Leggendole, colpisce quanto sia difficile non condividere tutti i punti esposti.

In primis, quello che Hickey si era proposto di realizzare era un Lisp, con estensioni per la programmazione funzionale, con un alto grado di integrazione con una piattaforma software affermata.

➜ Continua a leggere: Clojure, un ambiente da conoscere

< Indietro Successivo >