181 karma · joined September 19, 2017
Also, if you were to import over the network, by running `dhall freeze` a semantic hash of the content is computed so you are 100% sure that what you are importing is not going to change. Moreover, files that have a hash value will be cached by dhall.
If you don't want to bother with copying over Prelude and you don't trust the cache, you can also normalize the code before pushing it to the network. This will flatten all your imports and reduce your file to normal form.
You might be interested in what they say about imports here: https://github.com/dhall-lang/dhall-lang/blob/master/standar...
There are already kubernetes bindings available https://github.com/dhall-lang/dhall-kubernetes .
The syntax in the examples looks a bit more verbose and less readable than yaml but I think building sensible abstractions on top of it will alleviate the pain (abstractions here are innocuous since you can 'normalize' the code and they disappear)
I'm not too happy with the default formatting though. I think if the formatter indented nested values similar to yaml that would look better to the human eye.
The catch is that you have to define way more types, but if the code is complex enough it's really worth it.
It has the nice things of the languages above, combined together:
- a concise high-level programming language
- a compiler that helps avoiding bugs
- fast runtime
- access to a great ecosystem of libraries
(In better words: https://github.com/scala/scala-lang/pull/852#issuecomment-37...)
Moreover, if you work with Data Scientists you might find convenient working in Spark's native language.
A great thing about Scala is that you can either use as a better Java (availability of developers) or go fully functional-category theory like Haskell with libraries such as Cats.