Difference between revisions of "FAQ"
From Clean
Jump to navigationJump to searchDekuDekuplex (talk | contribs) (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...) |
DekuDekuplex (talk | contribs) |
||
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. | + | *'''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:
- 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 Gentoo benchmark, the current Clean entry runs the meteor-contest benchmark 2.6 times faster than the corresponding Haskell GHC entry.
- Easy optimization of code: According to at least one user on Stay Hungry, Stay Foolish - Blog, Clean code can be easier to optimize than Haskell code. Also, according to one user on 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 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: