On Thu, Oct 6, 2016 at 8:13 PM, Dave Ford <[email protected]> wrote:
> 2. *Runtime Exception. *Like a NullPointerException or an > IllegalArgumentException. I *love* these kind of bugs. Super easy to > find. Super easy to fix. A stack trace tells me exactly where to look. > These kind of exceptions have never been a thorn in my spine. I'm genuinely surprised by your experience / reaction to runtime exceptions. My experience has been the exact opposite. Runtime exceptions can only be found through tedious exercise of every branch of code through all possible states, which creates a horrible burden on the developer who wishes to not have to worry about how old code might break as new code is added and the size of the project (and possible states) increases. When you say you love these kind of bugs, are you saying you like to go through your program and try this or that input and see if you can get it to throw an exception? What if you change the code somewhere else, but in a section of code that *might* affect other parts of your codebase--do you then go back to each of the other parts of your program and try to think of new ways that exceptions might have be able to be raised? I wrote part of a large (very large--possibly the largest open source Ruby app, called Canvas) and at some point, the complexity becomes mindboggling. It slows down project development when you can't check (at compile-time) whether a change here affects the code *there* (and *there*, and *there*, and, does it affect *this* code?) The motivation of Elm, as I see it, is to push as many classes of errors as possible into the compile-time error space. Not all can be pushed into that domain, but many can--and that's considered an advantage because as project size increases, you can still move with confidence. Possibly related--I found it instructive to listen to Richard's "Making Impossible States Impossible" presentation at ElmConf. -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
