I currently work at the Radboud University where Clean is being developed. As 
such, I use it daily. Coming from Haskell, I have to admit that I never really 
got used to the let-before syntax, exactly for the reasons described in the 
previous emails. However, it does have some merit. In combination with 
uniqueness typing, the compiler can do destructive updates on the variables in 
the let-before blocks, making the generated code more efficient.

Possibly a bit off-topic, but please allow me to give an update about the 
latest status of Clean (mixed with some personal opinion ;)

> Clean is relatively unknown because
> - they started in the Macintosh world, and when
>   they provided a compiler for the Unix world,
>   they did not port their "modern" graphics and
>   I/O library to it.  So you could never write
>   a program that would run on Macs and other things.

Object IO (the graphics library) will probably never work for systems other 
than Windows because f low priority and a lack of manpower. This is admittedly 
unfortunate if you want to write native client-side GUIs. Currently, most of 
Clean's progress is driven by the iTask System[1], which provides a web GUI.

> - they then abandoned the Macintosh world for
>   Windows.  The Mac IDE was killed off; there is
>   now an IDE for Windows but not MacOS or Linux.

The good news is that the latest version of Clean[2] and its code generator[3] 
now works fine again on 64 bit Mac OS X (I would rate it as advanced beta, or 
perhaps even RC quality). Linux 64 support is currently being stabilised 
(currently alpha quality). Hopefully we will be able to create a new Clean 
release for Mac OS X, Linux and Windows this year. It will then also contain a 
command-line based build tool for Clean IDE project files.

> - other major features remain Windows-only

The bad news is that this is true to some extend; the dynamics system is still 
largely Windows-only. However, this is the only language feature I can think of 
that really is Windows-only.

> - the change from Clean 1.3 to Clean 2 was huge,
>   like I mentioned above, none of my code survived
>   the change, and there was at that time no
>   conversion program

Warning, personal opinion ahead: that's the price of progress I suppose :) 
Because Clean has a very small user base, the language itself is still 
evolving, and there is no release schedule of any kind, it doesn't really pay 
to have a complicated deprecation process.

> - the available books about Clean are way out of
>   date, several drafts of other books remain
>   incomplete.
> - the documentation (like the Report) has always been
>   rather amateurish and incomplete.  Certainly
>   compared with the Haskell documentation.

An iTasks book is actually in the works, which will contain a fair bit of Clean 
(although it is not a dedicated Clean book). There are also concrete plans to 
update the language manual soon-ish.

> - there is nothing to compare with the Haskell Platform.

Actually, yes there is[4]. It can be described as a mix between Haskell 
Platform and a mini Hackage-like repository. There is no such thing as a Clean 
alternative to cabal install, though.

Keep in mind that there is only a handful of people working on Clean, while 
Haskell has a huge community in comparison. This makes it hard to keep up with 
advanced language features.


- Jurriën

[1] http://wiki.clean.cs.ru.nl/ITasks
[2] https://svn.cs.ru.nl/cgi-bin/admin/info/clean-compiler
[3] https://svn.cs.ru.nl/cgi-bin/admin/info/clean-code-generator
[4] https://svn.cs.ru.nl/cgi-bin/admin/info/clean-platform
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to