Pour concevoir des applications sur la blockchain, il est nécessaire de coder des smart contracts. Et en tant que développeur, on réalise que plusieurs langages de programmation existent pour les coder.
Depuis que la blockchain existe, beaucoup de langages de smart contracts se sont succédés, certains ayant eu plus de succès, et d’autres qui ont progressivement disparu à cause d’un manque de développeurs, ou de problèmes techniques.
Aujourd’hui, il y a deux catégories de développeurs pour concevoir des smart contracts, à savoir ceux qui développent avec Solidity, et ceux qui les développent avec un langage inspiré de Rust. Et lorsque deux catégories bien distinctes émergent, on ne peut pas s’empêcher de les comparer.
Solidity définition
Solidity est le langage de programmation qui permet de concevoir des smart contracts sur l’écosystème d’Ethereum dans son ensemble. Cela comprend évidemment la blockchain Ethereum qui possède le plus d’applications déployées, mais aussi toutes les autres blockchains qui utilisent la même machine virtuelle :
- Les Blockchains EVM (BNB Chain, Avalanche…)
- Les Rollups d’Ethereum (Arbitrum, Base…)
- Les Appchains (Unichain…)
Cela représente au total plusieurs dizaines de blockchains sur lesquelles se déployer, pour plus d’une centaine de milliards de dollars d’actifs sécurisés.

Lorsque les développeurs d’Ethereum ont créé le langage Solidity, ils se sont principalement inspirés de langages de programmation déjà existants. Il fallait s’inspirer d’un langage avec lequel il est facile de débuter, et ce langage devait avoir une communauté de développeurs vaste.
Puisque Javascript fait partie des langages de programmation les plus utilisés et les plus simples à apprendre en tant que débutant, c’était l’inspiration principale pour concevoir Solidity.
Les avantages de Solidity
L’avantage le plus évident de Solidity réside dans la communauté. L’écosystème d’Ethereum regroupe le plus de développeurs actifs toutes blockchains confondues, ce qui entraîne tout un ensemble de conséquences positives pour les développeurs en général:
- Solidity est la langage qui possède le plus de documentation, et dispose de la librairie la plus aboutie en termes de smart contracts à disposition et de pratiques de sécurité.
- Tout est fait pour aider les nouveaux développeurs avec un ensemble de tutoriels pour aller du niveau débutant jusqu’au niveau avancé.
Autre avantage mentionné plus tôt : Solidity est facile à apprendre. Il a été conçu pour être facilement lisible et compréhensible, et les développeurs ayant une expérience préalable avec Javascript peuvent aisément réaliser la transition vers Solidity.
Enfin, Solidity dispose d’énormément d’outils de développement. Il est soutenu par des plateformes comme OpenZeppelin qui fournit des bibliothèques open-source, et on peut trouver des environnements de développement comme Remix, Hardhat ou Foundry qui facilitent la création des applications sur la blockchain.
{{cta-moyen-db}}
L’inconvénient de Solidity
C’est un fait, Solidity est le meilleur langage de programmation pour commencer sa carrière dans la blockchain. Pour autant, certains développeurs d’applications se sont mis à constater certaines limites liées à ce langage.
Si l’apprentissage est très facile au début, on réalise qu’il se complexifie avec le temps. Le développement d’applications est facile mais pour maintenir une application sécurisée sur la durée l’est beaucoup moins.
En effet, l’infrastructure d’Ethereum évolue avec le temps. Certaines propositions d’amélioration d’Ethereum peuvent introduire de nouvelles possibilités de développement pour les applications, et la machine virtuelle d’Ethereum peut également être modifiée.
Tout ceci fait qu’une application auparavant sécurisée peut ne plus l’être, et malgré le fait que la communauté d’Ethereum mette tout en oeuvre pour rester à jour sur les surfaces d’attaque possible, cela augmente la difficulté de développement.
Rust définition
Lorsqu'on parle du langage “Rust” pour coder des smart contracts, il s’agit d’un abus de langage. On n’utilise pas Rust à proprement parler, mais on utilise des langages inspirés de Rust, à l’instar de Solidity qui est inspiré de Javascript.
Les langages inspirés de Rust sont les choix qui reviennent le plus souvent lorsqu’on observe les blockchains qui ont une autre machine virtuelle que celle d’Ethereum :
- Les blockchains non-EVM (Solana…)
- Les Rollups qui ont leur propre machine virtuelle (Starknet, Aztec…)
- Les Rollups EVM qui intègrent d’autres langages (Arbitrum…)
Dans le monde du développement, la communauté Rust est plus petite que celle de Javascript. Parmi les répondants au sondage de Stack Overflow de 2024, 62% des développeurs utilisent Javascript et 12% utilisent Rust.

