En cliquant sur "Accepter", vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser l'utilisation du site et contribuer à nos efforts de marketing. Consultez notre politique de confidentialité pour plus d'informations.

Tour d'horizon des langages de smart contracts

Virgile Heuraux
20/6/2024
5 min de lecture

Quand on veut développer une application décentralisée, on s’aperçoit qu'il existe toute une multitude de langages de programmation pour la concevoir.

Solidity est le langage qui ouvre le plus d’opportunités d’emploi pour des développeurs de tous niveaux, mais c’est loin d’être le seul langage avec lequel il est possible de travailler dans ce secteur.

Pour cette édition, nous ferons un tour d’horizon des langages de smart contracts utilisés dans cet écosystème, et on pourra constater que chaque langage a ses avantages et inconvénients, aussi bien dans le développement que dans les opportunités professionnelles.

Les langages les plus utilisés

Solidity

Solidity est le langage conçu pour créer et déployer des smart contracts sur le réseau Ethereum, ainsi que tous les réseaux compatibles avec la machine virtuelle d’Ethereum, que ce soit des blockchains d’infrastructure (BNB Chain, Polygon PoS…) que des Layer 2 (Arbitrum, Optimism, zkSync…)


Ce langage de programmation présente beaucoup de similarités avec les langages tels que Javascript ou encore C++, qui font tous les deux partie des 10 langages les plus utilisés dans le monde selon le Stack Overflow Developer Survey de 2023 :

NL82Lang

Solidity a 3 avantages principaux sur l’ensemble des langages de smart contracts existants. Le premier avantage est que ce dernier regroupe le plus de développeurs actifs toutes blockchains confondues.

Le deuxième est que tout est fait pour aider les débutants :

  • C’est le langage avec la syntaxe la plus facile
  • La plupart des outils de développement sont conçus pour Solidity
  • Il permet un accès simple aux attributs orientés objet dans les smart contracts, tels que les traits d'héritage à plusieurs niveaux.

Le troisième avantage et non des moindres, Solidity dispose de la librairie la plus aboutie en termes de smart contracts à disposition et de pratiques de sécurité.

Cela s’explique aussi par l’ancienneté de ce langage et l’activité de la communauté. Pour toutes ces raisons, Solidity est la “valeur sûre” dans le cursus d’apprentissage d’un développeur blockchain.

Rust

Parmi toutes les blockchains d’infrastructure qui se sont illustrées ces dernières années, certaines d’entre elles voient des limitations dans les possibilités proposées par Solidity, et ont choisi un autre langage pour développer leurs smart contracts.

Parmi les alternatives existantes, Rust est le choix qui revient le plus souvent comme en témoigne le nombre de blockchains qui l’utilisent :

  • Solana
  • Polkadot
  • MultiversX (anciennement Elrond)
  • Cosmos

Même certains projets de Layer 2 comptent implémenter Rust pour coder des smart contracts. On peut citer Arbitrum avec sa mise-à-jour “Stylus” permettant de coder avec plusieurs langages autres que Solidity.

Rust est un langage qui s’est érigé en tant que véritable alternative à Solidity pour coder des smart contracts.

La première raison à cela est que c’est un langage robuste. Sur Solidity, la grande majorité des hacks sont dues à des attaques par réentrance. Avec Rust, il y a un contrôle complet sur la gestion de la mémoire et du cache ou la garbage collection pour limiter ces vulnérabilités.

La seconde raison est que Rust permet de déployer plus de puissance de calcul pour un même coût, ce qui fait qu’on peut développer des applications plus scalables et/ou plus optimisées.

NL82Rust

Pour ces raisons, Rust est le langage de programmation le plus aimé par les développeurs, avec 84% de développeurs qui l'utilisent déjà depuis au moins un an et qui souhaitent continuer de l’utiliser.

Étant donné que Rust est adopté sur de nombreuses blockchains et que c’est un langage de smart contracts plus récent par rapport à Solidity, les opportunités professionnelles peuvent être plus importantes.

Cependant, l’apprentissage de ce langage est plus difficile et il y a globalement moins de recul sur les bonnes pratiques de développement.

Les langages de niche

