Cos’è Solidity, il linguaggio per smart contract
La portata rivoluzionaria della blockchain è dovuta non solo alla capacità di questa tecnologia di “emettere” monete, come accade con le criptovalute.
La dirompenza della blockchain sta anche nella capacità di gestire i cosiddetti smart contract, contratti intelligenti che permettono di fare a meno di un’autorità centrale per garantirne il rispetto.
Solidity è il linguaggio di programmazione con cui si sviluppano i contratti intelligenti sulla blockchain di Ethereum.
In questa guida spiegheremo cos’è Solidity e perché questo linguaggio di programmazione è così importante.
Cos’è Solidity e come funziona
Prima di spiegare cos’è Solidity bisogna avere chiaro cos’è Ethereum e quali usi consente questa blockchain.
Ethereum non è solo la blockchain dove vengono emessi ETH. Grazie agli smart contract, Ethereum è una catena che si presta a diversi utilizzi.
Gli smart contract sono righe di codice che regolano una transazione come fosse un accordo tra parti senza il bisogno di un’autorità centrale.
Gli smart contract rendono le transazioni che regolano certificate, irreversibili e immutabili.
Fatta questa premessa, possiamo tornare sul linguaggio Solidity.
Nella documentazione ufficiale di Solidity ne viene data la seguente definizione:
Solidity è un linguaggio di alto livello orientato agli oggetti per l’implementazione di smart contract. I contratti intelligenti sono programmi che regolano il comportamento degli account all’interno dello stato di Ethereum.
Solidity è progettato per interagire con Ethereum Virtual Machine (un ambiente dove sviluppare smart contract su Ethereum).
Si ispira ad altri codici di programmazione quali:
- C++,
- Python,
- JavaScript.
Grazie a Solidity i developer di Ethereum possono sviluppare smart contract che regolano meccanismi di voto, crowdfunding, aste e wallet multi-firma.
Per iniziare a “scrivere” utlizzando Solidity, sono necessari i Solidity Compiler. Di questi, tra i più importanti figurano Remix, npm /Node JS, Docker e altri programmi concepiti per Linux e MacOS.
Come programmare con Solidity
Per iniziare a scrivere smart contract su Ethereum utilizzando Solidity bisogna innanzitutto conoscere un minimo di basi di linguaggio di programmazione.
Non è consigliabile iniziare a programmare utilizzando Solidity. Al contrario, chi conosce C++, Pythone Javascript noterà delle somiglianze e parte in un certo senso avvantaggiato.
È bene anche consultare la documentazione ufficiale, i solidity docs, dove viene spiegato passo per passo il funzionamento di Solidity. Ci sono anche diversi esempi e casi di uso.
L’editor più facile da utilizzare ed indicato per i principianti è Remix. È già configurato e pronto per l’uso nella sua versione per browser, dunque non bisogna installare nulla.
Permette di scrivere smart contract e di testarli.
I contratti si trovano in una sidebar sulla sinistra, mentre la schermata principale è dedicata al linguaggio di programmazione.
Nella sidebar vengono immesse le informazioni necessarie per lo smart contract.
Il deploy dello smart contract avviene tramite una vera e propria transazione sulla rete Ethereum. Richiede quindi anche del gas da pagare.
Tutorial per usare Solidity
Online sono presenti diverse guide e tutorial su Solidity.
Uno dei più interessanti è la serie Solidity for beginners di Dapp University su Youtube. Purtroppo tutti i video sono in lingua inglese, con possibilità di aggiungere sottotitoli.
Per chi cerca tutorial su Solidity in italiano, è possibile consultare la guida di Dario Pironi, blockchain e mobile app developer.
La sezione learn di Microsoft mette a disposizione un tutorial su Solidity implementato tramite Truffle.
Storia di Solidity
Solidity è un linguaggio di programmazione sviluppato da Gavin Wood, developer di Ethereum e poi inventore di Polkadot.
A contribuire al suo sviluppo ha pensato poi un team di developer guidato da Christian Reitwiessner.
Solidity è andato anche oltre Ethereum. Attualmente è anche usato da altre blockchain come Hyperledger Fabric.
Anche SWIFT, il colosso dei pagamenti transfrontalieri, ha utilizzato Solidity su Hyperledger.
Conclusioni
Solidity è un linguaggio di programmazione molto usato ma abbastanza nuovo.
Per questo viene aggiornato con cadenza mensile e ogni anno subisce almeno un aggiornamento molto importante.
Questo è il suo punto di forza ma anche il suo punto di debolezza: corsi e tutorial che troverai in rete rischiano sempre di diventare obsoleti in poco tempo.
Per questo per imparare ad utilizzare Solidity è raccomandata l’utilizzo dei Soloditi docs, cioè la documentazione ufficiale.
È anche opportuno seguire i canali ufficiali, dal blog a Github.
I più esperti possono prendere parte alle discussioni sul Solidity forum.
Il forum è anche un pratico canale dove poter risolvere dei dubbi, chiedendo direttamente alla community.
In conclusione, è chiaro che Solidity è un linguaggio molto potente e molto importante per Ethereum e il mondo blockchain in generale.
Tuttavia il suo uso è riservato agli sviluppatori e a chi ha conoscenze di programmazione.
FAQ
A cosa serve Solidity?
Solidity è un linguaggio per scrivere smart contract su Ethereum.
Cosa si può fare con Solidity?
Gli smart contract scritti con Solidity possono essere usati per regolare meccanismi di voto, fare crowdfunding, aste e wallet multi-firma.
Come creare uno smart contract con Solidity?
Ci sono vari Solidity compiler, tuttavia puoi imparare a programmare con Solidity utilizzando Remix.
Solidity è come Python?
Sono due linguaggi di programmazione diversi, sebbene nella documentazione ufficiale Solidity dichiari di essere influenzata da Python.
È difficile imparare a usare Solidity?
Chi è a digiuno di programmazione troverà difficile usare Solidity. Chi conosce linguaggi come C++, Phyton e JavaScript troverà molte somiglianze.