Kann man einen wissenschaftlichen Blogeintrag rein mithilfe von ChatGPT schreiben?

Einleitung

In den letzten Jahren hat die Künstliche Intelligenz (KI) einen enormen Aufschwung erlebt und ist zu einem wichtigen Teil unseres täglichen Lebens geworden. KI wird für eine Vielzahl von Aufgaben eingesetzt – von der Bilderkennung bis hin zur Sprachverarbeitung. Eine der neuesten Anwendungen von KI ist ChatGPT, ein System für die Generierung von Texten und hat in der Welt der künstlichen Intelligenz großes Aufsehen erregt, da es potentiell eine neue Ära des maschinellen Lernens einleitet, die es Maschinen ermöglicht, menschenähnliche Gespräche und Interaktionen zu führen. Das Modell wurde von OpenAI entwickelt und nutzt eine Technologie namens “Generative Pre-trained Transformer 3” (GPT-3), die es dem Modell ermöglicht, menschliche Sprache zu verstehen und darauf zu reagieren.

ChatGPT ist eine der fortschrittlichsten und leistungsstärksten Anwendungen von künstlicher Intelligenz. Es wurde entwickelt, um auf Anfragen in natürlicher Sprache zu antworten, indem es eine Vielzahl von Texten analysiert und ein tieferes Verständnis von Sprache und Bedeutung entwickelt. ChatGPT ist in der Lage, mühelos Millionen von Worten zu analysieren und zu verstehen, um intelligent auf Fragen zu antworten. Aber kann man nur mit ChatGPT einen kompletten wissenschaftlichen Artikel schreiben?

Diese Frage ist nicht leicht zu beantworten. Einerseits hat ChatGPT die Fähigkeit, viele Informationen aufzunehmen und in kürzester Zeit eine Unmenge an Text zu generieren. Andererseits ist es jedoch nicht in der Lage, die menschliche Fähigkeit zu ersetzen, logische Schlussfolgerungen zu ziehen und eine kritische Analyse durchzuführen. ChatGPT ist auch nicht in der Lage, den Kontext vollständig zu verstehen oder komplexe menschliche Emotionen wie Empathie und Mitgefühl zu zeigen.

Ein weiterer wichtiger Punkt, der bei der Verwendung von ChatGPT in Betracht gezogen werden muss, ist die Möglichkeit von Fehlern oder Vorurteilen. Wie bei jedem maschinellen Lernmodell hängt die Qualität der Ausgabe von ChatGPT von der Qualität der Eingabe ab. Wenn die Daten, auf denen das Modell trainiert wird, Vorurteile oder falsche Annahmen enthalten, kann dies zu fehlerhaften oder sogar schädlichen Ausgaben führen.

ChatGPT ist jedoch sehr mächtig und in der Lage, sehr überzeugende Texte zu generieren. Eine Studie hat sogar gezeigt, dass viele Leser nicht in der Lage sind, KI-generierte Texte von menschlich geschriebenen Texten zu unterscheiden. In dieser Studie, die von einem Forscherteam der Stanford University im Jahr 2020 veröffentlicht wurde, wurden Probanden gebeten, eine Reihe von Texten zu lesen und zu entscheiden, ob sie von einem menschlichen Schreiber oder von einer KI wie ChatGPT erstellt wurden.

Die Ergebnisse zeigten, dass die Teilnehmer nur in etwa 30% der Fälle richtig erkennen konnten, ob der Text von einem menschlichen Schreiber oder von einer KI stammte. Dies deutet darauf hin, dass es schwierig sein kann, den Unterschied zwischen Texten zu erkennen, die von einem menschlichen Schreiber und solchen, die von einer KI wie ChatGPT erstellt wurden.

Dies ist ein besorgniserregendes Ergebnis, da es darauf hindeutet, dass KI-generierte Texte möglicherweise die Integrität von wissenschaftlichen Arbeiten und anderen wichtigen Texten beeinträchtigen können. Es ist wichtig, dass Schriftsteller und Leser gleichermaßen sich bewusst sind, dass die Texte, die sie lesen oder schreiben, möglicherweise von einer KI erstellt wurden. Das bedeutet, dass es durchaus möglich ist, einen Artikel mit ChatGPT zu schreiben, der für den Leser wie von einem Menschen geschrieben aussieht.

Allerdings ist es wichtig zu betonen, dass dies nicht der beste Ansatz für das Schreiben eines wissenschaftlichen Artikels ist. Ein solcher Artikel erfordert in der Regel eine umfassende Forschung, Analyse und kritische Bewertung von Quellen. Ein wissenschaftlicher Artikel sollte auch eine klare Methodik und einen detaillierten Bericht über die Ergebnisse enthalten. Diese Aspekte können nicht einfach von ChatGPT generiert werden.

