[Haskell-cafe] Call for GUI examples - Functional Reactive Programming

David Barbour dmbarbour at gmail.com
Fri Jul 8 09:53:35 CEST 2011


On Thu, Jul 7, 2011 at 11:08 PM, Heinrich Apfelmus <
apfelmus at quantentunnel.de> wrote:

> Can GUI programming be liberated from the IO monad?


I believe it can be. But is FRP the right way to achieve this? Most of the
GUI problems I've ever encountered involve open systems: configuration
files, plugins, command and control, database crud, networking. Most of the
FRP GUI examples I've encountered involve closed systems: calculators,
tangible values, single-player games.

I am often left with the feeling that we're bridging the wrong gaps with
FRP. Consequently, I've been developing a paradigm that adapts what I
consider the best features of FRP for composition of open systems [1].

Anyhow, I'm guessing your query is because you'd like some sample problems
upon which to whet your FRP model. Rather than a bunch of toy UI elements, I
would suggest choosing examples with open elements, such as:
* a personal wiki (cf. TiddlyWiki) with a file or SQLite database for
persistence
* a database browser/editor that reads the schema from the database and
adapts the display appropriately
* a Dr. Mario clone with support for online 2-player mode
* an RSS display widget, configured with a bookmark file
* a stock-ticker or weather-report widget with a simple configuration file
* maps and KML

I'd personally love to see a good GUI library built of 'collaborative'
widgets - e.g. shared text areas, collaborative editing, signals such as
highlighting for conflict avoidance, disfavoring event-based widgets like
'buttons' that are difficult to share or undo between users. But this would
require a lot of research and testing to get right, and I don't believe it's
a suitable project for showing off FRP.

I'm sure you can think of something more interesting to yourself, of course.
The world needs proofs that open, dynamically configured systems are handled
effectively in FRP. Or, if you struggle and the resulting code is inelegant
without compromising the purity of FRP, well, that's useful information,
too.

Regards,

Dave

[1] http://awelonblue.wordpress.com/2011/05/21/comparing-frp-to-rdp/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110708/22067eb8/attachment.htm>


More information about the Haskell-Cafe mailing list