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

Mark Phillips mark@austrics.com.au
Wed, 27 Jun 2001 11:03:33 +0930


Hi,

I have recently subscribed to this list --- it seems
fairly quiet so I thought now might be a good time
to ask a few questions.

I am new to functional programming.  I currently
program in C and C++.  However I have read a few
articles which have convinced me that functional
programming may well be worth learning.  I
particularly like their mathematical basis (I am a
mathematician).  I have been browsing the web
trying to decide on which functional language
I should learn.  The things I am looking for are:

1. I want a FP language which is modern --- has
the latest in functional programming concepts.

2. Is well designed and integrated.

3. Produces relatively fast executables.

4. Is open source software.

5. Is well supported across various platforms,
the most important platform being linux.

If I'm going to invest time learning a new language
I may as well learn the best --- hence my
reasoning for points 1 and 2.  My hope is that one
day I will be able to use this language to do real
world coding so point 3 is a concern.  Point 4 is
important to me for both philosophical and
practical reasons.  I mainly use linux, but my
company wishes to release code under solaris and
windows, hence point 5.

>From what I have been able to gather, concurrent
clean does quite well on a number of these points.
My understanding is that it is quite modern,
implementing the latest in functional programming
ideas.  Also that it is well designed and integrated.
I understand that it produces executables which,
while not quite as fast as C or C++ say, aren't too
far behind.  Is this an accurate assessment?

The compiler is not open source, but my
understanding is that version 2.0 will be.  What
licence will it be released under?  Is there a web
page that gives an official announcement about
open source releasing of clean?  From what I can
gather, the release of version 2.0 is close.  Does
anyone know if we're talking weeks, months or
a year?  Why not release a beta version of 2.0
under open source?

It seems clean is available for a number of
platforms, and that though windows is the main
platform, linux has some support at the moment,
with more likely to come eventually.  Is this
accurate?

The other strong contender as a language I should
learn is Ocaml.  From what I gather, it does quite
well on points 3, 4 and 5, but perhaps doesn't do
quite as well as clean on points 1 and 2.  Am I
right about this?

Other options I am considering at the moment are
Haskell, SML and scheme.  It's really hard to
decide on a language given that I don't have any
functional programming experience.  I realize
that learning any of them would be a good way
of learning the "functional way", but I would
like to learn one of the better languages first up
if I can.

Any comments or help would be most appreciated.

Cheers,

Mark.