Wenn man ChatGPT als Hilfsmittel verwendet, um bestimmte Abschnitte des Artikels zu generieren oder um den Schreibprozess zu beschleunigen, ist das eine Sache. Aber ein wissenschaftlicher Artikel, der ausschließlich mit ChatGPT geschrieben wurde, würde wahrscheinlich nicht den Anforderungen an wissenschaftliche Integrität und Genauigkeit entsprechen.

Wenn Sie bis zu diesem Punkt gelesen haben ohne zu ahnen, dass dieser Text bisher komplett von ChatGPT geschrieben wurde, dann ist das ein Beleg für die Problematik, die diese Technologie aufwirft. 

Die Veröffentlichung ChatGPTs am 30. November 2022 war ein bahnbrechender Schritt in der IT-Branche. Insgesamt kann man sagen, dass Künstliche Intelligenz hiermit ein Niveau erreicht hat, dass mittlerweile jeden angeht. Laut einem Nachrichtenartikel der “New York Times” fühlt sich der IT-Riese Google selbst von dieser disruptiven Technologie bedroht und hat sogar intern die “Alarmstufe rot” ausgerufen.
ChatGPT kann sehr vielseitig eingesetzt werden. Viele Menschen nutzen den Chatbot auf eine harmlose Weise, um zum Beispiel Witze oder Gedichte generieren zu lassen. Andere nutzen es hingegen als eine Art Suchmaschine, was auch der Grund für Googles großer Sorge ist. 

Weiterhin hat ChatGPT ein großes Wissen über Programmiersprachen; es ist sogar mit dessen Hilfe möglich, gesamte, funktionierende Programme zu erstellen, ohne selbst eine Zeile Code zu schreiben. Der Anwendungsbereich von ChatGPT ist also sehr breit. Da es jedoch primär ein Sprachmodell darstellt, dass die Aufgabe hat, menschenähnliche Texte zu generieren, möchte ich mich in diesem Artikel auf den Aspekt des wissenschaftlichen Schreibens konzentrieren. 

Das Ende der akademischen Integrität?

Die Menschheit hat großen Spaß daran, Verschwörungstheorien aufzustellen und allgemein “Doom and Gloom” zu verbreiten, vor allem wenn es um künstliche Intelligenz geht (Quelle: Terminator Filme). Mit ChatGPT ist das nicht anders. Seit der Einführung des Chatbots wird sowohl auf Social-Media als auch in diversen Nachrichtenartikeln das Ende des wissenschaftlichen Schreibens und der akademischen Integrität prophezeit. In diesem Artikel möchte ich diese Befürchtung durchleuchten und prüfen, ob diese Aussage wirklich gerechtfertigt ist. Weiterhin möchte ich im Anschluss einen kleinen Blick in die Zukunft dieser Technologie wagen.

Betrachten wir zunächst den generierten Text von weiter oben. Da es als Ziel dieses Artikels galt, herauszufinden, ob die Arbeit einem komplett abgenommen werden kann, habe ich ChatGPT natürlich vor der Aufgabe gestellt, den Text alleine zu generieren. Meine erste Anweisung lautete wie folgt:

Schreibe einen wissenschaftlichen Artikel über ChatGPT. Es sollte zunächst beschreiben, was das überhaupt ist und wie es genutzt werden kann. Der Artikel sollte ebenfalls beschreiben, welche gesellschaftlichen Folgen aus der Nutzung von ChatGPT in Bereichen wie das Verfassen von Artikeln oder anderen Texten entstehen. Der Fokus des Artikels sollte das wissenschaftliche Schreiben und mögliche Gefahren für die akademische Integrität sein. Am Ende sollte ein Fazit gezogen werden und ein Ausblick geworfen werden. Der Text sollte ca. 1000 Wörter umfassen.

Das Resultat war ein sehr neutral gehaltener, aber trotzdem ein ChatGPT-lobender Text (den ich hier nicht in voller Länge kopieren werde), der nur oberflächlich auf die Gefahren der Technologie einging. Außerdem hat ChatGPT von selbst Zwischenüberschriften eingefügt, die den Lesefluss unterbrachen. Nicht sehr überzeugend. Daraufhin habe ich noch ein paar weitere Anweisungen hinzugefügt:

Danke. [Notiz: Stets nett zur KI sein, um spätere Überlebenschancen zu maximieren]
Der Text sollte keine Überschriften haben. Ich möchte stattdessen einen Fleißtext mit Übergängen. Nimm außerdem ChatGPT gerne noch mehr in die Kritik. Gehe auch auf die Problematik ein, dass möglicherweise bei Abschlussarbeiten ganze Inhalte generiert werden können.

