| ▲ | zkmon 3 hours ago |
| Give it enough time, every declarative language becomes a programming language. This is happening with all config files, markup languages, data formats. The distinction between code, config and data is being erased. Everything is a soup now. Data is application, configuration is code. Code is an intermediate, volatile thing that is generated on the fly and executed in the temporary lambda containers. |
|
| ▲ | thwarted 3 hours ago | parent | next [-] |
| We can blame von Neumann (et al) and his infernal architecture, where memory stores both instructions and data. |
| |
| ▲ | josefx 2 hours ago | parent | next [-] | | You can blame whoever invented the word "if", as soon as you can branch based on data you can just write an interpreter that turns data into instructions, no matter the architecture. | | | |
| ▲ | account42 2 hours ago | parent | prev | next [-] | | Not really, most of these configuration as code systems are not executed directly on the CPU but rather interpreted in which case a separate data-only memory would not stop anyone. | |
| ▲ | tovej 2 hours ago | parent | prev [-] | | von Neumann did not invent the von Neumann architecture. Not even a little bit. If you want to reason that the hardware is at fault, you should be blaming the Eckert-Mauchley architecture. |
|
|
| ▲ | Galanwe 2 hours ago | parent | prev | next [-] |
| This is so true, I have seen it happen with so many projects. It always starts with a cute declarative DSL, and inevitably imperative / flow control structures emerge, at which point you wonder why they didn't use a real programming language in the first place and save you the hassle or learning a half baked imperative DSL. - Puppet - CMake - Terraform - ... All these started with pure declarative DSL then incrementally created a nightmarish imperative monstrosity. |
| |
| ▲ | spooky_deep 16 minutes ago | parent | next [-] | | CMake was never declarative AFAIK? CMake today is effectively an eso-lang / Turing tarpit with some “modern” declarative conventions that people try to push. | |
| ▲ | Derbasti 2 hours ago | parent | prev [-] | | - Visual Studio project files are XML files that are interpreted line by line, and can contain variables, branches, and loops. Hell on earth. | | |
| ▲ | spooky_deep 15 minutes ago | parent | next [-] | | Horrible. Would’ve been much nicer if they’d reached for Scheme. | |
| ▲ | Xelbair an hour ago | parent | prev [-] | | what's even worse that schema uses extremely generic types with attributes denoting actual type. Makes reading it even harder, and any possible constraints due to type safety go out of the window, so we get worst of both worlds. |
|
|
|
| ▲ | holri 2 hours ago | parent | prev | next [-] |
| > The distinction between code, config and data is being erased. This distinction never existed in LISP.
Greenspun's tenth rule in action. |
|
| ▲ | mseepgood an hour ago | parent | prev [-] |
| So why do people still design declarative languages? |
| |
| ▲ | lionkor an hour ago | parent [-] | | Wishful thinking? Maybe they are tired of all this and want to make something good again, and so the cycle continues. |
|