Eine kleine Einführung in die rein funktionale Programmierung - Teil 2

In einem vorigen Beitrag haben wir das Vorhaben begonnen, eine Schneckenwelt zu implementieren. Zur Erinnerung:

[…] nehmen wir uns ein konkretes Beispiel vor: Es geht um die Simulation und Visualisierung einer Welt (vielleicht für ein Videospiel), in der sich Schnecken bewegen […]. Die Schneckenwelt ist zweidimensional, und wir fangen mit sehr sturen Schnecken an, die sich stets in die gleiche Richtung bewegen und sich nicht davon abhalten lassen.

In diesem Posting kümmern wir uns erst einmal um die individuellen Schnecken, die wir in einem späteren Posting dann in der Schneckenwelt anordnen. In einem dritten Posting werden wir das Programm so erweitern, daß die Schnecken Schleimspuren hinterlassen und den Schleimspuren anderer Schnecken („die stinken“) ausweichen. Das ganze visualisieren wir dann dergestallt, daß es so aussieht:

</img>


Wir erweitern den Code vom letzten Mal und ordnen Schnecken in einer Schneckenwelt an:

Weiterlesen...

Moderne Webanwendungen mit Haskell

Derzeit sind viele Webanwendungen in PHP geschrieben. Die Gründe dafür liegen auf der Hand: Die Entwicklung geht meist sehr schnell, PHP ist einfach zu erlernen und fast alle Webhoster haben mittlerweile Webserver mit PHP-Unterstützung installiert. Allerdings bringt die Verwendung von PHP auch einige Probleme mit sich. Damit eine PHP-Anwendung gut skaliert, sind viele aufwendige Optimierungen notwendig (siehe z.B. HipHop von Facebook). Außerdem ist PHP eine dynamische Sprache, und damit treten viele Fehler erst zur Laufzeit auf. Schließlich ist auch die Validierung von Eingaben und das Escapen von Ausgaben zumeist dem Programmierer selbst überlassen: SQL-Injections, XSS (Einschleusen von Code in fremde Webseiten durch Dritte) und andere Sicherheitslücken werden nicht auf Ebene der Programmiersprache verhindert (siehe zum Beispiel hier).

Deshalb möchte ich an einem kleinen Beispiel erläutern, wie man mit Haskell relativ einfach eine performante, sichere und moderne Webanwendung schreibt. Hierzu werde ich ein einfaches Blog implementieren. Das Blog wird das Erstellen, Anzeigen sowie das Kommentieren von Beiträgen unterstützen.

Um dem Artikel gut folgen zu können sind Grundlagen zu JavaScript, HTTP und Haskell hilfreich.

Weiterlesen...

Übersichtlicher und Performanter Code mit Scala

Auf der OOP hat die Firma dynatrace, welche sich auf die Analyse von Java Performance spezialisiert hat, eine „Java Performance Challenge“ abgehalten: welcher von zwei dargestellten Stück Java-Code läuft schneller?

Als ich mir die Stücke Java-Code anschaute, überlegte ich mir, wie das funktionale Pendant aussehen würde, ob es lesbarer ist und ob das Performance-Problem dort auch auftauchen würde.

Weiterlesen...