A partir de maintenant, on entre dans les langages de smart contracts “de niche”. Ces derniers sont beaucoup moins utilisés que les langages cités précédemment, avec des communautés également moins grandes.

Apprendre un langage de niche implique un certain nombre de risques, notamment le manque de recul sur ces technologies, et aussi le risque d’acquérir des compétences qui ne seraient pas sollicitées.

Mais cela implique aussi de nombreuses opportunités, comme la possibilité de créer des applications infaisables ailleurs.

OCaml

OCaml est un langage de programmation français, puisqu’il a été créé à l’Inria. Il s’agit d’un langage open source qui, malgré une communication timide, possède une base d’utilisateurs dans des domaines spécifiques de l’industrie, notamment l’aéronautique.

Dans le cas de la blockchain, OCaml est utilisé sur 2 réseaux :

  • Mina, un réseau utilisant la technologie des zk-SNARKs
  • Tezos, dans lequel on utilise le langage Michelson pour développer des smart contracts, qui ressemble fortement à OCaml

Etant donné que OCaml est un langage français, la plupart des ressources de développement à disposition sont en français. En revanche, la syntaxe est différente de celle des langages qui reprennent la syntaxe du C, ce qui est assez déroutant pour les développeurs en transition.

Cairo

Cairo est un langage de programmation spécialement conçu pour Starknet, un projet de “Validity Rollup”.

Un Validity Rollup est un réseau qui regroupe un certain nombre de transactions en une seule sur le réseau principal et la validation de cette dernière se fait grâce aux Zero Knowledge Proofs.

Pour créer des smart contracts sur un Validity Rollup, on a deux solutions :

  1. Créer un Validity Rollup compatible avec la machine virtuelle d’Ethereum pour pouvoir coder en Solidity
  2. Créer sa propre machine virtuelle pour créer des cas d’usage au-delà des possibilités d’Ethereum
NL82Cairo

Starknet a donc choisi de créer une toute nouvelle machine virtuelle avec son propre langage de programmation appelé Cairo.

Bien que ce langage soit principalement inspiré de Rust, son apprentissage reste exigeant et on a très peu de recul sur ce type de technologie. Cependant, Starknet est un projet très pris au sérieux par tout l’écosystème, avec une communauté de développeurs grandissante.

Noir

Noir est un langage de programmation spécialement conçu pour Aztec Network, un Layer 2 axé sur la confidentialité.

L'objectif d'Aztec est que toute tierce partie observant une transaction n'apprenne rien (si ce n’est que quelque chose s’est passé sur le réseau et rien de plus). Pour cela, plusieurs modifications sont nécessaires :

  • L’exécution des transactions est effectuée par le client plutôt que par les noeuds/séquenceurs.
  • L’état du réseau est représenté par des UTXOs (à l’instar de Bitcoin)

En résumé, le fonctionnement d’Aztec n’a rien à voir avec Ethereum, donc il fallait un langage de programmation spécifique pour créer des smart contracts compatibles avec ce réseau.

NL82 Aztec

Bien que le réseau Aztec ne soit pas encore déployé, beaucoup de développeurs s’essaient à ce langage car, comme Starknet, il permet des cas d’utilisation qui seraient impossibles à créer sur d’autres blockchains.

S'inscrire à la newsletter

Inscrivez-vous pour recevoir chaque semaine les derniers articles du blog.

En vous abonnant, vous acceptez notre politique de confidentialité
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Blog

Voir d'autres articles qui peuvent également vous intéresser

Restez informé de l'actualité blockchain

Ressource
5 min de lecture

Comment définir un taux d'intérêt pour un stablecoin ?

Les taux d'intérêt des stablecoins sur les blockchains peuvent être fixés par la gouvernance, des algorithmes ou la théorie des jeux, chacun avec ses avantages et ses risques...
Ressource
6 min de lecture

Améliorer la recherche grâce à l'IA

L'IA accélère la recherche scientifique, permettant de lire des parchemins anciens sans les ouvrir et de découvrir rapidement de nouveaux matériaux pour les batteries.
Ressource
4 min de lecture

Anticiper les infos mieux que Twitter/X

À chaque cycle de marché blockchain, un nouveau réseau social devient incontournable pour l'information, aujourd'hui c'est Twitter, malgré ses défis d'effets de groupe et de proximité.