Clean is a general purpose, state-of-the-art, strongly typed, pure and lazy Functional Programming Language designed for developing reliable, efficiently running, real-world applications.
Purity guarantees modularity at every layer in every part of the software, from the smallest component to the largest, since side-effects are not possible.
Once a component works, it remains working no matter what is changed somewhere else.
This makes it much easier to ensure the correctness of the code, even if applications are getting large and complex.
Strong typing means that all functions and all data in the code have a type signature, so one cannot use software components wrongly.
As a result, almost all programming errors are detected by the Clean compiler at compile-time.
Thanks to higher-order functions, polymorphism, type classes, and higher order types, one can create highly re-usable software components, resulting in compact, readable code while reducing the chance of making mistakes.
As a result of all this, Clean applications are very reliable, and often run first-time-right just out of the box.
Clean is designed and developed by the Software Science Department from the University of Nijmegen.
The first version of Clean stems from 1987.
Many improvements in the language and its implementation have been made since then.
New features, language, and efficiency improvements are still being made today.
Clean and Haskell are much alike, yet Clean has some unique features, such as built-in support for uniqueness typing, dynamic typing, and type driven generic functions.
Without these features the realization of Task-Oriented Programming would be much harder.
Clean is well-known for its super-fast compiler producing very efficient code: it can compile itself in seconds.
A fast compiler is very convenient when developing huge applications such as VIIA.
Clean runs on all major Intel-based platforms, such as Windows, Linux, and Mac, but also on ARM-based machines, such as the Raspberry Pi.
An interpreter makes Clean available for other platforms as well, and enables Clean code to run in browsers.
Clean is freely available, and one can download Clean from: https://clean.cs.ru.nl/Download_Clean