Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You can shell out in Nix and Haskell. If they are not “declarative” then what is [both declarative and useful, a.k.a. capable of interfacing with outside world]?

Dockerfile is intentionally bare-bones. It just gives you RUN straight up, no scary hidden option, but it’s up to you how to use it. If you want to write imperative, you can. If you don’t write imperative, pin everything to a hash, shell out only to Dhall and Prolog, it can get very declarative…

…at a cost. The fact that people do not tend to go this route means equally that 1) they are lazy, and 2) using RUN this way is pragmatic.



That's what I meant by "I get why it is the way it is".

I'm not suggesting it change. I'm saying that calling it "not declarative" seems fair, based on the way that most people actually use it.


And I’m saying that it is not fair, for the same reason (as well as for another reason, which in short is “nothing can be both declarative and useful by that logic”).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: