4 ms·
As I tried both Clean and Haskell, for me Clean is "worse Haskell". As one example, Clean did not support non-latin1 alphabets in the UI library and my attempt
by thesz 5y ago
As I tried both Clean and Haskell, for me Clean is "worse Haskell".
As one example, Clean did not support non-latin1 alphabets in the UI library and my attempt to somehow correct the situation was in vain, the next release of the language did contain the same error. In contrast, when I discovered non-linear (at least quadratic) behavior in relatively fringe case of type checking algorithm in ghc, it was corrected quite quickly.
As per language themselves, Clean purported to have uniqueness types which should make programming better and easier and Clean developers came with special syntax to reuse same names during processing unique-typed values. Which is essentially a Haskell's do notation in disguise, except it cannot be used for different purposes, like non-deterministic List monad. At about 2008 or slightly earlier, type system of Haskell became powerful enough to erase bindings from environments (famous HList by Oleg Kiselyov), allowing one to express many things, including linear and unique types (example [1] - if state's parameters can change number of bindings, we can check for bindings' erasure, expressing linear (all bindings are erased, except ones returned) and unique (some bindings can be left) types).
[1] http://blog.sigfpe.com/2009/02/beyond-monads.html http://blog.sigfpe.com/2009/02/beyond-monads.html
I keep saying what is language feature in regular programming languages is a library in Haskell. Clean is no exception.
- kazinator 5y agoYou can't compare fixing some quadratic time behavior in one place (the type checker) to something that sounds like could be a major piece of work: multilingual character support in UI. If it only goes to ISO latin, it's probably using 8 bit strings, and assuming that bytes and characters are 1:1. Also, the average Haskell developer practically exists for the purpose of fixing quadratic behaviors in type checkers; you file that bug at 3 a.m. on December 25, and by 8 you have a shiny fix under the tree.
- thesz 5y agoHere it is: https://mailman.science.ru.nl/pipermail/clean-list/2002/002137.html https://mailman.science.ru.nl/pipermail/clean-list/2002/0021... The code I've asked contains two calls instead of one, aside of that it was quite simple and would allow at least Russian users of Clean to have proper dialog titles. I guess it is nothing like "major piece of work". It was a fix for peculiarities of Windows UI of that era - dialog titles required different approach than dialog fields.