Néanmoins, Rust se rattrape avec un succès d’estime important. Le même sondage indique que 83% des répondants utilisant ce langage depuis plus d’un an souhaitent continuer de coder avec. Rust est donc le langage le plus apprécié pour la neuvième année de suite.
Avec le temps, les langages inspirés de Rust se sont érigés en tant qu’alternative principale à Solidity pour coder des smart contracts, pour plusieurs raisons.
Les avantages de Rust
Le principale avantage d’un langage inspiré de Rust est qu’il offre beaucoup plus de puissance de calcul par unité de coût par rapport à d’autres langages.
En ingénierie logicielle, on peut fréquemment voir des témoignages mettant en lumière la réduction des coûts de calcul que Rust apporte, qui est particulièrement utile pour faire tourner un logiciel axé sur les performances.
Par conséquent, les langages inspirés de Rust sont particulièrement adaptés dans l’optique de rendre les blockchains plus scalables. Il suffit de voir la blockchain Solana qui est certes plus centralisé qu’Ethereum, mais qui maximise ses performances.
L’autre avantage significatif de Rust est qu’il est possible de créer des cas d’utilisation qui ne sont pas réalisables sur la machine virtuelle d’Ethereum, comme l’atteste certaines blockchains :
- Hyperliquid a été créé pour faire une blockchain dédiée au trading
- Starknet utilise sa propre machine virtuelle pour faire la blockchain la plus scalable possible
- Aztec propose une blockchain avec des transactions et des smart contracts confidentiels
Ces trois blockchains ont utilisé Rust comme base technique pour pouvoir être construits. Il aurait probablement été possible d’avoir ces cas d’utilisation avec la machine virtuelle d’Ethereum, mais le fonctionnement serait beaucoup moins optimal.
L’inconvénient de Rust
L’inconvénient qui revient systématiquement lorsqu’on parle des langages inspirés de Rust est sa courbe d’apprentissage. Si Solidity est très facile à prendre en main mais monte en complexité à mesure qu’on progresse, Rust est tout l’inverse : très difficile à prendre en main quand on débute mais la difficulté baisse avec l’expérience.
Les premiers mois d’un développeur Rust sont généralement difficiles à vivre, et cela dissuade les développeurs de continuer à coder en Rust, y compris pour des smart contracts.

Par ailleurs, cet inconvénient se reflète directement dans les données onchain. Sur DeFiLlama, on peut constater que Rust sécurise quasiment $17 milliards dans la finance décentralisée, alors que Solidity en sécurise 155.
C’est l’inconvénient qui représente la conséquence de toutes les autres faiblesses des langages inspirés de Rust comparé à Ethereum (communauté moins grande, moins d’outils de développement…). Même si certains développeurs Rust sont particulièrement actifs et intéressants à suivre, il est peu probable que la dominance de Solidity soit remise en question dans la blockchain au cours des prochaines années.
Finalement, qui gagne ?
On pourrait pousser la comparaison bien au-delà du cadre de cette newsletter, mais à terme c’est impossible de déterminer un vainqueur tant les qualités et défauts de Solidity et des langages inspirés de Rust sont différents.
Cela dit, il y a un critère qui vous permet de déterminer un vainqueur : les opportunités pour travailler en tant que développeur. Peu importe le langage de programmation qu’on choisit d’apprendre, la finalité reste de décrocher des opportunités professionnelles, et vous finirez par choisir le langage adapté.
Solidity fait partie des “valeurs sûres” dans le cursus d’apprentissage d’un développeur blockchain, tandis que les développeurs Rust sont beaucoup moins nombreux mais les opportunités professionnelles ne sont clairement pas à sous-estimer, avec des niches très impliquées et très sollicitées.
Webinar gratuit
Nos experts répondent à vos questions sur l'intelligence artificielle !
S'inscrire au Webinaire

Accédez gratuitement à vos premières heures de formation Consulting Blockchain
Accédez gratuitement à vos premières heures de formation Consulting Blockchain
Accédez gratuitement à vos premières heures de formation développement Blockchain
Accédez gratuitement à vos premières heures de formation développement Blockchain

Accédez gratuitement à vos premières heures de formation Développement IA

Accédez gratuitement à vos premières heures de formation Consulting Blockchain

Accédez gratuitement à vos premières heures de formation Consulting IA

Accédez gratuitement à vos premières heures de formation Finance Décentralisée

Accédez gratuitement à vos premières heures de formation Finance décentralisée

Accédez gratuitement à vos premières heures de formation Consulting Blockchain

Accédez gratuitement à vos premières heures de formation Consulting IA

Accédez gratuitement à vos premières heures de formation Développement Blockchain

Accédez gratuitement à vos premières heures de formation Développement IA
