Difference between revisions of "FAQ"

From Clean
Jump to navigationJump to search
(New page: == 1. What is the purpose of Clean? == The purpose of Clean is to serve as a non-strict, purely functional programming language with the following advantages over similar functional prog...)
 
Line 2: Line 2:
  
 
The purpose of Clean is to serve as a non-strict, purely functional programming language with the following advantages over similar functional programming languages:
 
The purpose of Clean is to serve as a non-strict, purely functional programming language with the following advantages over similar functional programming languages:
*'''Efficient running-time of compiled code:'''  Clean is one of the fastest functional programming languages.  For many applications, Clean is appreciably faster than Haskell, and at least on par with OCaml.  In particular, according to at least one user, Clean code can be easier to optimize than Haskell code (see [http://www.algorithm.com.au/blog/files/36ca9a664954e680edb64d260d763252-350.php Stay Hungry, Stay Foolish - Haskell's Performance | …on Coding | Algorithm.com.au] for a discussion of this point).
+
*'''Efficient running-time of compiled code:'''  Clean is one of the fastest functional programming languages.  For many applications, Clean is appreciably faster than Haskell, and at least on par with OCaml.  According to a [http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=clean&lang2=ghc Gentoo benchmark], the current Clean entry runs the [http://shootout.alioth.debian.org/gp4/benchmark.php?test=meteor&lang=all meteor-contest] benchmark 2.6 times faster than the corresponding Haskell GHC entry.
 
**For benchmarks, see the following:
 
**For benchmarks, see the following:
 
***[http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=clean&lang2=ghc Clean benchmarks | Gentoo : Intel® Pentium® 4 Computer Language Benchmarks Game (vs. Haskell GHC)]
 
***[http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=clean&lang2=ghc Clean benchmarks | Gentoo : Intel® Pentium® 4 Computer Language Benchmarks Game (vs. Haskell GHC)]
 
***[http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=clean&lang2=ocaml Clean benchmarks | Gentoo : Intel® Pentium® 4 Computer Language Benchmarks Game (vs. OCaml)]
 
***[http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=clean&lang2=ocaml Clean benchmarks | Gentoo : Intel® Pentium® 4 Computer Language Benchmarks Game (vs. OCaml)]
 +
*'''Easy optimization of code:'''  According to at least [http://www.algorithm.com.au/blog/files/36ca9a664954e680edb64d260d763252-350.php one user] on [http://www.algorithm.com.au/blog/files/category-2026on-coding.php Stay Hungry, Stay Foolish - Blog], Clean code can be easier to optimize than Haskell code.  Also, according to [http://www.google.com/gwt/n?u=http%3A%2F%2Fwww.nabble.com%2FRe%253A-Re%253A-Why-can%2527t-Haskell-be-faster--p13510257.html one user] on [http://www.google.com/gwt/n?u=http%3A%2F%2Fwww.nabble.com%2FWhy-can%2527t-Haskell-be-faster--td13505750.html&_gwt_pg=1 Nabble - Haskell - Haskell-Cafe - Why can't Haskell be faster?], "[T]he Clean type system gives more information to the compiler than the Haskell system does. The Haskell type system doesn't say that a certain value can be updated in-place or that a certain value should not be boxed (not counting the GHC extension for unboxed types)." (quote by Reinier).  In addition, according to [http://www.google.com/gwt/n?u=http%3A%2F%2Fwww.nabble.com%2FRe%253A-Re%253A-Why-can%2527t-Haskell-be-faster--p13510295.html another user] there, "[C]lean's uniqueness types allow for a certain kind of zero-copy mutation optimisation which is much harder for a haskell compiler to automatically infer." (quote by Jules).
 
**For discussions on how Clean optimizes its code vs. Haskell, see the following:
 
**For discussions on how Clean optimizes its code vs. Haskell, see the following:
 
***[http://www.algorithm.com.au/blog/files/36ca9a664954e680edb64d260d763252-350.php Stay Hungry, Stay Foolish - Haskell's Performance | …on Coding | Algorithm.com.au]
 
***[http://www.algorithm.com.au/blog/files/36ca9a664954e680edb64d260d763252-350.php Stay Hungry, Stay Foolish - Haskell's Performance | …on Coding | Algorithm.com.au]
 
***[http://www.google.com/gwt/n?u=http%3A%2F%2Fwww.nabble.com%2FWhy-can%2527t-Haskell-be-faster--td13505750.html Nabble - Haskell - Haskell-Cafe - Why can't Haskell be faster?]
 
***[http://www.google.com/gwt/n?u=http%3A%2F%2Fwww.nabble.com%2FWhy-can%2527t-Haskell-be-faster--td13505750.html Nabble - Haskell - Haskell-Cafe - Why can't Haskell be faster?]

Revision as of 13:00, 29 February 2008

1. What is the purpose of Clean?

The purpose of Clean is to serve as a non-strict, purely functional programming language with the following advantages over similar functional programming languages: