[Haskell-cafe] Announcement - HGamer3D - 0.2.1 - why netwire

Heinrich Apfelmus apfelmus at quantentunnel.de
Sat Mar 23 10:35:45 CET 2013


Peter Althainz wrote:
> Heinrich Apfelmus wrote:
>
>> Of course, I have to ask: what influenced your choice of FRP library in
>> favor of  netwire  instead of  reactive-banana ?
> 
> good question, actually I need to thank you for your excellent tutorials
> on FRP and GUI on the WEB. I tried the version of reactive-banana
> without switches as the first FRP framework to have contact with and I
> liked its simplicity and the cool introduction around Excel cells you 
> gave on the Web.

My pleasure. :) I have to thank Peter Minten for writing the tutorial 
with Excel cells, though.

> HGamer3D is my personal way to get more insight into FP and Haskell
> especially and from the beginning I wanted to have a FRP API to try it
> with game examples. So your intro on FRP and the examples were very
> helpful with that.
> 
> After reading a lot on the web it became clear, that currently
> reactive-banana and netwire are good candidates to start with. So why in
> the end I decided to use netwire for the binding?
> 
> It's some personal things and I do not claim to have done a proper
> evaluation or comparison. I also cannot judge on performance or other
> relevant topics. Having said that, I can give you some points why I 
> choosed netwire:
> - The cool simplicity of reactive-banana API seems to have suffered a
> little bit after the introduction of the switch functionality.
> - After getting around Monads and Applicative by great help of "Learning
> a Haskell for great good" I was shocked to see, there is even more to
> learn, when I detected Arrows. So I started to look at it and discovered
> some nice tutorials for Arrows.
> - What struck me was introduction of netwire author Ertugrul Söylemez on
> Arrows and the explanations of local state, which can be kept into an
> arrow. Since I was also curious on OOP and FP and game state handling,
> actually this raised some interest. So I think this "Arrows keep local
> state" argument was the killer feature. But also behaviours keep
> local state and maybe I got misguided here.
> - I then did some trials with netwire and I felt it's a quite
> comprehensive and nice API, so I got started with that.

I'm mainly asking because it helps me learn about issues with 
reactive-banana that could be fixed. Looking at other FRP libraries for 
fun and learning is definitely something that should be encouraged and 
not something that should be "fixed", so that's cool. :)

You said that reactive-banana didn't feel as simple after the 
introduction of dynamic event switching, though. Could you pinpoint some 
particular thing that made you feel like that? Maybe a type signature or 
a tutorial or something else? I took great care trying to make the 
dynamic event switching stuff entirely optional, so you can use 
reactive-banana without understanding it at all, but I'm not sure if I 
succeeded.


Best regards,
Heinrich Apfelmus

--
http://apfelmus.nfshost.com




More information about the Haskell-Cafe mailing list