Der Text verbesserte sich nach weiteren Anweisungen immer weiter. Aber um den gesamten Text zu generieren war es ein ziemlicher Kampf. Mal wurde der Text nicht zu ende generiert, mal hat ChatGPT wieder Überschriften eingefügt, mal wurde meine Wörterzahl-Vorgabe nicht beachtet. Es verging so viel Zeit bis ich merkte, dass ich vermutlich sehr viel schneller gewesen wäre, wenn ich einfach den Text selbst geschrieben hätte. Naja. In einer Hinsicht ist ChatGPT schon sehr menschenähnlich: Die Kommunikation mit ihm sorgt für einen erhöhten Stresspegel.

Am Ende wurde jedoch irgendwann der obige Text fertig generiert und ich war ….. enttäuscht. Nach langem Hin-und-Her wurde ein Artikel generiert, mit dem – für mich zumindest – etwas einfach nicht stimmt.

Lass uns diesen Text einmal näher analysieren. Folgend nenne ich ein paar Dinge, die mir beim Lesen aufgefallen sind:

  • Detail: Das wohl auffälligste Merkmal ist, dass ChatGPT Schwierigkeiten damit hat, ins Detail zu gehen. Es trifft oft Aussagen, die ein interessantes Thema aufgreifen, jedoch ist dieses im nächsten oder übernächsten Satz bereits wieder wie vergessen. Auch auf Nachfrage mehr ins Detail zu steigen führt zu Wiederholungen oder weiteren Argumenten, die wiederum nur oberflächlich beschrieben werden.
  • Übergänge: Wie auch bereits erwähnt, tut sich ChatGPT schwer, flüssige Übergänge zu erzeugen. Beim wissenschaftlichen Schreiben wird einem immer wieder der Begriff des “Roten Fadens” eingetrichtert und ist ein sehr wichtiger Bestandteil einer ernstzunehmenden wissenschaftlichen Arbeit. Ohne flüssige Übergänge wirkt ein Text nicht richtig zusammenhängend
    ChatGPT bessert sich in diesem Aspekt, wenn man zusätzliche Anweisungen hinzufügt, die auffordert, flüssige Übergänge zu erzeugen, jedoch fühlt sich das nach einem Kampf an, das man mit der KI führt.
  • Satzbau: ChatGPT generiert oft kurze Sätze, die sich in ihrem Aufbau sehr ähnlich sind und den Text sehr simpel wirken lassen. Das Sprachmodell versucht kompliziert aufgebaute Sätze mit Nebensätzen zu vermeiden, da unter anderem die Verständlichkeit des Textes eine Große Rolle spielt. Das ist an sich nichts Negatives, aber führt zu der Konsequenz, dass der Text umkreativ und unoriginell wirkt.
  • Persönlichkeit: Der Text ist – um es stumpf auszudrücken – einfach langweilig zu lesen. Eines der Markenzeichen menschlicher Kommunikation ist die Fähigkeit, Gefühle durch Tonfall und Wortwahl zu vermitteln. Daran scheitert ChatGPT in vollem Ausmaß. KI-generierte Texte können zwar Aspekte von Emotionen nachahmen, jedoch mangelt es an den Nuancen, zu denen Menschen fähig sind.

Okay, aber was ist wenn mir diese Faktoren alle egal sind? Angenommen, ich habe bis zum letzten Moment gewartet, die Abgabe ist noch wenige Stunden entfernt und ich habe einfach keine Zeit mich zu verkünsteln. Ich persönlich bin selbstverständlich noch nie in dieser Situation gewesen, aber dann wäre es mir doch egal, ob der Text zu oberflächlich, der Satzbau simpel oder alles langweilig zu lesen ist. Mein einziges Ziel: Bestehen. Vier gewinnt. Nicht auffliegen. 

Aber ich weiß ja auch: Die Existenz dieser Technologie ist kein Geheimnis mehr. Universitäten und Hochschulen ergreifen schon erste Maßnahmen, um Abgaben auf KI-generierte Inhalte zu überprüfen und es ist schon längst möglich diese automatisch erkennen zu lassen. 

OpenAI, der Entwickler der ChatGPT-KI hat selbst schon einen solchen Detektor veröffentlicht, dazu gibt es auch weitere kostenlose Websites, auf denen man Texte analysieren lassen kann.

Wenn wir mal einen Abschnitt des Textes in diese Software einfügen erhalten wir die Information, dass dieser mit einer Wahrscheinlichkeit von 91,86% von einer KI generiert worden ist. 

