Per sviluppare dApp, giochi token o qualsiasi progetto sulla blockchain serve un linguaggio di programmazione. Per quanto riguarda la più importante ed utilizzata delle blockchain, Ethereum, Solidity è il linguaggio principale utilizzato per la programmazione di Smart Contract su Ethereum.
Summary
Le limitazioni del linguaggio di programmazione di Ethereum: Solidity
A differenza dei linguaggi più popolari come java, Solidity ha delle limitazioni date dalla blockchain. Non è possibile memorizzare grandi quantità di dati nelle variabili. Anche il calcolo è limitato dall’utilizzo del gas. Si tratta di un linguaggio progettato appositamente per sfruttare Ethereum Virtual Machine, la cui funzione è quella di consentire l’esecuzione di programmi o smart contract.
È stato creato dai programmatori di Ethereum con la finalità di poter dare vita a contratti intelligenti, che permettono lo sviluppo di ogni transazione sulla blockchain e generano una catena di record di transazione nel sistema blockchain. Come altri linguaggi di programmazione, anche la programmazione Solidity ha variabili, funzioni, classi, operazioni aritmetiche, manipolazione di stringhe e molti altri concetti.
Grazie a questo programma, che è il più versatile ed utilizzato dagli utenti, Ethereum è ancora la blockchain favorita dalla maggior parte degli sviluppatori, malgrado i suoi costi di transazione siano ancora molto alti. Sono molto meno usati altri linguaggi di programmazione come Viper, LLL, Mutan Serpent e Semplicity.
Oltre ad essere quello più utilizzato in assoluto e anche l’unico ad essere supportato ufficialmente. La motivazione di sviluppare un linguaggio ad-hoc è data dal fatto che e’ stato studiato proprio per essere impiegato all’interno degli smart-contract.
Un contratto nel linguaggio di Solidity sarebbe come una sorta di unione di un codice (le funzioni) e dati (il suo stato) che si trovano in uno specifico indirizzo sulla blockchain di Ethereum. Ogni contratto contiene dichiarazioni di variabili di stato, funzioni, modificatori di funzioni, strutture dati ed eventi.
I vantaggi del linguaggio di Solidity
Uno dei vantaggi riconosciuti a questo particolare linguaggio informatico è che il codice sorgente dei programmi realizzati con esso è accessibile pubblicamente dalla stessa blockchain di Ethereum. Pur essendo in bytecode, è possibile decompilarlo e ottenere un campione abbastanza chiaro del codice sorgente originale.
Questo linguaggio fornisce anche una serie di library molto utili che facilitano la programmazione dei contratti intelligenti, rendendo il codice riutilizzabile e più facile da mantenere.
Inoltre, il programma Solidity e la EVM di Ethereum sono definiti Turing complete, ovvero che può essere utilizzato per simulare qualsiasi macchina di Turing (ideata dal matematico e informatico inglese Alan Turing). Ciò significa che questo linguaggio è in grado di riconoscere o decidere altri set di regole di manipolazione dei dati.