Ich bin seit kurzem vom FP-Fieber befallen (ich versuche, Haskell zu lernen), und ich bin wirklich beeindruckt von dem, was ich bisher gesehen habe (Funktionen erster Klasse, Lazy Evaluation und all die anderen Goodies). Ich bin noch kein Experte, aber ich habe bereits begonnen, es einfacher zu finden, "funktional" als imperativ für grundlegende Algorithmen zu argumentieren (und ich habe Schwierigkeiten, dorthin zurückzugehen, wo ich muss).
Der einzige Bereich, in dem FP derzeit zu versagen scheint, ist die GUI-Programmierung. Der Haskell-Ansatz scheint darin zu bestehen, imperative GUI-Toolkits (wie GTK+ oder wxWidgets) zu umhüllen und "do"-Blöcke zu verwenden, um einen imperativen Stil zu simulieren. Ich habe F# noch nicht benutzt, aber ich habe den Eindruck, dass es etwas Ähnliches mit OOP und .NET-Klassen macht. Natürlich gibt es einen guten Grund dafür - bei der aktuellen GUI-Programmierung dreht sich alles um IO und Seiteneffekte, sodass eine rein funktionale Programmierung mit den meisten aktuellen Frameworks nicht möglich ist.
Meine Frage ist, ist es möglich, einen funktionalen Ansatz für die GUI-Programmierung zu haben? Ich habe Schwierigkeiten, mir vorzustellen, wie das in der Praxis aussehen würde. Kennt jemand irgendwelche Frameworks, experimentell oder nicht, die diese Art von Dingen versuchen (oder sogar irgendwelche Frameworks, die von Grund auf für eine funktionale Sprache entwickelt wurden)? Oder ist die Lösung, einfach einen hybriden Ansatz zu verwenden, mit OOP für die GUI-Teile und FP für die Logik? (Ich frage nur aus Neugier - ich würde gerne glauben, dass FP "die Zukunft" ist, aber GUI-Programmierung scheint ein ziemlich großes Loch zu sein, das es zu füllen gilt).