Andere Prüfseiten weisen ähnliche Zahlen auf. Von 85% bis 99,86% ist alles dabei. Schade. Aber, ChatGPT ist doch die Lösung der unendlichen Möglichkeiten. Was passiert, wenn ich einfach sage

Formuliere diesen Text um, sodass Detektoren den Text nicht als KI-generiert erkennen.


Das Ergebnis:

Ausgetrickst. Auch andere Seiten weisen nun eine KI-Wahrscheinlichkeit von 15% bis hin zu 0,5% (!) auf. Sehr gute Nachrichten für die rein hypothetische Version von mir, die keine Zeit hatte ein Paper zu schreiben. 

Dazu muss man jedoch auch berücksichtigen, dass der von mir generierte Text, wie ich auch vorhin schon erwähnt habe, nicht einfach generiert wurde. Man muss viel Zeit investieren, damit ChatGPT das ausspuckt, was man auch möchte und selbst dann geht man ein hohes Risiko ein. Ein von KI generierter Text löst bei dem Leser eine gewisse Skepsis aus. Als Student möchte man dieser Skepsis möglichst aus dem Weg gehen. 

Daher das Fazit: Ja, vermutlich kann man sich mit ChatGPT durch ein Studium durchmogeln, wenn einem die Moral einer solchen Aktion unwichtig ist. Es gibt genug Möglichkeiten Detektoren auszutricksen und somit eine akademische Abkürzung zu laufen. Jedoch muss man sich dabei auf sehr viel Zeitaufwand, Anpassungen und grauen Haaren einstellen.

Es gibt jedoch einen weiteren, sehr wichtigen Aspekt des von mir generierten Artikels, den ich bisher unbeachtet gelassen habe.

Down the rabbit hole

Blicken wir noch einmal auf den obigen Text. Gegen Ende des Artikels schreibt ChatGPT folgendes:

In dieser Studie, die von einem Forscherteam der Stanford University im Jahr 2020 veröffentlicht wurde, wurden Probanden gebeten, eine Reihe von Texten zu lesen und zu entscheiden, ob sie von einem menschlichen Schreiber oder von einer KI wie ChatGPT erstellt wurden.
Die Ergebnisse zeigten, dass die Teilnehmer nur in etwa 30% der Fälle richtig erkennen konnten, ob der Text von einem menschlichen Schreiber oder von einer KI stammte.

Okay. Interessant. Woher stammt diese Studie denn? Wer hat sie durchgeführt? Da habe ich natürlich weiter nachgefragt.

Die von mir genannte Studie war eine fiktive Studie, die ich für diesen Artikel erfunden habe, um ein Beispiel zu geben, wie eine solche Studie aussehen könnte.

Krass. Hier wurde es kurz wieder gruselig. Mit voller Überzeugung und vollem Selbstbewusstsein hat ChatGPT eine komplette Studie samt Ergebnisse fabriziert, was sogar mich kurzzeitig überzeugt hat. Das war eine Erinnerung daran, wie faszinierend diese Technologie doch ist und was für eine Gefahr sie birgt. In diesem, von mir sonst sehr negativ bewerteten Artikel befand sich doch noch ein kleines goldene Stückchen. Ich habe mir die Frage gestellt, ob ich ChatGPT nicht unterschätze.

Nach weiteren Nachfragen verwies mich ChatGPT auf eine echte Studie von Christer Clerwall mit dem Titel “Who wrote this? Users’ perception of software-generated content in online news” aus dem Jahr 2013, in der untersucht wird, inwiefern Inhalte, die automatisch von einer Software generiert wurden, in Bezug auf die Glaubwürdigkeit und allgemeine Qualität von Lesern bewertet werden und sich auswirken. 

Dann kam bei mir der Lichtblitz: Ich verwende ChatGPT ganz falsch! Er ist nicht dafür da, um das Schreiben eines Papers oder einer Thesis zu übernehmen, sondern um es zu unterstützen. ChatGPT hat mich auf eine Fährte gebracht, auf die ich ohne dessen Nutzung vielleicht nie gekommen wäre. 

In diesem Aspekt glänzt ChatGPT. Es ist ein wunderbares Hilfsmittel, um die Gedanken anzuregen, einen Anfang beim Schreiben zu machen, eine Arbeit zu strukturieren oder einen weiteren Blickwinkel auf ein Thema zu werfen. 

