top | item 16510892

(no title)

dennisdamenace | 8 years ago

I’ve been using Elm since 0.16. Development is slow and thoughtful. Perhaps 0.19 will be a disaster, but I doubt it.

In the meantime 0.18 has been a very productive language.

One thing to understand is Evan wants Elm to be a language and not bound to JavaScript. This is the sound motivation behind blocking native packages.

discuss

order

archgoon|8 years ago

Rust is a language, and it can bind to C libraries. Java can import DLLs and shared libraries. Haskell can do this too. All popular languages that can run on a server can spawn a process and communicate via file descriptors.

Useful languages can interop with other languages.

always_good|8 years ago

Well, Elm does have interop with Javascript through ports. The mechanism is asynchronous which creates an explicit crash boundary at the expense of a mechanism that is more roundabout than just calling `foo x` when you want to wrap a Javascript library's `lib.foo(x)`.

Elm 0.18 and below (not sure what 0.19 is doing, it's not released) has synchronous interop through native modules, but those have been discouraged and documented as "do not use, will change in the future" since the beginning. And you can't easily publish them to the package repository.

To say Elm doesn't interop with Javascript is just wrong.

You may disagree with Elm's stance on its synchronous interop, but you're just disagreeing with trade-offs. Like all trade-offs, just because someone chose different ones than you doesn't mean they were oblivious to them.