Hacker News new | ask | show | jobs
by owl57 2847 days ago
I believe this claim to have two more narrow meanings:

1) If it compiles, you won't get a "undefined is not a function".

2) If it worked, you changed something and looked at all the places compiler told you to look at, all the code it didn't tell you to look at is very likely to continue to work corrrectly.

(1) is a very convenient feature and easy to advertise, but (2) is what makes people jump around and tell that everyone should use ML: it allows to be not afraid of changing something in the first place.

1 comments

Data point. I just converted a small app to Elm 0.19. So, that's a real 0.x: breaking API changes all across the standard library. I just repeatedly ran the compiler and jumped to the next error. About an hour for my 1 KLOC app (and Elm code is pretty sparse), seems rather tedious. But! Now it works again, and I believe it to be working just as good as before. Of course there could be some new bugs, but I would rather expect them in the substantially changed parts of the Elm runtime than in my app where I didn't look at anything compiler didn't tell me to look at.

I have even less experience with OCaml, but my gut feeling is that it should be about the same in this respect unless you let mutable state run wild.