Introduzione
Nim è, senza giri di parole, uno dei
linguaggi più interessanti in assoluto, non solo tra gli "ultimi
arrivi". Linguaggio moderno, espressivo, ricco di
caratteristiche che ne fanno uno strumento che davvero è
difficile ignorare. Si tratta di un linguaggio general
purpose ma con una forte impronta verso la
programmazione di sistema, tanto che è spesso messo a
confronto con il C/C++, il D, Rust e Go. I confronti si sprecano
sul Web. Il punto debole, lo diciamo subito a scanso di
equivoci, sta nel fatto che dietro di esso non c'è una grossa
realtà che ne spinga e ne sostenga lo sviluppo e la diffusione.
Il "padre" di questo linguaggio è il tedesco Andreas Rumpf che
ha raccolto intorno al linguaggio una piccola ma produttiva
comunità. Va peraltro detto che. nonostante manchi il "pezzo da
90" a sostegno, Nim si è già fatto conoscere e la sua notorietà
sembra essere maggiore di quanto ci si potrebbe aspettare. Non è
difficile trovare sul Web articoli che ne parlino in modo spesso
entusiastico è sufficiente una breve ricerca in questo senso. Di
qui un certo ottimismo per le sue prospettive trattandosi
comunque di uno strumento davvero dotato di molte funzionalità
moderne e di una sintassi, a mio avviso, gradevole.
Solitamente a questo punto presento le caratteristiche più
salienti del linguaggio ma l'autore si è premunito proponendo
lui stesso una pagina che, succintamente ma in maniera molto
puntuale, presenta il suo prodotto. La trovate
qui e vi consiglio
di leggerla perchè è realmente ricco di spunti e fornisce un buon
approccio al linguaggio.
L'introduzione a questo punto, ovvero dopo la lettura della
pagina su indicata sarebbe già bella e terminata. Del principale
punto debole abbiamo già detto, le critiche, come potrete
constatare, sono abbstanza circoscritte.
Aggiungo che, sempre sul sito di riferimento, potrete trovare
moltissima documentazione praticamente su ogni aspetto del
linguaggio, forse ancora un po' da sistemare per quanto riguarda
la facilità di fruizione dei contenuti e consiglio di visitare
anche la relativa sezione di
RosettaCode
già molto ricca di esempi.
Non ci resta che iniziare.