Une conversation au coin du feu avec Duncan Coutts, lâarchitecte technique en chef de Cardano, sur Haskell et la livraison de Shelley
le 7 avril 2020, par Eric Czuleger, Rédacteur en chef
texte original ici : ici
6 minutes de lecture
traduction : @JGA2020
Duncan Coutts a Ă©tĂ© un guide important sur le chemin du rĂ©seau principal de Cardano Shelley. Les supporters de longue date dâIOHK sont sans doute familiers avec ses cheveux longs, sa barbe et son penchant Ă boire du thĂ© lorsquâil discute de dĂ©centralisation devant un tableau blanc. Il a rĂ©cemment accordĂ© une interview pour discuter du prochain reboot de Byron, du testnet Haskell Shelley et des conclusions du cycle de dĂ©veloppement prĂ©-Shelley. M.Coutts, qui travaille avec IOHK depuis 2016, a une grande richesse de connaissances, qui lui viennent de son travail avec le langage de programmation Haskell depuis prĂšs de 20 ans, et de son aide Ă la crĂ©ation de la sociĂ©tĂ© de conseil Well-Typed.
Quel est votre rĂŽle au sein dâIOHK ?
Je suis lâarchitecte technique en chef du projet Cardano et je suis principalement responsable de la conception et de la mise en Ćuvre du nĆud. Cela signifie que je collabore avec les Ă©quipes qui travaillent sur le consensus, le registre, la mise en rĂ©seau et dâautres choses encore. En bout de ligne, je mâefforce de rassembler tout le monde autour dâune mĂȘme rĂ©alisation, aprĂšs discussion avec les chefs dâĂ©quipes. La conception de Cardano est le fruit du travail commun de nombreux individus travaillant ensemble.
Quâest-ce que le langage de programmation Haskell apporte Ă Cardano ?
Haskell est un facilitateur. Il nous permet de suivre plus facilement lâapproche que nous pensons ĂȘtre la bonne, qui est guidĂ©e par la science informatique. Nous savons comment faire les choses correctement ; lâinformatique nous dit comment. Il nous suffit de choisir les techniques appropriĂ©es pour y parvenir. Haskell nous facilite la tĂąche.
Il convient parfaitement Ă Cardano parce quâil est adaptĂ© pour des systĂšmes trĂšs fiables, basĂ©s sur des protocoles, ce qui est vital pour une blockchaine. Haskell nous aide Ă trouver des moyens systĂ©matiques dâĂ©viter les erreurs. Fondamentalement, câest une meilleure souriciĂšre.
Vous travaillez avec Haskell depuis longtemps. Comment percevez-vous lâĂ©volution du paysage de la programmation fonctionnelle ?
Les gens la prennent maintenant au sĂ©rieux. Quand jâai commencĂ© Ă faire mes Ă©tudes en 1999, je me suis dit que Haskell Ă©tait formidable. Dâautres Ă©tudiants pensaient : « Wow, câest totalement inutilisable. Comment vas-tu trouver un job plus tard ? ».
Ă lâĂ©poque, la programmation fonctionnelle Ă©tait une curiositĂ© acadĂ©mique. Il nây avait pas de code prĂ©-construit et ce nâĂ©tait pas lisible par une machine, ce qui signifie quâHaskell Ă©tait inutilisable pour un grand nombre de personnes. Il nây avait pas dâoutils, de gammes de bibliothĂšques, ou dâexpĂ©rience. Cela a changĂ© au fil des ans : lâoutillage sâest amĂ©liorĂ©, les bibliothĂšques se sont amĂ©liorĂ©es. IOHK a aidĂ© Ă dĂ©velopper lâinfrastructure pour construire et distribuer le code open-source de Haskell et le nombre de bibliothĂšques a explosĂ©. Cela, combinĂ© avec plus dâenseignement et un changement progressif dâattitude dans lâindustrie, signifie que les gens prennent cela plus au sĂ©rieux maintenant. Haskell nâa pas tellement changĂ©, contrairement Ă lâindustrie qui nous entoure.
Quel est le plus grand changement du point de vue de lâindustrie ?
Il y a deux choses. La premiĂšre est que les attitudes changent, bien que lentement. Les gens changent leurs opinions sur ce quâils considĂšrent comme un choix de langage judicieux. Auparavant, tout devait ĂȘtre en C ou en Java ou Ă©ventuellement en Python, mais les bonnes idĂ©es finissent par progresser, mĂȘme si cela prend beaucoup de temps. Vous pouvez faire beaucoup de progrĂšs en reconnaissant simplement quâune bonne idĂ©e est une bonne idĂ©e. Le courant dominant reprend les dĂ©veloppements importants, mĂȘme si cela prend 10 ou 15 ans. Lâindustrie nâa pas encore adoptĂ© la programmation fonctionnelle en bloc, mais les programmeurs individuels ont repris diverses idĂ©es. Cela donne Ă Haskell une apparence moins radicale quâauparavant.
Si vous regardez un langage comme Rust, il a certains des systĂšmes de type intelligent de Haskell, bien quâil nâait pas lâidĂ©e de programmation fonctionnelle. MĂȘme Java et C++ ont des idĂ©es de programmation fonctionnelle de nos jours, donc Haskell nâest plus aussi Ă©loignĂ© du courant de pensĂ©e dominant quâil lâĂ©tait auparavant.
Le deuxiĂšme changement majeur a Ă©tĂ© la performance, qui sâamĂ©liore considĂ©rablement. Nous sommes rĂ©cemment devenus compĂ©titifs par rapport Ă Java en termes de performances. Cela fait dire aux gens : âWow, Haskell est super rapideâ, mais câest parce quâils le comparent Ă Python et PHP plutĂŽt quâĂ C. Câest donc une autre façon de dire que Haskell sâest lĂ©gĂšrement amĂ©liorĂ©, mais lâenvironnement industriel qui lâentoure a aussi Ă©voluĂ©.
Vous avez été fortement impliqué dans le reboot Byron qui a été lancé la semaine derniÚre. Pourquoi ce travail était-il important ?
Le reboot Byron est lâaboutissement de plus de 18 mois de travail acharnĂ© de la part de plusieurs Ă©quipes de dĂ©veloppement dâIOHK, et constitue une rĂ©vision complĂšte de lâinfrastructure du nĆud avec un code entiĂšrement nouveau. Le reboot introduit une conception extensible et modulaire au sein du nĆud lui-mĂȘme, en sĂ©parant le registre, le consensus et les composants de rĂ©seau, ainsi que des amĂ©liorations et de nouvelles fonctionnalitĂ©s dans le backend du portefeuille et dans lâexplorateur Cardano.
Pour les utilisateurs de Daedalus, le reboot Byron nous fera passer Ă une cadence de mise Ă jour rĂ©guliĂšre [voir notre rĂ©cent article Ă propos de Daedalus Flight pour en savoir plus], aprĂšs laquelle ils devraient constater que Daedalus est plus rapide, plus fiable et utilise moins de mĂ©moire. Beaucoup de problĂšmes que les utilisateurs ont rencontrĂ©s avec Daedalus dans le passĂ© Ă©taient dus au nĆud sous-jacent, plutĂŽt quâĂ Daedalus lui-mĂȘme. Le reboot de Byron contribuera grandement Ă amĂ©liorer les choses, et les utilisateurs devraient voir Daedalus se synchroniser et restaurer les portefeuilles en quelques minutes, mĂȘme en tĂ©lĂ©chargeant la chaĂźne complĂšte de Cardano.
En tant quâarchitecte en chef, votre travail consiste Ă jeter les bases de lâavenir de Cardano. Sur quoi avez-vous mis lâaccent pour y parvenir ?
Lâaspect le plus important en termes de flexibilitĂ© pour lâavenir est de garder les diffĂ©rentes fonctions sĂ©parĂ©es. Lâune des grandes amĂ©liorations du reboot Byron est que les rĂšgles du registre seront totalement indĂ©pendantes de la mise en Ćuvre du consensus ; cette modularitĂ© signifie que les rĂšgles du registre sont des fonctions mathĂ©matiques parfaitement propres, ce qui est un aspect essentiel de la programmation fonctionnelle.
Par consĂ©quent, tout est plus facile Ă tester, Ă ajuster et Ă modifier, aujourdâhui comme dans le futur. Lâalgorithme de consensus nâest pas empĂȘtrĂ© dans les dĂ©tails des rĂšgles du registre, de sorte que nous pouvons modifier les rĂšgles du registre sans changer lâimplĂ©mentation du consensus. Cela rend lâintĂ©gration de Plutus et des fonctionnalitĂ©s de smart contracts beaucoup plus facile et sera Ă©galement utile Ă lâavenir lorsque nous ajouterons des fonctionnalitĂ©s de trĂ©sorerie et de gouvernance.
La mise en Ćuvre du consensus elle-mĂȘme a Ă©galement Ă©tĂ© paramĂ©trĂ©e de maniĂšre Ă ce que nous puissions passer du protocole de consensus Ouroboros Classic au BFT puis au Praos, ce qui offre Ă©galement une certaine flexibilitĂ© pour les futures versions du protocole qui nâont pas encore Ă©tĂ© dĂ©veloppĂ©es.
Shelley est un grand pas vers lâavenir de Cardano, mais quelle est lâimportance de compiler Haskell en JavaScript et WebAssembly ?
Nous sommes intĂ©ressĂ©s par la compilation en JavaScript ou WebAssembly Ă cause de Plutus. Nous voulons avoir des contrats Plutus ou des applications Plutus qui peuvent ĂȘtre distribuĂ©s aux utilisateurs, ce qui inclut des interfaces personnalisĂ©es et une conception adaptĂ©e Ă lâutilisateur, plutĂŽt que sur un serveur. La compilation en JavaScript nous permet de le faire ; vous pouvez compiler le code Plutus une fois et le distribuer aux utilisateurs sur diffĂ©rentes plateformes.
Merci Ă Duncan Coutts pour le temps quâil nous a consacrĂ©. En tant quâarchitecte technique en chef, il est une pierre angulaire du projet Cardano et a jouĂ© un rĂŽle fondamental dans le succĂšs continu de la plateforme. Pour dâautres interviews avec lâĂ©quipe, restez connectĂ©s Ă nos chaĂźnes sociales et au blog de lâIOHK.