[Haskell-cafe] [reactive] A pong and integrate

Peter Verswyvelen bugfact at gmail.com
Mon May 24 15:41:13 EDT 2010


Yeah. Funny that we're still writing games in C++, while mission
critical and hard real time systems are written in much nicer
languages :)

I made something similar to Lucid Synchrone for a game company I used
to work, but with the purpose of making reactive programming
accessible to computer artists. The integrated development environment
provided the typical boxes-and-links user interface, where the boxes
were signal functions. Signals itself were not exposed, like Yampa.
The system did type inference so artists never really had to deal with
types. Special nodes like feedback and delay where provided to allow
transferring values to the next frame. This actually was a great
success, digital artists could literally create little interactive
applications with it, without much  help from programmers. This
resulted in a Playstation 3 visual experience "Mesmerize"
(http://www.youtube.com/watch?v=rW7qGhBjwhY). This was before I knew
Haskell or functional programming, so it was hacked together in C# and
C++...

I still believe that the reason why computers artists could work with
this environment and were not able to learn imperative programming is
functional programming itself: the system had all the goodies of FP:
type inference, referential transparancy, etc... But is also provided
the possibility to edit literals while the simulation was running,
providing zero turnaround times, which was equally important for quick
adoption of the software.

So IMO Haskell and FRP systems have a huge potential for education of
a much broader audience than just computer scientists...





On Mon, May 24, 2010 at 6:13 PM, Limestraël <limestrael at gmail.com> wrote:
> I assumed also that it was a field which was still under research, however,
> Lustre, again, is used "for critical control software in aircraft,
> helicopters, and nuclear power plants", according to wikipedia.


More information about the Haskell-Cafe mailing list