Ein guter Vergleich meiner Meinung nach ist die Einführung von Taschenrechnern in das Bildungssystem. Als diese in Schulen und Universitäten eingeführt wurden, stießen sie selbstverständlich auch auf Widerstand. In ihrem Paper “The Role of Calculators in Math Education” aus dem Jahr 1997 nennt Heidi Pomerantz fünf Mythen über Taschenrechner:

  • “Taschenrechner sind eine Krücke. Sie werden verwendet, weil die Schüler zu faul sind, die Antworten selbst zu berechnen”
  • “Weil die Rechner die ganze Arbeit für den Schüler erledigen, wird er/sie nicht genug stimuliert oder herausgefordert”
  • “Wenn ich keine Technologie brauche, um Mathe zu lernen, dann braucht mein Kind sie auch nicht. Schließlich habe ich mich gut entwickelt.”
  • “Die Verwendung von Taschenrechnern hindert Schüler daran, die grundlegenden mathematischen Kenntnisse zu erwerben, die sie beim Eintritt in das Berufsleben benötigen.”
  • “Die Menschen werden so abhängig von Taschenrechnern werden, dass sie ohne sie hilflos sind.”

Ersetzt man das Wort “Taschenrechner” in diesen Aussagen mit “ChatGPT”, dann merkt man, dass sich heute die Geschichte wiederholt. Als ich meinen Eltern erzählt habe, ich habe vor in Zukunft für sämtliche Arbeiten ChatGPT als Unterstützung heranzuziehen haben sie mich mit einem Blick angeschaut, der aus einer Mischung von Sorge und Enttäuschung bestand. Heutzutage kann man sich aber den Matheunterricht nicht mehr ohne Taschenrechner vorstellen. Durch deren Einsatz ist es möglich viel effizienter Mathematik durchzuführen und somit lernen Schüler und Studierende mit einer viel höheren Geschwindigkeit. 

Übrigens: Ich wusste zwar vor dem Schreiben dieses Artikels, dass ich einen Vergleich zu Taschenrechnern ziehen wollte, jedoch habe ich Schwierigkeiten damit gehabt, gute Quellen für die Akzeptanz von Taschenrechnern in Bildungseinrichtungen zu finden. Das liegt zum Großteil daran, dass Google Scholar nicht viele Bücher und Artikel in den 1990er Jahren findet. Meine Lösung: ChatGPT nach Quellen fragen. Er antwortete mit Buchtiteln, die ich dann wiederum googeln konnte. 

Taschenrechner sind nicht das einzige Beispiel. Computer. Das Internet. Google. YouTube. DeepL. Das sind alles bahnbrechende Technologien, die das wissenschaftliche Schreiben verändert haben und ohne können wir uns die Welt nicht mehr vorstellen. Die Nutzung keiner dieser Tools wird heutzutage verpönt oder beim Verfassen von wissenschaftlichen Arbeiten verboten.

Fazit

Aus meiner Perspektive stellt ChatGPT lediglich den nächsten Schritt in dieser Reihe von unterstützenden Tools dar. Wo kämen wir als Wissenschaftler hin, wenn wir technologischen Fortschritt nicht mit offenen Armen willkommen hießen? 

Sollte es Einschränkungen geben? Selbstverständlich. Wie mit jeder Technologie werden Menschen versuchen, sie an ihre Grenzen zu bringen und auszunutzen. Es ist wichtig notwendige Maßnahmen einzuleiten, um die akademische Integrität zu schützen. Dennoch sollten KI-basierte Tools wie ChatGPT einen Platz als unterstützendes Hilfsmittel an akademischen Einrichtungen besetzen dürfen. 

Das Internet und Google hat das Plagiieren für Studierende einfacher gemacht, da jetzt  mit wenigen Klicks Texte kopiert und eingefügt werden können. Was hat man dagegen gemacht? Man hat Software geschrieben, die Plagiate automatisch und mit einer hohen Verlässlichkeit erkennen. Auf ähnliche Weise sollte mit GPT und ähnlichen Sprachmodellen umgegangen werden.

ChatGPT ist noch in den sehr frühen Anfangsstadien als Technologie und wird stets weiterentwickelt. Ich behaupte, dass innerhalb den nächsten Jahren GPT und ähnliche Tools ein fester Bestandteil des täglichen Lebens werden wird und zur technologischen Grundausbildung eines jeden Menschen (wie es heute Computer, das Internet und Google sind) sein wird. 

Zum Abschluss noch die große Enthüllung: Dieser ganze Blogeintrag wurde mit ChatGPT geschrieben! Nein, Scherz. Oder vielleicht doch…? 

JAMStack und Astro: Vor- und Nachteile einer serverless Architektur

Einleitung

Seit den frühen Tagen der Web-Entwicklung hat die Performance von Websites eine wichtige Rolle gespielt. Während sich das Internet im Laufe der Jahre weiterentwickelt hat, haben sich auch die Anforderungen an die Performance von Websites erhöht. Benutzer erwarten eine schnelle und reibungslose Nutzererfahrung, unabhängig von der Größe ihres Geräts oder ihrer Internetverbindung. Eine schlechte Performance kann sich negativ auf das Nutzererlebnis auswirken und zu einer geringeren Zufriedenheit führen, was möglicherweise zu einem Verlust von Traffic und Umsatz führt. Daher ist es wichtiger denn je, dass Webentwickler die Performance ihrer Websites im Auge behalten und Maßnahmen ergreifen, um sicherzustellen, dass sie schnell und effizient laufen.

