Was ist Abstraktionsskalierbarkeit?
Abstraktionsskalierbarkeit ist die Erweiterung der Gesamtfähigkeit eines Systems, die es ermöglicht, Programmierkomponenten als Bausteine in einer neuen Entwicklungsumgebung zu verwenden. Es erhöht die Anzahl wichtiger Vorgänge, die ein Entwickler ausführen kann, ohne sie neu erstellen zu müssen.“
Wenn es um die Skalierbarkeit eines Programms geht oder network dreht sich die Diskussion oft um die Skalierbarkeit der Berechnungen – oder die Fähigkeit dieses Protokolls, hohe Durchsatz oder komplexe Transaktionen. Es gibt jedoch eine andere Kategorie der Skalierbarkeit, die nicht ganz so quantifizierbar, aber genauso entscheidend ist: Abstraktionsskalierbarkeit.
Im Kern bezieht sich Abstraktionsskalierbarkeit auf die Fähigkeit von Entwicklern, Anwendungen durch Referenzieren und Wiederverwenden vorheriger Anwendungen zu erstellen Arbeit anderer Entwickler. Kurz gesagt geht es bei der Abstraktionsskalierbarkeit darum, Entwickler nicht dazu zu zwingen, „das Rad neu zu erfinden“.
In der heutigen Software wird Abstraktion als ein vielschichtiges Ökosystem aus Bibliotheken, Tools, Betriebssystemen, Compilern, Interpretern und vielen anderen Komponenten erlebt, von denen jede das zugrunde liegende System abstrahiert.
Entwickler profitieren von der Abstraktion durch Gruppierung bestehende Programme zusammen, sodass sie als Bausteine für komplexere Anwendungen dienen können . Entwickler müssen diese Abstraktionen nicht nur nicht selbst schreiben, sie müssen auch nicht unbedingt ihr Innenleben verstehen. Sie können bestimmte Abstraktionen mit der Gewissheit nutzen, dass sie von Tausenden anderen Entwicklern erfolgreich verwendet wurden.
Die Möglichkeit, vorhandene Programmteile zusammenzustellen, ohne sie schreiben oder sie vollständig verstehen zu müssen, ermöglicht es Entwicklern, schneller zu erstellen und einfacher mit dem Wissen, das sie einzeln möglicherweise nicht besitzen. Dadurch bleibt ihnen Zeit für die komplizierteren und individuelleren Teile ihrer Anwendungen. Es ermöglicht auch das Schreiben von Software, die sonst nicht möglich wäre. Ein System, bei dem Entwickler mehr bereits vorhandene Abstraktionen nutzen können, ist ein System mit größerer Abstraktionsskalierbarkeit.
In herkömmlichen Softwareumgebungen (web2) gibt es zahlreiche Abstraktionen. Tausende beliebte Tools und Bibliotheken sind mit häufig verwendeten Programmen gefüllt, die Entwickler durchsuchen und auswählen können. Kurz gesagt, web2 profitiert stark von der Abstraktionsskalierbarkeit, die sich aus jahrzehntelanger Entwickleraktivität ergibt.
Abstraktionsskalierbarkeit in Web3
Web3 ist nicht völlig frei von Abstraktionen; Beispiele dafür sind Dinge wie der Solidity- und Vyper-Compiler sowie Bibliotheken, Tools, SDKs und andere Entwicklerressourcen. Aber als vergleichsweise junges Ökosystem fehlt Web3 die große Bandbreite an Abstraktionen, die in etablierteren Entwicklungsumgebungen zu finden sind.
Web3-Entwickler testen und iterieren heute noch weitgehend in maßgeschneiderten Ausführungsumgebungen, ohne die Vorteile etablierter Abstraktionen zu nutzen. Daher bauen sie oft „von Grund auf neu“, ein Prozess, der heute insgesamt zu einer weniger skalierbaren Softwareentwicklung führt. Web3-Software ist eingeschränkter, weniger sicher und langsamer zu schreiben und auszuführen, wenn die Skalierbarkeit der Abstraktion fehlt.
Abstraktionen skalieren
Abstraktionsskalierung erfolgt durch die Nutzung ausgereifter Tools und Codebibliotheken Dadurch können Entwickler auf jahrzehntelange frühere Arbeit zurückgreifen. Das Ergebnis ist eine größere Fähigkeit, Anwendungen komplexer und ausdrucksvoller zu gestalten. Darüber hinaus verbessert die Abstraktionsskalierbarkeit die Leistung und Sicherheit, sodass Entwickler aus Programmen wählen können, die ausreichend kampferprobt und verfeinert wurden.
Abstraktionsskalierbarkeit wird oft erst in Betracht gezogen, wenn ein Entwickler mit deren Fehlen konfrontiert wird. Web3 steckt noch in den Kinderschuhen und Entwickler kommen heute noch ohne den vollen Nutzen von Abstraktionen aus. Da das Web3-Ökosystem wächst und Entwickler immer mehr Abstraktionen beisteuern, können wir mit einem Anstieg der Komplexität, Effizienz, Sicherheit und des schieren Volumens von Web3-Anwendungen rechnen.
Autor:
< a href="https://twitter.com/GCdePaula_" rel="noopener noreferrer" target="_blank">Gabriel Coutinho de Paula ist ein Mitwirkender der Cartesi-Ökosystem, Aufbau seiner Kerntechnologien und Infrastruktur. Er trat dem Projekt im Jahr 2020 in Teilzeit und im Jahr 2021 in Vollzeit bei, nachdem er seine Masterarbeit in Programmiersprachen verteidigt hatte. Er leitet die Entwicklung des fehlersicheren Systems von Cartesis, das auf der Technik erlaubnisloser Schiedsrichterturniere basiert, und schreibt sowohl On-Chain-Komponenten wie Smart Contracts als auch Off-Chain-Komponenten wie den Validator Node.