Qu'est-ce que l'évolutivité de l'abstraction ?
L'évolutivité de l'abstraction est l'expansion de la capacité globale d'un système qui permet d'utiliser des composants de programmation comme éléments de base dans un nouvel environnement de développement. Cela augmente le nombre d'opérations importantes qu'un développeur peut effectuer sans avoir à les reconstruire. »
Quand on parle de l'évolutivité d'un programme ou de network, la conversation se concentre souvent sur l'évolutivité informatique - ou sur la capacité de ce protocole à gérer un throughput ou des transactions complexes. Cependant, il existe une autre catégorie d'évolutivité qui n'est pas aussi quantifiable mais qui est tout aussi cruciale : l'évolutivité par abstraction.
À la base, l'évolutivité par abstraction fait référence à la capacité des développeurs à créer des applications en référençant et en réutilisant des applications précédentes. travail d'autres développeurs. En bref, l’évolutivité de l’abstraction consiste à ne pas obliger les développeurs à « réinventer la roue ».
Dans les logiciels d'aujourd'hui, l'abstraction est vécue comme un écosystème en couches de bibliothèques, d'outils, de systèmes d'exploitation, de compilateurs, d'interpréteurs et de nombreux autres composants, dont chacun fait abstraction du système sous-jacent.
Les développeurs bénéficient de l'abstraction en regroupant les programmes existants ensemble, leur permettant de servir de blocs de construction pour des applications plus complexes . Non seulement les développeurs n’ont pas besoin d’écrire ces abstractions eux-mêmes, mais ils n’ont même pas nécessairement besoin de comprendre leur fonctionnement interne. Ils peuvent exploiter des abstractions spécifiques en sachant que des milliers d'autres développeurs les ont utilisées avec succès.
La possibilité d'assembler des morceaux de programmes existants sans avoir à les écrire ni même à les comprendre complètement permet aux développeurs de créer plus rapidement. et plus facile avec les connaissances qu'ils ne possèdent peut-être pas individuellement. Cela leur réserve du temps pour les parties les plus compliquées et personnalisées de leurs applications. Il permet également d’écrire des logiciels qui ne seraient pas possibles autrement. Un système dans lequel les développeurs peuvent exploiter davantage d'abstractions déjà existantes est un système offrant une plus grande évolutivité en matière d'abstraction.
Dans les environnements logiciels traditionnels (web2), les abstractions sont nombreuses. Des milliers d'outils et de bibliothèques populaires regorgent de programmes couramment utilisés que les développeurs peuvent parcourir et choisir. En bref, le Web2 bénéficie grandement de l'évolutivité des abstractions résultant de décennies d'activité des développeurs.
Évolutivité de l'abstraction dans le Web3
Le Web3 n'est pas entièrement dépourvu d'abstractions ; des éléments tels que le compilateur Solidity et Vyper, ainsi que des bibliothèques, des outils, des SDK et d'autres ressources pour les développeurs en sont tous des exemples. Mais en tant qu'écosystème relativement naissant, le Web3 ne dispose pas de la vaste gamme d'abstractions que l'on trouve dans les environnements de développement plus établis.
Les développeurs Web3 d'aujourd'hui testent et itèrent encore largement dans des environnements d'exécution sur mesure sans bénéficier d'abstractions bien établies. En conséquence, ils construisent souvent « à partir de zéro », un processus qui aboutit aujourd’hui globalement à un développement de logiciels moins évolutif. Le logiciel Web3 est plus limité, moins sûr, ainsi que plus lent à écrire et à exécuter lorsque l'évolutivité de l'abstraction est manquante.
Mise à l'échelle des abstractions
La mise à l'échelle de l'abstraction se produit en exploitant des outils matures et des bibliothèques de codes. , permettant aux développeurs de puiser dans des décennies de travaux antérieurs. Le résultat est une capacité accrue des applications à être plus complexes et plus expressives. De plus, l'évolutivité de l'abstraction améliore les performances et la sécurité, permettant aux développeurs de choisir parmi des programmes qui ont été suffisamment testés et affinés.
L'évolutivité de l'abstraction n'est pas souvent envisagée jusqu'à ce qu'un développeur soit confronté à son absence. Le Web3 en est encore à ses débuts et les développeurs d’aujourd’hui progressent sans bénéficier pleinement des abstractions. À mesure que l'écosystème Web3 se développe et que les développeurs contribuent de plus en plus d'abstractions, nous pouvons anticiper une augmentation de la complexité, de l'efficacité, de la sécurité et du volume des applications Web3.
Auteur :
< a href="https://twitter.com/GCdePaula_" rel="noopener noreferrer" target="_blank">Gabriel Coutinho de Paula est un contributeur du Cartesi, en construisant ses technologies et son infrastructure de base. Il a rejoint le projet à temps partiel en 2020, et à temps plein en 2021 après avoir soutenu son mémoire de maîtrise en langages de programmation. Il dirige le développement du système sans faille de Cartesi, basé sur la technique des tournois arbitrés sans autorisation, écrivant à la fois des composants en chaîne comme les contrats intelligents et des composants hors chaîne comme le nœud de validation.