For note, I ran Elm at work from 0.16 to 0.17, I’ve experienced a LOT of bugs in Elm (and I’m not talking about the changeover, which understandably has changed), from typing related bugs to the javascript output crashing because of it misnaming things to all manner of things (I have a large list of github issues here of the issues that others reported). Many of those issues still exist even up to 0.19. It is not a stable language.
I’m curious how that has happened, because I never had a week where a bug in the elm compiler alone didn’t happen, as well as immeasurable bugs among a variety of libraries (admittedly most were logic bugs, but still bugs).
/me is thinking that post sounds a whole lot like a sales pitch, I could never ever say that a language is bugless, no matter what language…
Especially this, Elm was based on OCaml and Haskell do remember, except Elm is not inhereting the rock solid compilers of those, though it easily could. I don’t know why Elm has it’s own compiler as it easily could have been a syntax plugin to the OCaml compiler (like ReasonML is to on OCaml, among others), then it would get far far more safety, a couple of decades of stability testing everywhere, much better and tighter and more efficient code generation, much faster compiling, etc…
Well, other than the number
type comparison bugs, the auto-conversion to strings and NaN’s in some cases for integer types, etc… etc… etc… of course yes?
Aaaand this is a troll… I think I’m out… ^.^;
Well, one more thing as this is pretty useful, sec…
╰─➤ find . -iname '*.ml' -exec cat {} \; | wc -l
15013
And remember that OCaml can end up being a lot shorter than Elm for big projects due to it’s PPX functions and higher typed modules. Since changing from Elm I’ve had no compiler bugs, no language bugs, and as I try to encode my logic into the type system as much as possible (an area where Elm lacks in) I’ve had very few logic bugs. That also doesn’t take in to account the other libraries I’ve written and pull in either for it to use, this is purely just for the local project at work (it used to be bigger until I pulled out some reuseable parts).
Well Elm does have some built-in type classes like number
and comparable
, however those have bugs (still to 0.19) and you cannot user-define new type classes or instances there-of.
Yep same, I’m only using OCaml for the front-end code at work, it’s not used in the backend at all (though I do use it on the backend ‘with’ elixir via ports for some personal projects).
Yeah definitely this! Going to Elm from javascript is still going to static typing from dynamic typing and that experience alone will make one a better programmer over all.