No. In Scala/Haskell/O'Caml/Java you *don't* need to write unit test checking for types -- the compiler eliminates that class of bugs. In Haskell (and probably O'Caml too) you can actually make your types strong enough to make static guarantees about list lengths, e.g. guaranteeing that "concat <list-of-length-N> <list-of-length-M>" results in a <list-of-length-N+M>". That is an extreme (but real) example, but the principle applies generally.
I know it may sound like it, but I'm not actually partisan towards any particular language. It's always a trade-off, but you *really* have to know your programming language theory to know what you're trading off and for what.
The litmus test for any new language I learn is this: If the implication "It compiles => It works" generally holds, then it's a good language.
I know it may sound like it, but I'm not actually partisan towards any particular language. It's always a trade-off, but you *really* have to know your programming language theory to know what you're trading off and for what.
The litmus test for any new language I learn is this: If the implication "It compiles => It works" generally holds, then it's a good language.
Comment