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) $ 61,444.46
ethereum
Ethereum (ETH) $ 3,051.06
tether
Tether (USDT) $ 1.00
bnb
BNB (BNB) $ 574.45
solana
Solana (SOL) $ 141.71
usd-coin
USDC (USDC) $ 0.999515
xrp
XRP (XRP) $ 0.522620
staked-ether
Lido Staked Ether (STETH) $ 3,049.39
dogecoin
Dogecoin (DOGE) $ 0.137591
the-open-network
Toncoin (TON) $ 5.43
cardano
Cardano (ADA) $ 0.464016
shiba-inu
Shiba Inu (SHIB) $ 0.000024
avalanche-2
Avalanche (AVAX) $ 34.81
tron
TRON (TRX) $ 0.123085
polkadot
Polkadot (DOT) $ 7.21
wrapped-bitcoin
Wrapped Bitcoin (WBTC) $ 61,494.48
bitcoin-cash
Bitcoin Cash (BCH) $ 447.22
chainlink
Chainlink (LINK) $ 13.87
near
NEAR Protocol (NEAR) $ 6.60
matic-network
Polygon (MATIC) $ 0.726279
internet-computer
Internet Computer (ICP) $ 13.49
litecoin
Litecoin (LTC) $ 81.49
uniswap
Uniswap (UNI) $ 7.34
leo-token
LEO Token (LEO) $ 5.94
dai
Dai (DAI) $ 1.00
fetch-ai
Fetch.ai (FET) $ 2.07
ethereum-classic
Ethereum Classic (ETC) $ 26.42
aptos
Aptos (APT) $ 9.07
first-digital-usd
First Digital USD (FDUSD) $ 0.997172
hedera-hashgraph
Hedera (HBAR) $ 0.107320
crypto-com-chain
Cronos (CRO) $ 0.132956
cosmos
Cosmos Hub (ATOM) $ 8.79
pepe
Pepe (PEPE) $ 0.000008
mantle
Mantle (MNT) $ 1.03
filecoin
Filecoin (FIL) $ 6.03
immutable-x
Immutable (IMX) $ 2.22
stellar
Stellar (XLM) $ 0.110644
blockstack
Stacks (STX) $ 2.15
render-token
Render (RNDR) $ 7.98
xtcom-token
XT.com (XT) $ 3.05
okb
OKB (OKB) $ 50.03
renzo-restaked-eth
Renzo Restaked ETH (EZETH) $ 3,002.00
optimism
Optimism (OP) $ 2.84
dogwifcoin
dogwifhat (WIF) $ 2.94
bittensor
Bittensor (TAO) $ 420.52
arbitrum
Arbitrum (ARB) $ 1.05
vechain
VeChain (VET) $ 0.036552
wrapped-eeth
Wrapped eETH (WEETH) $ 3,161.93
sui
Sui (SUI) $ 1.12
maker
Maker (MKR) $ 2,760.14