[Haskell] Why functional programming matters

Stephan Friedrichs stephan.friedrichs at tu-bs.de
Wed Jan 23 15:43:22 EST 2008


Simon Peyton-Jones wrote:
> [...]
> 
> 2. War stories from real life.  eg "In company X in 2004 they rewrote their application in Haskell/Caml with result Y".  Again, for my purpose I can't tell very long stories; but your message can give a bit more detail than one might actually give in a presentation.  The more concrete and specific, the better.  E.g. what, exactly, about using a functional language made it a win for you?
> 

We [1] implemented an ad-hoc chat system in Haskell in the SEP [2] at 
the TU-Braunschweig.

The ad-hoc (there is no central server, every node has the same 
behaviour) protocol [3] (not of our making) is rather complicated, as 
each node on the network has to detect the neighbouring network topology 
in order to route messages to their destination:

A <-> B <-> C

Besides, it has to handle netsplit and -merge situations: Two separate 
networks might be connected by the spawning of a new node in between or 
split by the disappearance of the latter.

There are public and private IRC-like channels, the latter is encrypted 
by a symmetric cipher. Besides, there is an anonymous channel obscuring 
a message's origin.

On top of that we built a nice gtk2hs GUI.

The project homepage is http://sep07.mroot.net/index.html. I regret it's 
not in English :( - But the source code and documentation [4] are. You 
can build the documentation from the snapshot [5].

The interesting thing about the project is, that it provides a nice 
mixture  of IO (network), purely functional protocol handling and 
related data structures and a graphical user interface (GTK). Besides, 
it was implemented by 3 other groups (two using Java, one using C++) as 
well. Comparing the results, you see that the Haskell implementation is 
not only more stable and provides more features, it also has about 70% 
less code.

Let me know, if you're interested in details.

 >
 > [...]
 >

Hope this helps
Stephan


[1] 4 students: 2 experienced Haskell users and two newbies
[2] a practical course where a non-trivial software project has to be
     planned, implemented and documented
[3] http://sep07.mroot.net/documentation/draft-strauss-p2p-chat-09.txt
[4] Complete repository available at: 
http://sep07.mroot.net:81/cgi-bin/darcsweb.cgi?r=SEP%202007%20-%20Ad-Hoc-Chatsystem;a=summary
[5] http://sep07.mroot.net/snapshots/Barracuda-1.0.2.tar.bz2



-- 

Früher hieß es ja: Ich denke, also bin ich.
Heute weiß man: Es geht auch so.

  - Dieter Nuhr

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://www.haskell.org/pipermail/haskell/attachments/20080123/da3abfec/signature.bin


More information about the Haskell mailing list