7 min read

Solidity: linguaggio di programmazione

Di Gabriele Brambilla

Tra i linguaggi utilizzati in ambito blockchain, Solidity occupa un posto d'onore. È arrivato il momento di conoscerlo meglio.

Solidity: linguaggio di programmazione

Non solo criptovalute...

… ma anche un po’ di parte tecnica: oggi conosciamo meglio Solidity, il linguaggio di programmazione dietro Ethereum.

Coin e token, farming, staking, DeFi, NFT, metaverso. La blockchain offre tantissimo e ha ancora nella manica i suoi assi migliori. Tutto ciò è reso possibile dagli smart contract che, a loro volta, sono preparati dagli sviluppatori mediante diversi linguaggi.

Solidity è nato specificatamente per Ethereum, divenendo un punto di riferimento per il settore. Capiamo quali sono i suoi punti di forza, le debolezze e che cosa permette di creare.

Che cos'è e a cosa serve Solidity?

Solidity è un linguaggio di programmazione che permette di sviluppare con relativa facilità degli smart contract. L’unione di più contratti consente di dar vita a svariate DApp (applicazioni decentralizzate) che, nel loro insieme, compongono il panorama DeFi, NFT e molto altro ancora.

Le origini di Solidity derivano dall’esigenza di avere a disposizione un linguaggio privo di grandi limiti, ma al tempo stesso semplice da imparare per chi dispone di solide basi di programmazione. L’obiettivo fu centrato, perché il linguaggio Solidity è effettivamente facile da comprendere per chi lavora già con JavaScript, Python e/o C++.

Inoltre, Solidity è Turing Complete. Ciò significa che può calcolare ogni funzione computabile di Turing. Tradotto: il linguaggio può riconoscere o stabilire set di regole differenti per la manipolazione dei dati.

Vi sono però dei limiti, di cui il più grande è proprio l’immutabilità che offre la blockchain. Quando si compila uno smart contract si deve essere super precisi, pena problematiche su cui non si potrà intervenire dopo la pubblicazione, se non mediante altri smart contract o soluzioni non propriamente pulite. Questo è un problema condiviso anche da altri linguaggi di programmazione blockchain.

Lato sicurezza, anche qui c’è qualche piccolo problema. Di per sé, Solidity va benissimo, ma come dicevamo bisogna scrivere il codice in modo più che perfetto. Se ad esempio confrontassimo Solidity a Rust (il linguaggio dietro le quinte di Solana), troviamo in quest’ultimo maggior sicurezza: la sua superiore complessità lo rende cosa per pochi, inclusi i malintenzionati che sono a caccia di bug per sottrarre i fondi nei modi più disparati.

In ogni caso, Solidity resta comunque il punto di riferimento per lo sviluppo in ambiente Ethereum ed EVM (o macchine compatibili). Se il lavoro viene fatto bene, questo linguaggio è perfetto per creare qualsiasi cosa passi per la mente del blockchain developer… e ne abbiamo già viste di cose interessanti!

"Solidity è un linguaggio di programmazione per lo sviluppo degli smart contract"

Cosa si può fare con Solidity?

Come anticipavamo, Solidity linguaggio permette di fare molte cose, che comunque passano sempre dalla stessa tipologia di creazione: lo smart contract.

Il nome già suggerisce di che si tratta: contratto intelligente. Immaginiamolo davvero come un contratto, ma scritto in maniera più efficiente, articolata e smart. Esso non contiene solo passaggi che obbligano o danno diritto a qualcosa, ma può ospitare anche svariate condizioni che lo articolano e rendono davvero intelligente.

L’unione di più smart contract può dar vita a piattaforme DeFi alla PancakeSwap e Uniswap, marketplace NFT come OpenSea e Blur, soluzioni per l’assicurazione dei fondi, metaversi, ma anche soluzioni personalizzate per aziende, grandi compagnie, organizzazioni e, volendo, privati.

Gli smart contract rappresentano una grande rivoluzione che non solo dà l’addio definitivo alla carta, ma fa scattare in automatico depositi/prelievi di denaro, cessione di diritti/titoli/azioni e davvero tantissimo altro. Le possibilità sono infinite e si possono sviluppare progetti di qualsiasi genere; tutto passa da una tastiera e dalla mente dei developer; in questo scenario, Solidity ha un ruolo di primo piano.

Cosa si può fare con Solidity?

Chi ha inventato Solidity?

La paternità di Solidity viene attribuita a Gavin Wood, co-founder di Ethereum assieme a Vitalik Buterin, ma anche creatore di Polkadot e Kusama.

