Qu'est ce que Solidity ?
Solidity est un langage de programmation, de type orienté objet, tout comme peuvent l'être le Javascript, le Python ou le C++. Il permet le développement de smart-contract sur la blockchain Ethereum. Mais également sur d’autres blockchains liées, comme Tomochain. Afin de permettre à n’importe quel développeur de travailler rapidement avec ce nouveau langage (et aux néophytes d’apprendre facilement) il emprunte beaucoup à d’autres langages de programmations, notamment Javascript, C++ ou C#.
Création de Solidity par Ethereum
A l’origine le projet est une proposition de Gavin Wood, co-fondateur et ex-CTO d’Ethereum. Le projet a débuté en 2014, réalisé par l’équipe de développement d’Ethereum. Il faisait parti des quatre langages de programmation permettant de travailler avec l’EVM.
Il a été utilisé dans le développement de nombreuses dApps. Mais également dans d’autres projet comme un PoC (Proof of Concept) de SWIFT sur une blockchain privée, Borrow.
Pour présenter Solidity de façon plus technique, c’est un langage de programmation de type orienté-objet. C'est un paradigme de programmation qui consiste à faire interagir des objets, instances de concepts ou entités. A la manière de nombreux autres langages, il permet la manipulation de fonctions, structures ou strings (chaînes de caractères).
Plus de détails concernant ces caractéristiques sont disponible dans la documentation officielle de Solidity.
Programmer avec Solidity
Même si jusqu'à peu il n’y avait pas beaucoup de ressources à propos de Solidity, aujourd’hui apprendre à programmer ce langage est beaucoup plus accessible. Et ça vaut le coup, de nombreuses offres d’emplois apparaissent demandant la connaissances en Solidity. Si vous voulez vous lancez, Cryptoast possède plusieurs tutoriels en français. Je vous invite à les consulter afin de découvrir la programmation de smarts-contracts , de tokens, d’ICO sur Ethereum. Aujourd’hui, Solidity est en version 0.5.7, et est régulièrement mis à jour.
Un exemple de smart-contract
Voyons ce à quoi pourrait ressembler un smart-contract développé avec Solidity :
pragma solidity >=0.4.0 <0.7.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
Ce simple contrat permet le stockage d’un nombre au sein de ce dernier, et possède deux fonctions. La première va réaliser le changement de la donnée stocké, en la remplaçant par la nouvelle donnée mise en paramètre. La seconde nous renvoie simplement la donnée stockée lorsqu’elle est appelée. Quand à la toute première ligne, elle indique simplement la méthode de compilation du contrat.
Dans cet exemple tout compilateur ayant une version supérieur à 0.4.0 et inférieur à 0.7.0 est utilisable. Comme je vous l’avais dit, si vous avez déjà programmé, notamment sur les langages objets, ces quelques lignes ne devaient pas être très complexes à lire. Et c’est tout l’intérêt d’utiliser Solidity dans le développement de smart-contract !
Voilà, vous en savez un peu plus sur Solidity. Vous êtes prêt à commencer à développer des smart-contract et à participer à la révolution blockchain !
Enfin pas tout à fait, nous vous invitons à lire tous nos guides et futurs guides dans notre partie axée sur le développement blockchain.
Si vous souhaitez participer en partageant votre savoir n'hésitez pas à nous contacter !