Webtechnologien

Einführung

Webtechnologien haben sich in den vergangenen fünfzehn Jahren rasant verändert und weiterentwickelt. Konzentrierte sich die Webentwicklung im ersten Jahrzehnt dieses Jahrhunderts vor allem auf die Kernbereiche HTML, Cascading Stylesheets (CSS), JavaScript sowie eine überschaubare Anzahl serverseitiger Programmiersprachen, ist durch die "mobile Revolution" und das "Cloud Computing" in den vergangenen fünf Jahren in vielen Bereichen ein Paradigmenwechsel erfolgt. Damit einher geht eine Erweiterung der Kompetenzfelder, die heute zu einer professionellen webbasierten Softwareentwicklung gehören.

Heutige Webanwendungen beschränken sich nicht mehr auf bestimmte Endgeräte (bspw. Desktop-Computer), werden zunehmend nicht mehr auf dedizierten Servern sondern virtualisiert in der "Cloud" gehosted, sind softwaretechnisch weniger monolithisch und bestehen meist aus microservice-orientierten Architekturen, die wiederum immer weniger unter Verwendung klassischer Entwicklungsmethoden sondern mittels kurzer, agiler Entwicklungszyklen entwickelt und veröffentlicht werden.

Ein umfassendes Wissen in allen für die moderne Webentwicklung benötigten Feldern aufzubauen stellt eine Herausforderung dar. Häufig entsteht für Entwickler_innen ein nicht zu unterschätzendes Spannungsverhältnis, da sich die Vielzahl, die Schnelllebigkeit, die Komplexität und der Lernaufwand für die eingesetzten Technologien häufig diametral gegenüberstehen. In den Digital Humanities ist der Überblick über das ganze Feld und seine Technologien dennoch von zentraler Bedeutung.

Im Verlauf von Seminar und Übung werden wir Webtechnologien aus zwei Perspektiven betrachten: Einerseits aus der Projektmanagement-Perspektive (Überblick, Methodik, Risikobewertung, Nachhaltigkeit) und andererseits aus der Entwicklungsperspektive (Konzeption, Modellierung, Umsetzung, Praxis).

Aufgabe 1

Rufen Sie die Seite Dungeons & Developers auf. Geben Sie ihrem Charakter einen Namen. Wählen Sie einen Weg durch den Talente-Baum der Webentwicklung. Notieren Sie sich die einzelnen Kompetenzen und Technologien und deren Verhältnis zueinander. Verschaffen Sie sich mit Hilfe der angebotenen Links einen kurzen Eindruck von der jeweiligen Technologie bzw. Kompetenz.

Zum Abschluss diskutieren wir gemeinsam einige der entstandenen Charaktere als Beispiele.

Überblick

Einen sehr guten Überblick über das Feld moderner Webtechnologien aus den Perspektiven Frontend, Backend und DevOps bietet die Developer Roadmap von Kamran Ahmed.

Aufgabe 2

Wir diskutieren zunächst gemeinsam das Einstiegsdiagramm "Web Developer in 2019". Danach bilden wir drei Gruppen. Studieren Sie gemeinsam in ihrer Gruppe einen der drei Bereiche "Frontend", "Backend" oder "DevOps". Achten Sie insbesondere auf die Zusammenhänge der Technologien untereinander und identifizieren Sie mögliche Kerntechnologien im jeweiligen Teilfeld der Webentwicklung. Zum Abschluss der Aufgabe soll je ein Vertreter aus jeder Gruppe im Plenum eine zusammenfassende Präsentation der Arbeitsergebnisse geben.

Front-end Roadmap

Back-end Roadmap

DevOps Roadmap

Alle drei Grafiken CC BY-NC-ND 3.0, Kamran Ahmed. Wir werden im Verlauf der Veranstaltung immer wieder auf diese Übersichten zurückkommen.

Weborientierte Programmiersprachen

Weborientierte Programmiersprachen bilden das Rückgrat der modernen Webentwicklung. Hierbei hat die "Renaissance" von JavaScript (insbesondere durch die Entwicklung von node.js) in den vergangenen Jahren dazu beigetragen, dass die Grenze zwischen serverseitigen und clientseitigen Programmiersprachen verschwimmt.

Das Web gehört durch seine Schnelllebigkeit zu den Bereichen, in denen Entwicklungsansätze und Programmiersprachen häufig Trends bzw. Moden unterliegen. Die richtige Einschätzung, wie sich bestimmte Sprachen und Frameworks entwickeln, gehört zu den zentralen Aufgaben von Projektmanager_innen und Softwareentwickler_innen.

Das Web wird technologisch vor allem von den großen Internetkonzernen (bspw. Google, Amazon, Apple, Facebook), den Browserherstellern (Google Chrome, Mozilla Firefox, Apples Safari, Microsoft Internet Explorer und Edge) sowie den Informations- und Code Hosting Plattformen (bspw. GitHub, BitBucket, Stack Overflow etc.) geprägt. Eine kontinuierliche Beobachtung, in welche Technologien und Sprachen diese Firmen investieren, ist daher wichtig.

Einige der genannten Anbieter geben in regelmäßigen Abständen Berichte zum state-of-the-art der weborientierten Softwareentwicklung heraus. Diese Berichte sind zentrale Informationsquellen für die Einschätzung, auf welche Technologien ein Projekt unter dem Gesichtspunkt der Nachhaltigkeit setzen sollte. Daneben stellen diese Berichte gute Entscheidungshilfen bei der Auswahl von Programmiersprachen für die eigene entwicklerische Ausbildung dar.

Aufgabe 3

Wir bilden vier Gruppen. Jede Gruppe bearbeitet gemeinsam einen der folgenden vier Berichte:

1) GitHub Octoverse Report 2019
2) StackOverflow Survey 2019
3) RedMonk Programming Languages Ranking 2019
4) Tiobe Index 2019

Hierbei sollen folgende Gesichtspunkte einbezogen werden:

  • Welche weborientierten Programmiersprachen liegen momentan stark im Trend?
  • Wie war es in der Vergangenheit?
  • Welche Frameworks und Plattformen sind gerade vorherrschend?
  • Wie verteilen sich die Tätigkeiten und Berufsbilder in der Community?
  • Welche Ausbildungshintergründe gibt es?

Die Ergebnisse jeder Gruppe diskutieren wir zum Abschluss gemeinsam im Plenum.

Weiterführende Informationen:

WS 2019/20 – Webbasierte Forschungsapplikationen für die Geisteswissenschaften CC BY-NC-SA 4.0