While everybody else solves problems they imagined themselves, Apple® sees the real problems of the real users and provides smart, easy to use and effective solutions!
Except that it’s the default behavior and it’s actually encouraged. Also, you can still do unsafe operations with &+ if you need performance/wrapping behavior. A compiler flag is a binary choice.
Keep in mind that they had the Objective C historical baggage to deal with. In my opinion, they did an exceptional job making the sanest possible languages within those constraints.
Far from it. The type system is very solid, I agree, but the rest isn’t so good…
Do notation looks specifically designed, on purpose, to confuse newbies because it looks like it provides a way to program in Haskell the same way you would in conventional languages, but in reality it behaves very, very differently (<- overrides a definition instead of setting a variable, return doesn’t do an early return from a function, as someone who had a prior experience with conventional languages would expect, but wraps the given value into the current monad).
Can’t reload +, -, *, / separately because they’re all part of the same type class Num, this leads to a slew of scarily-named operators like |+| or etc.
In other words, they took an idea with a great potential and created something that looks like it was designed on purpose to confuse and scare newbies away, typical “open” source.
why does that matter to u? u’re supposed to write portable code.
which is already sufficient in making Haskell more fit for creating correct programs than languages with weak type-systems.
the good thing is that the amount of things-to-learn (knowledge that humans r not born with) about Haskell is quantifiable. other languages r bad to the point of being indescribable.
do u know what’s TRUE_LOVE™? u’d think it’s LOVE™ at first sight. WRONG. it’s when, at first sight, u immediately abandon ur previous first-sight LOVE™. so, for example, if u had thought that C++ was a good language, but immediately abandoned it in favor of Haskell (like i did), then u know that’s the real thing.
i also disagree with the naming of “do” and “return”. but otherwise, it’s actually the other languages that should be criticized for not working like Haskell.
and an immediate recognition of that + and * work in a number-like way.
Nothing… except that the developers of the main (and practically only) implementation don’t seem to care about security. It’s a part of Haskell Platform after all.
And where did FreeBSD packagers get the sources?
OK, it might not be a package manager, but it’s still included in the official Haskell Platform and is a recommended way (for newbie developers at least) to install libraries. Not being a complete package manager is still no excuse for it to be insecure.