Les langages de programmation derrière le code Cardano On-Chain

Dans un blog précédent, nous avons discuté du rôle spécialisé du développeur de blockchain Cardano en chaîne, responsable de l’écriture du code en chaîne pour une dApp Cardano qui est déployée sur la blockchain et exécutée par les nœuds du réseau. Pour écrire ce code en chaîne, les développeurs de Cardano peuvent utiliser différents langages de programmation.

Le réseau Cardano a été conçu pour être polyvalent et inclusif. Il a choisi Haskell comme langage principal , mais en même temps, il a créé les outils permettant d’ouvrir le réseau à toute alternative. L’objectif est de permettre diverses solutions possibles tout en garantissant le même niveau de sécurité.

Cela a créé un écosystème très spécial pour Cardano, dans lequel il existe de multiples alternatives à l’écriture de code en chaîne sans compromettre la sécurité de la blockchain. C’est pratiquement inconnu sur d’autres protocoles.

Chacun de ces langages est une alternative au code en chaîne qui se compile sur Plutus Core, ce qui signifie que chacune de ces alternatives bénéficie de la machine virtuelle Plutus qui interprète Plutus Core. Il est important de noter que seul PlutusTx dispose réellement d’un compilateur formellement vérifié. D’autres langages sont relativement expérimentaux, Aiken étant le plus largement utilisé et testé – bien que non formellement vérifié. En tant que tel, c’est une question de préférence quant à celui à utiliser et non tant sur les propriétés qui les rendent meilleurs les uns que les autres.

Examinons ci-dessous les différents langages de programmation pour le code en chaîne Cardano.

Langages de programmation de code en chaîne Cardano

PlutusTx

Une façon d’écrire des contrats intelligents sur la liste est PlutusTx , qui est un plugin de compilateur pour le Glasgow Haskell Compiler (le compilateur Haskell grand public), le langage principal étant Haskell.

C’est la méthode prise en charge pour écrire du code en chaîne par l’équipe d’IOG. Il s’agit d’un langage spécifique à un domaine qui a été créé sur la base de Haskell et, en tant que tel, reflète presque 1 à 1 la syntaxe de son langage parent.

PlutusTx est la méthode principale soutenue par l’équipe d’IOG et le soutien des autres entités fondatrices. Il dispose d’un large support dans certains domaines, mais manque également de documentation et de ressources complètes dans l’écosystème Cardano par rapport à d’autres alternatives telles que Aiken. Il a déjà fait l’objet d’une refonte majeure après le hard fork de Vasil et l’introduction de PlutusV2.

À l’avenir, cette tendance devrait se poursuivre. Les développeurs principaux amélioreront les fonctionnalités de Plutus et les autres équipes devront rattraper leurs changements. C’est pourquoi il est recommandé d’ apprendre Plutus à tous ceux qui souhaitent se lancer dans le développement de Cardano.

Aiken

Aiken est l’une des alternatives à PlutusTx.

Aiken emprunte une partie de la syntaxe de Rust, Elm et Elixir et l’intègre dans un outil convivial pour les développeurs Cardano. Aiken a été soutenu par la Fondation Cardano en tant que langage open source pour Cardano axé sur la création d’un gestionnaire de packages dédié facile à utiliser qui fournit des messages d’erreur lisibles qui peuvent aider à résoudre le problème plus rapidement et plus facilement.

Cela a fait d’Aiken une alternative très populaire au PlutusTx original avec sa documentation claire, ses exemples de bout en bout et sa communauté dynamique. Il existe un bassin important de développeurs qui comprennent la programmation fonctionnelle avec une formation en TypeScript, Python, Java et Go, qui peuvent rapidement intégrer la manière de faire d’Aiken. Aiken leur a permis d’entrer dans l’écosystème Cardano en utilisant un langage qui utilise des concepts familiers pour eux.