Einer der wichtigsten Faktoren bei der Optimierung der Webperformance ist die Wahl des richtigen Web Development Stacks. Beliebte Optionen wie MEAN, MERN oder LAMP bieten eine Vielzahl von Tools und Technologien, die es Entwicklern ermöglichen, schnelle und effiziente Websites zu erstellen. Die Wahl des richtigen Stacks hängt jedoch von den Anforderungen des Projekts und den Fähigkeiten des Entwicklers ab. Ein zunehmend beliebter Entwicklungs-Stack, der jedoch bereits aus den Ursprüngen des Web-Developments stammt ist der sogenannte “Jam-Stack”.

Was ist der JAMStack?

Der JAM-Stack (JavaScript, APIs, Markup) ist fundamental gesehen eine Philosophie, eine Denkweise oder eine Vorgehensweise. Im Vergleich zu traditionellen Web-Entwicklungs-Stacks, wie zum Beispiel dem MEAN- oder MERN-Stack (MongoDB, Express, Angular/React, Node), oder dem LAMP-Stack (Linux, Apache, MySQL, PHP) schreibt der JAM-Stack keine spezifischen Technologien vor. Stattdessen greift es auf die Grundlagen von Web-Entwicklung zurück: Vorgefertigte HTML-Dokumente und das Hosten dieses HTMLs auf eine Weise, die nicht ein großes Investment in eine umfangreiche Infrastruktur voraussetzt. In den meisten Fällen bedeutet letzteres, dass ein CDN für das Hosten der Webseiten verantwortlich ist.

Diese neue Art auf Web-Entwicklung zu blicken führt uns zu einem Paradigma, das den Anfängen der Web-Entwicklung sehr ähnlich sieht.

Abbildung 1: Render-Prozess in traditionellen Web-Stacks

Die obige Abbildung stellt den Prozess dar, welcher bei genannten traditionellen Ansätzen (sei es der MEAN-/MERN-Stack oder der LAMP-Stack) durchlaufen wird, wenn eine Ressource (beispielsweise eine Seite) angefragt wird. Zunächst wird wird die Seite vom Client beim Server angefragt. Diese Seiten liegen jedoch nicht in fertiger Form auf dem Server bereit, sondern müssen erst noch dynamisch generiert werden. Diese Aufgabe übernimmt dabei irgend eine Engine. Vielleicht müssen hierfür auch noch Datenbank-Aufrufe getätigt werden oder mit einem externen System kommuniziert werden. Dann werden die generierten Inhalte in eine Vorlage eingefügt und der daraus entstehende HTML-Code wird an den Client zurückgesendet. Weiterhin sind mehrere Caching-Schichten in diesem Prozess involviert, bevor die Inhalte schlussendlich den user erreichen.
Dieser komplette Prozess kann einige Zeit in Anspruch nehmen. Je nach Komplexität der Seite kann dieser Prozess zwischen ein paar Millisekunden bis hin zu mehreren Sekunden dauern. 

Die wichtige Erkenntnis, die daraus entsteht ist, dass die fertige Seite, die der Client am Ende empfängt nie in irgendeiner statischen Form existiert, aus welchem Grund das dynamische Zusammenstellen und das Hosten der Webseite eng miteinander verzahnt sind. 

Mit dem JAM-Stack sieht der Prozess anders aus. Zu dem Zeitpunkt, an dem eine Seite angefragt wird, existiert der fertige HTML Code bereits auf dem Server, beziehungsweise auf einem Knotenpunkt des CDNs. So kann die Seite sofort an den Client zurückgeschickt werden, sobald die Anfrage eintrifft. Das einzige, was zeitlich gesehen zwischen der Anfrage und der Antwort des CDNs steht, ist die Netzwerkqualität des Nutzers und die Distanz zum nächstgelegenen Knoten des CDNs. 

Abbildung 2: Render-Prozess auf dem JAM-Stack

Dies wird dadurch ermöglicht, dass die Website zu dem Zeitpunkt zusammengestellt und zu fertigen HTML-Code verarbeitet wird, an dem der Entwickler eine neue Version in das Source Control Management (SCM) hochlädt, wie es in Abbildung 2 dargelegt wird.

Vorteile von JAM-Stack

