Two experiences with Elm

Blockquote
without much good discussion on the downsides of removing it;

But we have mentioned many downsides:

  1. The API is unstable and can change considerably from release to release.
  2. The code and data-structures generated by the compiler can change based on whether the --debug flag is set, meaning code can work in development, but break in production.
  3. Portability is compromised
  4. Having an easy way out makes it less likely that people will write better solutions that work well with Elm.

Changing things which are not documented or meant to be used is not uncommon. Java removed unsafe APIs in JDK 9. Clojure changed it’s hashing function, making a lot of code break because people relied on the output of the previous function.

Calling JS directly from Elm was not meant to be possible. The fact that people do it anyway doesn’t change this. The API is undocumented for a reason. This is not something unique to Elm. If you use unstable and undocumented API, you’re taking a risk that things just might not work tomorrow.

5 Likes