De plus, Aiken offre certains gains sur les unités d’exécution qui sont directement corrélés au nombre d’étapes et à la mémoire qu’un contrat peut effectuer en chaîne. Il y a moins d’étapes pour terminer une instruction dans Aiken, ce qui rend les validateurs plus efficaces. C’est la taille qui détermine le montant des frais, donc tout gain dans ce domaine rend les transactions et donc, par extension, les dApps moins chères à utiliser.

Hélios

Le langage Helios est une alternative au SDK Javascript/Typescript pour le code en chaîne sur Cardano.

Il a été créé pour intégrer les développeurs Web sur Cardano. L’écosystème Javascript/Typescript est parmi les plus vastes parmi les programmeurs et Helios est une bonne option pour ces personnes.

La boîte à outils Helios a également la particularité de fonctionner aussi bien pour le code en chaîne que hors chaîne ! Les créateurs d’Helios ont développé une version pour chacune des faces d’une Cardano dApp. Ainsi, les développeurs n’ont plus besoin d’utiliser un type de langage pour la chaîne, puis de passer à un autre pour le hors chaîne.

Le langage Helios peut également être utilisé pour calculer et gérer les actifs Cardano lors d’une transaction. Cela en fait l’une des alternatives les plus polyvalentes de l’écosystème Cardano pour les programmeurs de tous horizons.

Opshin

Opshin est un langage qui utilise du code Python 100 % valide pour la logique en chaîne sur Cardano.

C’est la principale alternative pour ceux qui cherchent à s’appuyer sur le réseau et qui ont une formation en Python. Il existe une large communauté d’analystes de données issus de Python qui peuvent bénéficier de cette alternative.

Le langage est facile à installer et à utiliser pour ceux qui connaissent Python. Il prend en charge les paradigmes impératifs et fonctionnels sans compromettre la conception de base des contrats intelligents Cardano.

Plu-ts

Plu-ts développé par Harmonic Labs est une autre alternative Typescript pour le code en chaîne.

L’implémentation du langage fournit également des outils pour écrire du code hors chaîne, ce qui permet aux développeurs d’utiliser la même syntaxe pour les deux parties de Cardano dApp.

De plus, Plu-ts vise à donner aux développeurs plus de contrôle sur le code compilé. Cela signifie que la taille d’un contrat intelligent peut être optimisée pour le rendre moins cher pour l’utilisateur. Cela signifie que les développeurs de dApp peuvent pousser davantage Plu-ts à rendre leurs plates-formes moins chères à utiliser.

Plutarque

Plutarch est un autre langage spécifique à un domaine, mais uniquement pour le code en chaîne basé sur Haskell. Il est considéré comme un niveau d’abstraction plus élevé lorsqu’il est lié à Haskell, ce qui donne aux développeurs des moyens de rédiger des contrats intelligents très efficaces. Mais il est plus difficile de raisonner sur ces sujets en raison du niveau d’abstraction de Plutarque.

L’objectif principal est d’optimiser la taille d’un validateur pour rendre les transactions les moins chères possibles. À l’heure actuelle, Plutarch est le langage qui prouve les plus petits validateurs pour Cardano dApps.

Cela a fait de Plutarch le premier choix des dApps qui souhaitent optimiser autant que possible leurs frais. Il s’agit d’une option avancée pour les développeurs maîtrisant Haskell, car elle s’appuie davantage sur les fonctionnalités de base de son langage parent que sur d’autres alternatives. Pour cette raison, ce n’est pas très convivial pour les débutants, mais c’est certainement un choix viable pour les vétérans de Haskell.

Nous y avons une liste presque complète de toutes les différentes façons d’écrire du code en chaîne sur Cardano. A l’exception de PlutusTx, tous les autres projets ont été créés par la communauté et sont portés par des équipes indépendantes.

Tous partagent les mêmes propriétés de sécurité de base et ne compromettent en aucun cas Cardano. Cela signifie que le choix de celui à utiliser vient de l’expérience d’une équipe de développeurs. Tous les choix sont 100 % viables et chacun est constamment amélioré par la communauté Cardano.

Source : https://www.emurgo.io/press-news/the-programming-languages-behind-cardano-on-chain-code/