The Yesod Framework

Ein Webrahmenwerk in Haskell

Einführung

Vorwort

Mit dem rasanten Wachstum des Internets während der vergangenen zwanzig Jahre sind auch die Anforderungen an dynamische Webanwendungen gestiegen.[1] Um den Prozess der Entwicklung solcher Webanwendungen, welche diesen enormen Anforderungen gerecht werden sollen, effizienter zu gestalten und nach Möglichkeit sehr schnell Ergebnisse zu erzielen, sind im Laufe der jüngeren Geschichte des Internets zahlreiche Rahmenwerke entwickelt worden, welche speziell auf den Anwendungsbereich der Webapplikationen ausgerichtet sind (siehe Abb. 1.1.). Diese Webframeworks sind im Zuge des heutigen Kampfes um Wettbewerbsvorteile mitunter als kritische Erfolgsfaktoren anzusehen. Die im Kontext der Webentwicklung am häufigsten verwendeten Programmiersprachen sind PHP und ASP.NET, vereinzelt auch Java.[2] Folglich basieren auch die Mehrzahl der am meisten genutzten und unterstützten Webframeworks auf eben diesen Sprachen. Jedoch existieren auch für geringer verbreitete Programmiersprachen wie beispielsweise die funktionale Programmiersprache «Haskell» entsprechende Webframeworks, welche im Vergleich bedeutsame Vorteile versprechen, auf die im weiteren Verlauf dieser Ausarbeitung detailliert eingegangen wird. In dieser Seminarausarbeitung soll das Yesod Framework, ein auf Haskell basierendes Webrahmenwerk analysiert und dessen Konzepte vorgestellt werden.

Geschichte der Webframeworks

Abb. 1.1.: Die Geschichte der Webframeworks[3]

Struktur dieser Ausarbeitung

Diese Ausarbeitung basiert im Wesentlichen auf den Ausführungen von Michael Snoyman im Rahmen der Dokumentation des Yesod-Frameworks. Diese befand sich zum Zeitpunkt der Anfertigung dieser Ausarbeitung jedoch noch in der Entwicklung, weshalb sich Teile der Ausführungen auf eigene Analysen stützen. Es ist anzunehmen, dass sich die Dokumentation, auf die in dieser Ausarbeitung referenziert wird, in Zukunft inhaltlich ändert.

In den Grundlagen wird zunächst auf die Philosophie von Yesod eingegangen, bevor kurz die Installationsschritte erklärt werden, die für die Einrichtung von Yesod notwendig sind. Außerdem wird ein einführendes Beispiel für eine mithilfe von Yesod entwickelte Webanwendung präsentiert, welches dabei helfen soll, eine Vorstellung darüber zu erhalten, wie die allgemeine Herangehensweise des Frameworks für den Entwicklungsprozess ist. Kapitel 3 widmet sich schließlich den bedeutendsten Konzepten des Frameworks, um typische Aufgaben während der Webentwicklung wie beispielsweise der Kapselung von anzuzeigenden Inhalten unter Nutzung von Templatesystemen oder die Realisierung von Sessions zu lösen. Kapitel 4 stellt einen Vergleich zu anderen Webframeworks an, um Gemeinsamkeiten und Unterschiede festzustellen. Im letzten Kapitel ist ein abschließendes Fazit zu ziehen. Dabei werden die vorgestellten Inhalte prägnant zusammengefasst, sowie ein wertender Vergleich zu etablierteren Webframeworks vorgenommen. Die Ausarbeitung wird durch einen Ausblick abgerundet, in welchem Aufgabenbereiche Erwähnung finden, welche von Yesod unterstützt, jedoch im Rahmen dieser Ausarbeitung nicht behandelt werden. Ferner wird eine Prognose hinsichtlich der Erfolgsaussichten des Frameworks gewagt.

Für das Verständnis dieser Seminarausarbeitung werden Vorkenntnisse über die theoretischen Grundlagen von Haskell, insbesondere die Basiskonzepte dieser Programmiersprache und deren Vorteile vorausgesetzt. Die folgenden Links dienen dem Erlernen, Vertiefen und Wiederholen der theoretischen Aspekte von Haskell.