3 ms·
Haskell. I spent at least five years chasing down "AttributeError: X has no attribute 'Blah'"-errors in Python at runtime, and came to think that this was what
by runeks 9y ago
Haskell.
I spent at least five years chasing down "AttributeError: X has no attribute 'Blah'"-errors in Python at runtime, and came to think that this was what programming was. Three-or-so years ago I discovered Haskell, which transforms these types of errors into compile-time errors, preventing me from building the program as opposed to a sudden runtime crash.
I wonder just how many hours I've wasted doing this completely meaningless task. It's not really a problem while your programs stay small but, as they grow, I found it became the main source of time spent programming, taking away precious time defining the actual application logic.
Mind you, Haskell is fairly extreme in this regard, and I'm sure there are languages which take a similar approach, without the mathematical certainty of Haskell. But, as I've become used to the precision offered by Haskell, settling for something with fewer guarantees -- but more libraries and easier-to-digest documentation -- would feel like a great loss to me.
- Scea91 9y agoYour comment is not about Haskell but about static typing. I agree with you but there is no need to learn Haskell to enjoy static typing.