Solidity, è il linguaggio di programmazione che ha iniziato a rendere possibili le DApp di Ethereum, consentendo agli sviluppatori un modo semplice per realizzare complesse applicazioni distribuite che sfruttano appieno l'Ethereum EVM.

El nome di Solidity si riferisce a un linguaggio di digitazione statico di alto livello con cui possono essere programmati smart contract per la rete Ethereum. La sua sintassi è molto simile a quella dei lengaujes ben noti come C + + o Javascript. Solidity nasce con lo scopo di consentire la stesura di smart contract in modo semplice per il network Ethereum. È un linguaggio progettato per ottenere il massimo da Ethereum Virtual Machine, consentendo la creazione e lo sviluppo di contratti intelligenti che possono essere eseguiti in modo ottimale nell'EVM.

Per questo, il programmatore può sviluppare le sue applicazioni in un linguaggio facile da usare, leggere e mantenere in modo che, una volta terminato, il motore Solidity converta quel semplice codice in codice macchina che l'EVM capirà, codice macchina che è praticamente impossibile da capire da un persona.

In sostanza, Solidity facilita lo sviluppo di smart contract su Ethereum e, sebbene non sia l'unico linguaggio, è stato il primo, il più versatile e su cui sono stati sviluppati più smart contract.

Solidità Logo

Solidità, un linguaggio completo di Turing

La caratteristica principale di Solidity è che questo linguaggio di programmazione è di tipo Turing Completare. Grazie a Solidity e al suo rapporto con EVM, gli sviluppatori possono realizzare programmi che sono Turing Complete. Questo perché EVM ha la capacità di eseguire qualsiasi codice definito da uno sviluppatore nell'ambito delle sue capacità.

Questo rappresenta un grande vantaggio per la rete Ethereum. Grazie a EVM e Solidity, gli sviluppatori possono programmare azioni che verranno poi eseguite da EVM in modo decentralizzato sulla rete Ethereum. Ma ciò implica anche che deve essere predisposto un meccanismo di protezione per prevenirne l'uso improprio. Questo meccanismo è noto come Gas e serve per evitare che il sistema venga bloccato dalla creazione di loop infiniti o altre azioni dannose. est Gas funziona come il spesa computazionale che implica l'elaborazione di una transazione o di un contratto intelligente sulla rete.

Il concetto assomiglia, ad esempio, a ciò che è stato ideato da Adam Back con il suo sistema per combattere lo spam e-mail, il HashCash.

Importanza e sviluppo della Solidità

Ethereum nasce come alternativa alla rete Bitcoin. Il tuo creatore, Vitalik Buterin a quel tempo, propose di incorporare un linguaggio di tipo Turing Complete nella rete Bitcoin. Dal momento che ha ritenuto che il linguaggio con cui è stato sviluppato Bitcoin fosse insufficiente per l'evoluzione della rete. Ma non ricevendo alcuna risposta dagli sviluppatori, Buterin ha deciso di creare e sviluppare un proprio progetto: Ethereum.

Oggi, Bitcoin ed Ethereum sono le reti più preziose, conosciute e utilizzate dalla comunità delle criptovalute. Occupando rispettivamente il primo e il secondo posto. Tuttavia, Bitcoin ed Ethereum hanno grandi differenze. Ad esempio bitcoin, la valuta della rete Bitcoin, è stato creato come mezzo di pagamento e salvaguardia del valore. Mentre Ethereum è stato sviluppato con l'obiettivo di essere molto più flessibile e programmabile, permettendogli di evolversi con nuove capacità nel tempo.

Questo grazie a EVM e Solidity, i due strumenti che consentono agli sviluppatori di ottenere il massimo da Ethereum. Con Solidity, il compito di sviluppare applicazioni distribuito (DApps) o altre funzioni che fanno uso di contratti intelligenti.

Lo sviluppo di Ethereum è iniziato come un'idea nella mente di Gavin Wood nel 2014. L'idea è stata concretizzata da Christian reitwiessner insieme a un team di lavoro. Il risultato di questo lavoro ha portato a Solidity. Da allora, lo sviluppo di Solidity ha continuato la sua evoluzione ed è attualmente in versione 0.7.4 di lingua (novembre 2020).

Caratteristiche

  1. Solidity è un tipo di linguaggio orientato agli oggetti (OO) come C ++ e C #.
  2. È stato progettato specificamente per sviluppare applicazioni per la rete Ethereum. Quindi funziona solo sulla blockchain di Ethereum o su derivati ​​compatibili.
  3. Un vantaggio di questo linguaggio è che il codice sorgente dei programmi realizzati con esso è accessibile pubblicamente dalla blockchain. Pur essendo in bytecode, è possibile decompilarlo e ottenere un campione abbastanza chiaro del codice sorgente originale.
  4. La solidità sostiene patrimonio e della eredità multipla, dandogli una grande flessibilità durante la programmazione di elementi complessi.
  5. Questo linguaggio fornisce anche una serie di librerie molto utili che facilitano la programmazione di contratti intelligenti, rendendo il codice riutilizzabile e più facile da mantenere.

Quanto sai, Cryptonuta?

Solidity è l'unico linguaggio di programmazione disponibile per Ethereum e il suo EVM?

FALSO!

Solidity non è l'unico linguaggio di programmazione disponibile per Ethereum e il suo EVM. Ci sono altre opzioni come LLL (Low-Level Language) o Vyper che possono essere utilizzate anche per programmare DApp in Ethereum.

Ambienti di sviluppo disponibili

Come quasi tutti i linguaggi di programmazione, Solidity può sfruttare i vantaggi di un ambiente di sviluppo integrato o IDE. In Ethereum, l'IDE ufficiale è noto come Remix. Ciò semplifica la creazione di contratti intelligenti per gli sviluppatori, consentendo al contempo l'accesso allo stato e alle proprietà dei contratti intelligenti già creati. Dispone inoltre di potenti strumenti di analisi e verifica del codice per aiutare gli sviluppatori a eseguire il debug dei propri programmi.

Remix può anche essere eseguito e utilizzato online tramite Firefox o Chrome o direttamente sul nostro computer. E sebbene questo sia l'IDE ufficiale di Ethereum, ci sono anche altri ambienti che supportano il linguaggio Solidity. Per esempio, Ethereum Studio è un IDE specializzato che fornisce l'accesso a un ambiente Ethereum completo tramite un interprete dei comandi noto come conchiglia.

  • Visual Studio Code che mostra il plug-in Solidity
  • Ethereum Remix IDE

Allo stesso modo, siamo a Plugin Solidity per IntelliJ IDEA, un altro IDE creato per lo sviluppo di software conforme a Solidity. Atomo è uno strumento modificabile che può essere utilizzato per personalizzare qualsiasi cosa. Possiamo trovare un pacchetto noto come Etheratom che utilizza la libreria web3.js per interagire con un file nodo di Ethereum.

Un altro IDE che possiamo trovare è il file Plugin di Visual Studio, creato da Microsoft. Ciò consente la creazione e lo sviluppo di contratti intelligenti tramite un compilatore Solidity. Consente inoltre la creazione di applicazioni per Microsoft e moderne applicazioni web e servizi cloud che utilizzano il suo servizio Azure.