[Haskell-cafe] Toy application advice wanted

mikeb at manor.org mikeb at manor.org
Mon May 3 12:52:01 EDT 2004

Hi folks,

I've got an interesting task this week for my job.  (Note that this will
undoubtably last for longer than a week).  I'm evaluating several
high-level languages as development vehicles for our next suite of
applications.  The languages I'm currently considering are Scheme, Erlang,
and Haskell.

Scheme and Haskell have fairly wide acceptance in their particular roles
(Scheme as the "pretty" lisp, supporting higher-order functions and mostly
strict [until you roll your own laziness with macros], and Haskell the
absolute purest language with no side effects and fully lazy evaluation).
Erlang has a really nice distributed computing model, and has a nice union
of non- and side-effect qualities (although it's completely strict).

The toy application I've "designed" for myself is a simple GUI-based app
that can load a Sun .au format sound file, display its waveform in a
window, perform some simple filtering, play the sound for the user, and
then save the changed sound file back out to disk.  If I get familiar
enough with the respective environments I'd like to add zooming in/out and
scrolling to the waveform display.

This application should allow me to see all kinds of different
characteristics of the language/implementation, such as performance (how
fast can the filter run), I/O (how fast can I load/save data to disk), OS
interaction (how easy can I "play" the audio), user acceptance (how easy
is it to do GUI programming) and of course the software engineering goals
of modularity, correctness, and simplicity.

The end goal is for me to have three working programs, in three different
languages, so that I can present to my boss the performance/software
engineering characteristics of each system to choose our next development

So I'm writing you to solicit help.  I have an amortized four days (32
hours!!!) to implement this simple application in Haskell.  Can anyone
point me to example code, supporting libraries, tutorials, etc. that are
in this area of development?  If I have to dumb down some of my
application in order to make a great discovery about a language, that's
fine.  I'm expecting some great differences between these three programs.

Any advice/pointers/flames welcome.  Thanks in advance.


Mike J. Bell                                This is all just my opinion.
"Outside of a dog, a book is man's best
friend.  Inside it's too dark to read."                  mikeb at manor.org

More information about the Haskell-Cafe mailing list