5 ms·
Scala's flaw - and Elm's strength - is it is a massive language that allows for a large amount of magic to happen. Elm is by comparison tiny and extremely expl
by anthonybullard 9y ago
Scala's flaw - and Elm's strength - is it is a massive language that allows for a large amount of magic to happen. Elm is by comparison tiny and extremely explicit, and error messages thrown by the compiler are almost always super helpful. But Elm can't (really) be used on the server, so it doesn't hurt to look at Scala there, though be prepared to have a hard time finding experienced engineers to hire.
- leshow 9y agoId argue that while Scala has more powerful features, it has less "magic". Elm can't be used on the server because it has a magical create app function that you must feed the exact right functions into in order to make anything. AFAIK it's not a general purpose language.
- anthonybullard 9y agoDefinitely not general purpose, but it has nothing asking the line of implicits and implicit type conversion and the such that makes reading Scala code impossible to read, if not write, without a tool like IntelliJ.
- shostrift 9y agoEvery time I pick through some new Scala code I feel like a detective because of this. It's a powerful feature but so unintuitive it makes life difficult.
- lmm 9y agoI find it best to use Scala's implicit stuff for things that would be completely invisible in another language (e.g. "this line might fail with an error" or "this line accesses the database"). That way if you're reading in a plain text editor you're no worse off than you were in, say, Python, but if you use a tool like IntelliJ (and you should!) then the GUI is enhancing your experience, telling you more about your code and reducing the need to click around library code to understand what the code you're reading is doing.
- leshow 9y agoWe have different definitions of 'magic'. `Html.program` is magic, `comparable` is magic. Elm has been steadily removing features and adding magic since they lost `Signals`