Clean, Java and the Microsoft ".NET" platform...

rinus plasmeijer rinus@cs.kun.nl
Tue, 29 Aug 2000 22:51:05 +0200


Dear Fabien,

You wrote to Clean:
 
> We are a high-tech electronics company planning to use modern higher-order
> lazy functional languages with static polymorphic typing and modular
> compilation for the development of our new softwares. As Windows is the
> main platform we are targeting, we are at the moment favoring Clean over
> Haskell98 because of the ease of use and setup of the compiler and IDE on
> Windows platform.

Thanks.
 
> We are presently learning the language and experimenting with the
> educational-licence free compiler v1.3.2 and find both to be excellent
> tools. We are worried, however, about investing money and software
> development effort in a proprietary language that is not supported by a big
> company, nor backed by a large base of user's as are open source projects
> such as Haskell98.
> 
> In a private mail reply, Pr. Rinus Plasmeijer explained that the sources of
> the Clean 2.0 compiler would be open source. If such is indeed the case,
> needless to say that we will adopt the tool.

We have indeed decided to release the source code of the Clean system.
We will put it on the net when Clean 2.0 is released.
Also the code of the current compiler can be obtained on request.
We rather not put the old system on the net because the new system is
largely written in Clean itself and therefore easier to modify by
others.
Also the source code of the Clean IDE will become available.

> Can the Clean development staff give us some date for the delivery of the
> new Clean 2.0 compiler, and its status as an available free open source
> software ?

I can't say anything about the exact month of the release.
The current state is that all our Clean applications (including the IDE,
object I/O library and the compiler itself) work fine with the new
compiler.
However, we have a large list of improvements (better error messages,
code generation optimisations, trics to speed-up compilation time).
Our strategy is not to release a system as long as we think it is not
stable and fast enough.
The new Clean system will be a bit slower than the 1.3 system (written
in C), but it will be fast enough...
The main new feature of Clean 2.0 will be "dynamics". 
We are in principle able to store any Clean expression (evaluated or
unevaluated closures) as a dynamic, 
read a dynamic in another application and dynamically link in the code
needed for the evaluation of dynamic.
Still, a lot of programming effort is needed to make everything fool
proof and to support version management..
If you are not waiting for dynamics you will be perfectly happy with old
system for the time being...

> A related question concerns the availability of back-ends for the Clean
> compiler for the following platforms :
> SUN's Java Virtual Machine.
> Microsoft's ".NET" next generation of Windows services. ( see
> http://www.msdn.microsoft.com/net/ )

Support for the Java virtual machine is currently not planned. We have
looked in the past whether this was a good idea, but the Java virtual
machine lacks certain features.
It is possible to make a back-end, but it would give a very slow Clean
implementation.
 
> We know for instance that :
> The "Mercury" team at http://www.cs.mu.oz.au/research/mercury/ announced
> the delivery of a back-end targetting the ".NET" platform.
> Haskell compilers targetting ".NET" are cited in articles about ".NET".
> 
> Is such a back-end planned for the Clean compiler ?
> What is the position of the Clean development staff regarding microsoft's
> ".NET" platform ?

A back-end to the .NET platform seems to be much more promissing.
We will investigate this in more detail to see if it indeed can yield an
efficient implementation.
If this is the case we might go for it... We have to see...
Porting Clean to a new platform / abstract machine is in general
relatively easy.
We use the same Clean back-end for all platforms.
However, porting the IO library to a new platform IS a lot of work.

> 
> Though we can't for the moment officially commit ourselves to a definitive
> choice, we are contemplating using Clean for the superior development tools
> it offers on Windows platforms, and its closeness to the Haskell98
> language, in case a source port would be necessary...

Thanks. 

Greetings,

Rinus