Delving into Reactive Values

In a previous posts we examined the current state of GUI programming in Haskell, how imperative libraries get in the way of functional beauty, and how (non-FRP) reactive programming enables short, declarative code and facilitates code reuse. But without the low-level details, without more information on how this framework is structured, all we have is an idea, a draft on a piece of paper. It’s impossible to know how much effort it will require, or how much it will affect our code. ...

GUI programming in Haskell "the old way"

As discussed in a previous post, purely functional GUI frameworks may fail to deliver in terms of feature coverage, look-and-feel and codebase scalability. As a result, many programmers turn back to good-old Gtk+ for their user interfaces (see, for instance, Ian-Woo Kim’s hoodle). ...

On the state of GUI programming in Haskell

GUI programming in functional and logic languages tends to feel quite hard. There is nothing intrinsic in FP that makes GUI programming extra hard, but when everywhere else you are surrounded by nice, abstract, compositional, high-level descriptive definitions, working at the GUI’s low level feels… well, like you’re doing something wrong. ...

Creating board games in Haskell in 100 lines of code

While code written in Haskell is very declarative and mathematical, as soon as we try to create a user interface, we’ll be slapped on the cheek by a wave of IO that will turn our code procedural in no time. One of the main ideas behind this gaming (ad)venture called Keera Studios is to write more mathematical, robust games. We want these games to be easy to understand and expand, and we want them to look good too. The current trend in this respect is based mostly on FRP. However, FRP is still on its way, and no Haskell implementation (AFAWK) performs really well. (We recently tried all of them, and found that there’s still a lot to be done to be able to fully rely on FRP for interactive applications). In this post we’ll see that, through an ad-hoc layer that will hide most of the controller and separate the UI from the mathematical model, we can implement nice-looking games in Haskell that have declarative, pure definitions and use graphics efficiently for the implementation. ...

Keera Hails: functional event-driven programming of desktop applications in Haskell

Some time ago I tried to create big programs with user interfaces in Haskell and found that none of the FRP frameworks worked as expected. Some were incomplete, others didn’t compile, and efficiency was an issue in those that did work. ...