In realtà, sebbene Wood abbia avuto un ruolo cruciale nell’idearlo, Solidity è stato poi sviluppato dal team di Ethereum, tra cui spiccano Alex Beregszaszi e Christian Reitwiessner.

La licenza del linguaggio Solidity è di tipo GNU General Public License. Secondo i dev, esso è influenzato da C++ e Python.

"Solidity è stato ideato da Gavin Wood e sviluppato dal team di Ethereum"

Per i dev: quanto guadagna un programmatore Solidity?

Abbiamo letto diversi articoli in rete, esplorato forum e pure guardato dei video su YouTube. Come ci si può aspettare, non c’è uno stipendio prefissato e tutto dipende da alcuni fattori tra cui:

  • Azienda
  • Città e Stato
  • Anzianità
  • Esperienza

La forbice è davvero ampia. In alcuni articoli abbiamo letto cifre anche inferiori ai 30.000€ per un lavoro come sviluppatore Solidity in Italia, fino ad arrivare anche a oltre 100.000 all’estero (Canada e Stati Uniti in primis).

Insomma, se sei già un programmatore ne saprai certamente più di noi sul mercato. Per quello che può servire, notiamo un trend tristemente noto: al di fuori del nostro Paese, aumentano stipendi e benefit, anche se spesso pure il costo della vita segue questa strada.

Se sei agli inizi e stai valutando di lavorare nel campo, ci sono tutte le premesse per un forte sviluppo nei prossimi anni. Certo, le sicurezze per ora non ci sono, ma l’industria si sta sviluppando. Potresti informarti ulteriormente e poi fare le tue valutazioni. In ogni caso, ti inviamo un enorme in bocca al lupo!


X

Vuoi essere sempre sul pezzo?

Iscriviti alla newsletter per ricevere approfondimenti esclusivi e analisi ogni settimana.

Se ti iscrivi c’è un regalo per te!

bitcoin
Bitcoin (BTC) $ 51,409.77
ethereum
Ethereum (ETH) $ 2,986.07
tether
Tether (USDT) $ 0.999284
bnb
BNB (BNB) $ 384.58
solana
Solana (SOL) $ 102.62
xrp
XRP (XRP) $ 0.542652
staked-ether
Lido Staked Ether (STETH) $ 2,987.23
usd-coin
USDC (USDC) $ 0.999859
cardano
Cardano (ADA) $ 0.593172
avalanche-2
Avalanche (AVAX) $ 36.81
tron
TRON (TRX) $ 0.139011
dogecoin
Dogecoin (DOGE) $ 0.084490
chainlink
Chainlink (LINK) $ 18.23
polkadot
Polkadot (DOT) $ 7.50
matic-network
Polygon (MATIC) $ 0.998470
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 51,335.75
the-open-network
Toncoin (TON) $ 2.09
internet-computer
Internet Computer (ICP) $ 12.87
shiba-inu
Shiba Inu (SHIB) $ 0.000010
uniswap
Uniswap (UNI) $ 7.41
bitcoin-cash
Bitcoin Cash (BCH) $ 261.80
litecoin
Litecoin (LTC) $ 68.89
dai
Dai (DAI) $ 0.999209
immutable-x
Immutable (IMX) $ 3.27
filecoin
Filecoin (FIL) $ 8.20
leo-token
LEO Token (LEO) $ 4.15
bittensor
Bittensor (TAO) $ 605.17
kaspa
Kaspa (KAS) $ 0.167423
hedera-hashgraph
Hedera (HBAR) $ 0.113081
cosmos
Cosmos Hub (ATOM) $ 9.84
blockstack
Stacks (STX) $ 2.59
ethereum-classic
Ethereum Classic (ETC) $ 25.87
optimism
Optimism (OP) $ 3.68
aptos
Aptos (APT) $ 9.30
near
NEAR Protocol (NEAR) $ 3.27
stellar
Stellar (XLM) $ 0.116033
vechain
VeChain (VET) $ 0.045031
first-digital-usd
First Digital USD (FDUSD) $ 1.00
injective-protocol
Injective (INJ) $ 34.58
okb
OKB (OKB) $ 50.90
celestia
Celestia (TIA) $ 17.11
render-token
Render (RNDR) $ 7.50
lido-dao
Lido DAO (LDO) $ 3.00
the-graph
The Graph (GRT) $ 0.274474
mantle
Mantle (MNT) $ 0.789546
crypto-com-chain
Cronos (CRO) $ 0.092802
arbitrum
Arbitrum (ARB) $ 1.82
monero
Monero (XMR) $ 122.62
sei-network
Sei (SEI) $ 0.851057
sui
Sui (SUI) $ 1.74