The Metastasize of Templating in Declarative Language
13 days ago
- #semantic-impedance
- #declarative-configuration
- #templating
- Templating languages like Jinja are added to declarative configurations (e.g., SQL, YAML) to handle dynamic needs but eventually lead to complexity and debugging challenges.
- The 'semantic impedance' arises from the mismatch between intent and the awkwardness of expressing it in available tools, similar to how jQuery bridged gaps but created new problems.
- Data engineering faces unique challenges due to stateful data systems, making it harder to adopt AI coding assistants compared to stateless software engineering.
- React's success came from separating computation (JavaScript) from UI structure (JSX), a pattern that could benefit declarative configurations by keeping logic out of structure.
- Runtime predicates in configurations (e.g., conditional logic, date formatting) often metastasize, making configurations unreadable and unmaintainable.
- Linting templating languages can help enforce boundaries and prevent bad patterns, but the root issue is the blending of computation and declaration layers.
- A 'React moment' for declarative configurations would involve separating computation (in a programming language) from structure (in a declarative language), avoiding embedded logic.