Difference between revisions of "Reactive-banana"

From HaskellWiki
Jump to navigation Jump to search
Line 48: Line 48:
 
"Hey Mister! Why not use reactive-banana as a smartphone app to brush your teeth?" — ''Tommy "Banana" Johnson''
 
"Hey Mister! Why not use reactive-banana as a smartphone app to brush your teeth?" — ''Tommy "Banana" Johnson''
   
== Releases and Resources ==
+
== Documentation ==
* Download and installation from Hackage
 
** {{HackagePackage|id=reactive-banana}} - the FRP library itself
 
** {{HackagePackage|id=reactive-banana-sdl}} - binding to the [[SDL]] library
 
** {{HackagePackage|id=reactive-banana-wx}} - binding to the [[wxHaskell]] GUI library
 
 
 
* <span id="documentation">Documentation</span>
 
* <span id="documentation">Documentation</span>
 
** '''[https://github.com/HeinrichApfelmus/reactive-banana/blob/07f3e9bf44ec8c227442daef723f7e9682c5a342/reactive-banana/doc/tutorial-2012-07-en.pdf?raw=true Slides from a tutorial given by the library author (pdf)]'''
 
** '''[https://github.com/HeinrichApfelmus/reactive-banana/blob/07f3e9bf44ec8c227442daef723f7e9682c5a342/reactive-banana/doc/tutorial-2012-07-en.pdf?raw=true Slides from a tutorial given by the library author (pdf)]'''
Line 65: Line 60:
 
** Questions? [http://stackoverflow.com/questions/ask?tags=reactive-programming+haskell+frp+reactive-banana Ask on StackOverflow!]
 
** Questions? [http://stackoverflow.com/questions/ask?tags=reactive-programming+haskell+frp+reactive-banana Ask on StackOverflow!]
 
** More questions? [mailto:apfelmus%20at%20quantentunnel%20de Email] or [https://hackhands.com/apfelmus live help]!
 
** More questions? [mailto:apfelmus%20at%20quantentunnel%20de Email] or [https://hackhands.com/apfelmus live help]!
  +
  +
== Downloads and Source Code ==
 
* Download and installation from Hackage
 
** {{HackagePackage|id=reactive-banana}} - the FRP library itself
 
** {{HackagePackage|id=reactive-banana-sdl}} - binding to the [[SDL]] library
 
** {{HackagePackage|id=reactive-banana-wx}} - binding to the [[wxHaskell]] GUI library
  +
 
* Source code on github
 
* Source code on github
 
** [https://github.com/HeinrichApfelmus/reactive-banana/tree/master/reactive-banana reactive-banana] master branch
 
** [https://github.com/HeinrichApfelmus/reactive-banana/tree/master/reactive-banana reactive-banana] master branch

Revision as of 18:01, 29 October 2015

What is it?

Reactive banana displaying trigger-happy Behavior.

Reactive-banana is a library for Functional Reactive Programming (FRP).

FRP offers an elegant and concise way to express interactive programs such as graphical user interfaces, animations, computer music or robot controllers. In particular, it promises to avoid the spaghetti code that is all too common in traditional approaches to GUI programming.

The goal of the library is to provide a solid foundation.

  • Programmers interested implementing FRP will have a reference for a simple semantics with a working implementation. The library stays close to the semantics pioneered by Conal Elliott.
  • The library features an efficient implementation. No more spooky time leaks, predicting space & time usage should be straightforward.
  • A plethora of example code helps with getting started.

The library is meant to be used in conjunction with existing libraries that are specific to your problem domain. For instance, you can hook it into any event-based GUI framework, like wxHaskell or Gtk2Hs. Several helper packages like reactive-banana-wx provide a small amount of glue code that can make life easier.

Feedback is welcome, I want to hear from you!

Status

Current development focuses on performance. Applications to GUI programming are explored in the sister project threepenny-gui.

  • 29 October 2015: reactive-banana 1.0.0.0 released. Milestone.
  • 27 August 2015: reactive-banana 0.9.0.0 released.
  • 29 January 2014: reactive-banana 0.8.0.0 released.

Fake Testimonials

"In the programming-language world, one rule of survival is simple: dance or die. This library makes dancing easy." – Simon Banana Jones

"About the use of language: it is impossible to sharpen a pencil with a blunt axe. You should try reactive-banana instead." — Event Dijkstra

"When I need a bullet event, I can just trigger it." — Billy the Reactive Banana

"This should be in a museum!" — Banana Jones

"Hey Mister! Why not use reactive-banana as a smartphone app to brush your teeth?" — Tommy "Banana" Johnson

Documentation

Downloads and Source Code

External Links