Von Front-End-JavaScript-Innovationen bis hin zu APIs als Service - die wichtigsten Trends bei Tools, Technologien und der Cloud machen die aktuelle Ära der Software-Entwicklung zu einer spannenden Zeit. [...]
Nachdem wir eine Pandemie überstanden haben, die die Form der globalen Gesellschaft grundlegend verändert hat, befinden wir uns in der Mitte des Jahres 2022. Eine der bemerkenswertesten Veränderungen der letzten zwei Jahre war, wie sehr wir uns auf die digitale Infrastruktur verlassen haben, die aus der Not heraus entstanden ist. Das System hat sich bewundernswert bewährt, selbst als die Menschen, die es instand hielten, darum kämpften, neue Arbeitsweisen zu entwickeln.
Wir haben gelernt, dass das Internet alles bieten kann, von persönlicher Schutzausrüstung bis zu virtuellen Hochzeiten. Als es kaum noch etwas Beruhigendes gab, zogen sich viele von uns immer tiefer in ihre digitalen Kokons zurück. Als die Internetnutzung in die Höhe schoss, entdeckten wir neue Schwachstellen und verbesserungswürdige Bereiche.
Jetzt gibt es eine neue Welle von Technologien, die das Online-Erlebnis verbessern und ausbauen. Werfen wir einen Blick auf die Trends, die bei den aktuellen Bemühungen um eine Neugestaltung des Internets, wie wir es kennen, eine Rolle spielen.
Mit Spaß und Profit programmieren
Sie können fast jeden Softwareentwickler fragen, ob das Programm, das er gerade fertig entwickelt hat, gut genug ist, und er wird sagen, dass es noch besser sein könnte. Das ist vergleichbar mit der Art und Weise, wie ein Musiker schließlich ein Album veröffentlicht, obwohl er es noch nicht für fertig hält. Oder, wie John Lennon einmal über das zeitlose Schaffen der Beatles sagte: „Es gibt kein einziges Lied, das ich nicht gerne noch einmal aufnehmen würde.“
Daraus lässt sich eine der Hauptmotivationen für die kontinuierliche Verbesserung ableiten: Software-Ingenieure werden von etwas geleitet, das dem künstlerischen Geist ähnelt, einem unbändigen Drang, etwas Hervorragendes zu schaffen. Wir sagen oft, es ginge nur um die Lesbarkeit und Wartbarkeit des Codes. In Wahrheit sind viele von uns auch durch den angeborenen Wunsch motiviert, etwas von inhärentem Wert zu schaffen.
Natürlich ist Spitzenleistung nicht der einzige Motivator. Profit ist ein weiterer Faktor. Wenn ein Geistesblitz zuschlägt, können die finanziellen Vorteile erstaunlich sein, auch wenn die Chancen für Innovatoren schlecht stehen. Obwohl es bekanntermaßen schwierig ist, die Denkweise eines Programmierers mit dem Geschäftssinn zu vereinen, kann die Zusammenführung der beiden möglicherweise den Geistesblitz einfangen.
Trends in der Software-Entwicklung verbinden sich
Wenn diese starken motivierenden Kräfte im Schmelztiegel der Industrie ihre Wirkung entfalten, entsteht eine sich rasch verändernde Entwicklungslandschaft. Werfen wir einen Blick auf einige der einflussreichsten Trends in der Softwareentwicklung und wie sie jetzt aufeinandertreffen.
Cloud-Einführung und hochrangige Infrastruktur
Es ist unbestreitbar, dass die Ausgaben für die Cloud weiter steigen. Tatsächlich haben die Cloud-Ausgaben kürzlich die Hälfte aller IT-Ausgaben überschritten. Der Grund dafür ist einfach: Virtualisierte Infrastrukturen und Tools bieten eine flexiblere Lösung für viele Anforderungen. Faszinierend ist, wie sich die Cloud-Nutzung weiterentwickelt.
Die Idee von in der Cloud gehosteten, dynamischen virtuellen Maschinen (auch bekannt als Infrastructure as a Service oder IaaS) war überzeugend, aber sie erwies sich als erste Skizze auf einer sich entwickelnden Leinwand. PaaS und serverlose Funktionen sind die logischen nächsten Schritte. Wir beobachten auch eine Diversifizierung und Spezialisierung von Lösungen – eine vertikale und horizontale Entwicklung.
Virtualisierte Infrastrukturen ermöglichen innovativen Marktteilnehmern die Entwicklung höherwertiger Lösungen. Die Akteure in diesem Bereich lassen sich in zwei große Gruppen einteilen: API-Hoster und API-Anbieter.
Serverlose Implementierungen und API-Anbieter
Dienste wie Vercel und Netlify sind zwei gute Beispiele für moderne API-Hoster. Sie stellen eine Art serverlose Infrastruktur dar, die auf den IaaS- und PaaS-Ebenen aufsetzt. Außerdem stellen sie eine Spezialisierung dieser Infrastruktur dar, die auf ein bestimmtes Spektrum von Anwendungsfällen ausgerichtet ist.
Jeder, der schon einmal vor dem Dashboard von Vercel gesessen und eine komplexe Front-End-Anwendung mit nur einem Knopfdruck implementiert hat, weiß, was ich meine: Vercel ist serverlos plus. Das heißt, es ist Serverless, das so verfeinert und nutzbar gemacht wurde, dass es einen konkreten Bedarf erfüllt.
Ein gutes Beispiel für einen modernen API-Anbieter ist MongoDB Atlas. Dabei handelt es sich um eine API, die in erster Linie Datenpersistenz bietet. Im Kern ist MongoDB Atlas eine per Fernzugriff verfügbare API als Service. Dienste wie Sentry.io und Auth0 sind ähnlich.
Der Schlüssel liegt darin, dass diese Lösungen, wie Vercel für das Hosting, ein hohes Maß an Abstraktion bieten – viel Leistung mit wenig Arbeit – und auf eine bestimmte Gruppe von Anforderungen zugeschnitten sind. Sie bauen auf der modernen virtuellen Ebene auf. Die Bereitstellung von Datenspeichern in einer virtuellen Infrastruktur ist das traditionelle Modell, das lediglich in die Cloud verlagert wurde. Die Verwendung von MongoDB Atlas ist eher so, als hätte man einen spezialisierten Datenspeicherpartner, der sich darum kümmert, dass das, was man hat, leichter in das integriert werden kann, was man braucht.
Eine weitere interessante Beobachtung über erfolgreiche Tools in diesem Bereich ist, dass sie in der Regel drei Aspekte aufweisen: eine API, mit der sich Anwendungen verbinden, Unterstützung für die Integration in den Code und eine webbasierte Verwaltungskonsole.
Und was ist mit API-Erstellern?
Wir können also feststellen, dass die Ära der Cloud-Plattformen den Weg für etwas Neues geebnet hat, aber es ist schwierig, genau vorherzusagen, was. Es ist ein Prozess der Erkundung, wo die Bedürfnisse der Nutzer – die oft nicht einmal ihnen selbst bekannt sind – auf neuartige Weise auf die in diesen neuen Tools enthaltenen Möglichkeiten treffen.
Interessanterweise ist die Welt der API-Erstellung vergleichsweise unverändert geblieben. Es gab zwar schrittweise Verbesserungen, aber nichts, was mit den Umwälzungen beim Hosting und bei der Bereitstellung zu vergleichen wäre. Eine Bewegung, die die Tätigkeit der API-Erstellung mit den Leistungen von Hostern und Providern vereint, wird einen Umbruch mit vielen Möglichkeiten darstellen.
Betrachten wir als Nächstes einige der Bereiche, in denen sich die Softwareentwicklung aktiv weiterentwickelt.
Front-End-Tools und Frameworks
Am Frontend, wo die Magie der APIs von Drittanbietern und die Backend-Logik ihren Ausdruck in Mensch und Maschine finden, entwickelt sich JavaScript kontinuierlich weiter.
In der Zwischenzeit erleben die auf JavaScript aufbauenden Frameworks eine ungezügelte natürliche Selektion durch intensiven Wettbewerb. Projekte wie Solid, Svelte und Qwik treiben die Entwicklung in verschiedene Richtungen voran, während etablierte reaktive Frameworks wie React und Vue weiter wachsen.
Es ist sehr selten, dass man in einem einzigen Softwarebereich eine so intensive Iteration und gegenseitige Bereicherung sieht.
Maßgeschneiderte Middleware
Ein Großteil der Arbeit in der Cloud besteht in der Integration bestehender Tools und der Zusammenführung von APIs, was immer einen gewissen Anteil an individueller Arbeit auf Middleware-Ebene erfordert. Das liegt daran, dass der eigentliche Zweck jeder Automatisierung darin besteht, die sich ändernden Bedürfnisse der Menschen zu erfüllen.
Serverseitige Sprachen wie Rust und Frameworks wie JHipster sind interessante Entwicklungen, aber insgesamt ist der gesamte Sektor im Wandel. Wie das Frontend wartet auch das Backend auf eine gründlichere Evolution.
Bestehende Lösungen wie Java, Node.js und Python (und die dazugehörigen Frameworks) sind alle gut an die Umgebung angepasst und entwickeln sich ständig weiter, um den Anforderungen der Praxis gerecht zu werden. Ich glaube, dass sie auch in Zukunft ein wichtiges Tätigkeitsfeld bleiben werden. Genauso wie IaaS weiterhin eine wichtige Schicht bei Serverless ist, wird Middleware-Code auf absehbare Zeit wichtig sein.
Low-Code und maschinelles Lernen mögen mit menschlichen Entwicklern zu konkurrieren drohen, werden sich aber letztlich als weitere Werkzeuge im Werkzeugkasten des Entwicklers erweisen. Ein hervorragendes Beispiel für innovativen Low-Code-Gedanken ist Builder. Um zu sehen, wie maschinelles Lernen bei der Programmierung helfen kann, können wir zum Beispiel einen Blick auf GitHub Copilot werfen.
Entkoppelte Architekturen, sprich Microservices
Als Nächstes wird die Verlagerung zu dezentral entkoppelten Architekturen, auch bekannt als Microservices, weiter zunehmen und besser verstanden werden. Das Paradigma der monolithischen Architektur war eindeutig nicht in der Lage, das der Cloud innewohnende Potenzial voll auszuschöpfen.
Die Alternative, die Microservices-Architektur, bedeutet, dass man eine Devops-Last schultern muss, die alles andere als trivial ist. Microservices ermöglichen die Skalierung von Prozessen und erhöhen gleichzeitig die Komplexität.
Alle Innovationen, die neue Technologierichtungen wie APIs als Service, Front-End-Evolution und benutzerdefinierte Middleware einbeziehen wollen, müssen ebenfalls die Komplexität der Microservices-Architektur berücksichtigen.
Prozessautomatisierung
Die Prozessautomatisierung, d. h. die Koordinierung der Prozesse, die Teams für die Erstellung und Bereitstellung von Software verwenden, wird immer wichtiger, da sie Best Practices bündeln und bereitstellen kann. In diesem Bereich liegt der Schwerpunkt auf maßgeschneiderten Lösungen.
Jedes Unternehmen ist einzigartig, daher ist es von großem Wert, das, was in großen Unternehmen wie Google und Microsoft gut funktioniert, zu destillieren und in Lösungen zusammenzufassen, die für Teams aller Größen und Arten geeignet sind.
Die vielen CI/CD-Lösungen, Build- und Dependency-Management-Tools und Test-Frameworks sind Beispiele dafür, wie sich Prozessautomatisierungs-Tools auf die Aktivitäten von Entwicklern ausrichten. Versionskontrolle und verwandte Dienste wie GitHub fallen ebenfalls in diese Kategorie.
Prozessautomatisierung ist ein weiterer wichtiger Bereich, der in der Zukunft der Software eine wichtige Rolle spielen wird.
Die neue Entwicklerwelt
Wie im Diagramm zu Beginn dieses Artikels dargestellt, ist jeder dieser Trends in der Softwareentwicklung ein Motor des Wandels. Gemeinsam weisen sie auf eine überzeugende, aber noch nicht manifestierte neue Art von Entwicklererlebnis hin. Wir können sehen, welche Kräfte im Spiel sind und wie sie sich bewegen, aber die Zukunft ist noch nicht klar. Es ist eine aufregende Zeit für Softwareentwickler.
*Matthew Tyson ist Mitbegründer der Dark Horse Group, Inc. Er glaubt an Technologie, bei der der Mensch an erster Stelle steht. Wenn er nicht gerade Gitarre spielt, erkundet Matt das Hinterland und die philosophischen Gefilde. Er schreibt seit 2007 für JavaWorld.
Be the first to comment