[clean-list] Is clean the language for me?

Ronald Legere rjljr2@yahoo.com
Tue, 26 Jun 2001 20:53:23 -0700 (PDT)


Dear Mark
   Welcome to functional programming! I have been
using Haskell for a few years now, and only toy around
with clean. I have recently decided to start learning
Ocaml as well. Here are some thouhts on these three
languages:
   
  Haskell: Beautifull language. Pure lazy modern
functional programming. One book to checkout: Paul
Hudak's "School of expression". Library support (for
gui's, graphics, etc) is (IMHO) a weak point, and are
developed by seperate goups then the compiler, so
compiler updates tend to break many libraries, which
are slow to update anyway. (GUI libraries etc are not
standardized). 
    There are several (open source) implementations.
Start with Hugs however (an interpreter) as you will
find it easy to install etc. THere are a couple of
good compilers (ghc and nhc98 for example, both
written in Haskell). For linux/unix they are both
faily easy to install (nhc98 being easier), while for
windows, it is not as easy (I dont think you can build
ghc 5.00 on windows at the moment. In any event
building ghc is a PITA on any machine.) 

  Clean: Actually pretty simular to Haskell.  Main
difference is the type system includes "Uniqueness
types" which are used to do mutable data types and IO.
Haskell uses a construction called "Monads" to do this
instead. Both are usefull to learn. I dont know of any
books for Clean. 
   Compiler/and libraries are all developed by the
same group, and the Object IO library is pretty well
done. (includes graphics/GUI stuff). All is integrated
into easy to install packages. 
    The weak point here (and a big one...) is that
Clean is not at the moment open source. Supposedly
2.0, written in Clean will be, but I think it was
announced YEARS ago, and no one is holding their
collective breath anymore.

Ocaml: 'Eager' functional language, but with modern
type system. Not as sophisticated as the type systems
used in Haskell or Clean, but workable. 
  Strong Points: Nice integration of OOP and
functional programming (Eager language makes this
straightforward and useful). Very nice library set,
all developed by the same group, or at least
integrated into a package that looks that way.
Includes GUI stuff (Tk, but a gtk package is
available) and other stuff.  
   Weak points: Well, its not lazy. There is a 'lazy'
module that lets you do some of the kinds of things
you do in haskell, but its just not the same:) The
langauge is not as orthoganol as Haskell or clean
either. 

  Others: Scheme/Lisp - Eager functional programming,
with powerfull macros to allow syntax extensions
           Python - not really functional, but feels a
lot like a dynamic typed version of Ocaml :)

    I hope this helps....  

__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/