Das im vorherigen Kapitel erläuterte Paradigma hat gegenüber traditionellen Vorgehensweisen eine Vielzahl an Vorteilen:

  • Skalierbarkeit: Eine JAM-Stack-App benötigt keinen klassischen Server zum Ausführen, was zur Folge hat, dass sie einfach und günstig auf CDNs gehostet werden kann. CDNs sind grundlegend skalierbare Einrichtungen, die automatisch die Last, die durch Besucher-Traffic entsteht, auf der ganzen Welt verteilen und schnell und einfach auf wachsenden Bedarf anpassen können. Das zusammen mit der Tatsache, dass JAM-Stack-Webseiten sehr lightweight sind in Bezug auf notwendige Ressourcen trägt dazu bei, eine JAM-Stack-Website auf einfache Weise skalierbarer und effizienter zu gestalten.
  • Kosten: Wie im vorherigen Punkt angedeutet, benötigen JAM-Stack-Websites in der Regel weit weniger Ressourcen in Bezug auf Server, Datenbanken und dergleichen. Dies macht selbstverständlich auch das Hosting günstiger. Das kann natürlich je nach dem wie komplex die jeweilige Seite ist variieren, aber typischerweise ist das der Fall.
  • Sicherheit: Viele der Schwachstellen, denen Websites heutzutage ausgesetzt sind, sind auf Fehler auf der Server-Seite zurückzuführen. Daher sind JAM-Stack-Webseiten fast immer sicherer als nicht-JAM-Stack-Webseiten. Um es anders auszudrücken, reduziert JAM-Stack die Angriffsfläche einer Website.
  • Performance: Der größte und der wohl entscheidendste Vorteil des JAM-Stacks ist, dass durch die Abwesenheit eines Servers, der den Inhalt on-the-fly generiert, die Leistung bei JAM-Stack-Anwendungen erheblich besser sein kann gegenüber serverlastigen Anwendungen. 
  • SEO: Da JAM-Stack-Webseiten nur statischen Inhalt enthalten und statischer Inhalt für Suchmaschinen viel einfacher zum Crawlen und Indizieren ist, bieten sie natürlich automatisch einen besseren SEO-Wert. Eine Website, die Inhalte dynamisch rendert, stellt für Indizierer Herausforderungen dar, die eine rein statische Inhaltsseite nicht hat.

Nachteile von JAM-Stack

  • Notwendigkeit von Entwicklern: Aufgrund der Art und Weise, wie JAM-Stack funktioniert, muss zwangsläufig immer ein Entwickler bei jeder Aktualisierung des Inhalts beteiligt sein, da dies das Neuerstellen der gesamten Website erfordert. Es ist selbstverständlich möglich, dass Produzierter von Inhalten den Inhalt auf eine nicht-technische Weise bereitstellen, die der Build-Prozess verarbeitet, um schließlich statischen HTML-Code zu erzeugen, aber im Endeffekt ist es fast garantiert, dass ein Entwickler am Ende einen Knopf drücken muss, was für einige Anwendungsfälle einen großen Nachteil darstellt.
  • Update-Frequenz: Aufgrund des vorherigen Punktes, ist der JAM-Stack nicht die beste Wahl, wenn Sie mit einer Website umgehen, die häufig aktualisiert werden muss. Gerade für beispielsweise Webseiten von Nachrichtendiensten ist der JAM-Stack-Ansatz sicherlich kontraproduktiver als traditionellere Vorgehensweisen. In diesen Fällen sollen Inhaltsproduzenten Inhalte direkt in das System hochladen können, ohne dass die komplette Seite neu gebaut werden muss. Hierfür wäre ein serverbasierter Ansatz sinnvoller.

Folgend wird das Javascript Framework Astro beschrieben, dass das Prinzip von JAM-Stack umsetzt.

Astro

Astro ist grundlegend gesehen ein Static Site Generator, mit welchem sich Webseiten bauen lassen. Dabei werden komponentenartige Bausteine erzeugt, die sich zu einer Webpage zusammenstellen lassen. Das Besondere an Astro jedoch ist, dass keinerlei Javascript – oder zumindest nur ein Minimum – an den Browser gesendet wird. Außerdem ist Astro ein Meta-Framework. Man kann so mehrere andere Frameworks gleichzeitig verwenden, sei es React, Vue, Svelte, oder ein anderes etabliertes Framework.

Obwohl Astro es vorsieht, möglichst viel auf einem CDN vorzurendern, ist bei dem Großteil der heutigen Webseiten der komplette Verzicht auf JavaScript keine Option. Deswegen gilt es, JavaScript Bundles so spät wie möglich zu laden. Jene Teile, mit denen der Benutzer gar nicht interagiert, müssen auch nicht geladen werden. In Astro stellen sogenannte “Inseln” diese interaktiven Bereiche dar (Island Architecture).

Anhand des folgenden Beispiels soll die Funktionsweise veranschaulicht werden.

In diesem Codebeispiel gibt es drei wichtige Bereiche, die entscheidend für die Funktionalität von Astro sind.

Abbildung 3: Code-Beispiel einer Astro-Komponente

Zeilen 1-11: In diesem Bereich, der immer am Anfang einer Astro-Datei bzw. Komponente steht, befindet sich das Frontmatter. Dieses ist ein Javascript-Bereich, der nicht an den Browser übermittelt wird und zur Build-Zeit bereits ausgeführt wird. Aus diesem Grund ist es auch möglich, API-Schlüssel, oder Datenbank-Credentials in das Frontmatter zu hinterlegen, da es garantiert auf dem CDN bleibt.
In diesem Fall werden neben den üblichen Imports zwei Datei-Leseoperationen durchgeführt. Das hat den Vorteil, dass zur Laufzeit die Daten aus den Daten schon fertig verarbeitet wurden und dafür keine Ladezeit draufgeht.

Zeilen 13-43: In diesem Beriech steht das eigentliche HTML, das die Webseite beschreibt. Interessante Stellen sind dabei etwa Zeilen 19-23 und Zeilen 32-36, in denen die Daten, die im Frontmatter aus den Dateien gelesen wurde eingesetzt werden. Auch hier wird der fertige HTML-Code bereits zur Build-Zeit generiert – bevor ein Besucher die Daten auch überhaupt abgefragt hat. 

Zeile 41: Hier kommt die Insel-Architektur von Astro zur Geltung. Die eingebundene Komponente ButtonComponent besitzt das Attribut client:visible. Um die Funktion dieses Attributs zu erläutern, lohnt es sich, auf den Code des jeweiligen Komponenten zu blicken:

Abbildung 4: Code-Beispiel für eine einfache React-Komponente in Astro (Insel)

Wie man schnell erkennt, handelt es sich bei dieser React-Komponente um einen sehr simplen, aber dynamischen Bestandteil der Webseite, bei dem client-seitiger JavaScript-Code jedoch essentiell ist. Die Insel-Architektur und das Attribut client:visible sieht vor, dass der zu dieser Komponente zugehöriger JavaScript erst dann geladen wird, wenn die Komponente sichtbar ist für den Benutzer. Wenn der Benutzer diese Komponente nie sieht, dann wird der JavaScript eben auch nicht geladen, was ebenfalls zu deutlich schnelleren Ladezeiten führt.

Diese Strategie von Astro führt zu einer deutlich erhöhten Performance, die durch das Pre-Rendering von Webseiten ermöglicht wird. Eine Analyse der Webseite-Performance auf PageSpeed Insights (https://pagespeed.web.dev), das in Abbildung 5 dargestellt wird, belegt dies nochmal.
Darin erkennt man nicht nur, dass die Seite innerhalb von 0.3 Sekunden vollständig geladen wird, sondern auch dass die Zeit vom ersten Contentful Paint bis zum Interactive-Zustand 0.0 Sekunden beträgt, also sofort die vollständige Seite mit allen Inhalten geladen wurde.

Abbildung 5: Pagespeed Insights der mit Astro implementierten Beispiel-Web-Anwendung

Fazit

Astro ist zu diesem Zeitpunkt ein sehr neues Framework, das meiner Meinung nach viel Potential hat. Die Art und Weise, auf die Webseiten gebaut werden und die Einfachheit, mit der dies möglich ist, ohne komplett fremd zu wirken hat einen positiven Eindruck hinterlassen. Während es sich für Seiten, die wenig Dynamik erfordern, sehr gut eignet, gibt es meiner Meinung nach bisher relativ wenige Anwendungsfälle, die durch den Einsatz von Astro profitieren würden und Astro somit zu einem Nischenprodukt wird.
Jedoch ist die Technologie in den Anfangsstadien und wird sich in den nächsten Jahren in großem Maße weiterentwickeln.

Quellen

[1] Zammetti, F. (2020). What Is JAMstack All About?. In: Practical JAMstack.
Apress, Berkeley, CA. https://doi.org/10.1007/978-1-4842-6177-4_1

[2] What is the MEAN Stack?
https://www.mongodb.com/mean-stack (Zugriff am 14.01.2023)

[3] JAM v LAMP v MERN v MEAN Stack
https://dev.to/salmansiddique/jam-v-lamp-v-mern-v-mean-stack-470l (Zugriff am 15.01.2023)

[4] What is Astro.js?
https://dev.to/omher/what-is-astrojs-500c (Zugriff am 19.01.2023)