Complexity and Programming Languages

abstract: experiments with Ansible

Complexity and Programming Languages

I experiment with Ansible for Configuration Management. The prgramming is difficult for a number of issues which perhaps can be identified when comparing the language I have to write code in with normal Programming languages (in the Algol, Pascal, Haskell tradition).

An Ansible programm is written as JSON data structure (notated in YAML). There are structuring elements:

The data structure is broken up in files, which are glued together with including directives or by search, following a complex pattern (more than a dozen levels of preference). There is also a hidden (i.e. not accessible to the programmer) structure:

I wonder how a language like Haskell compares, when considering a Haskell program as a data structure, which is then executed. The compiler translates the syntactically richer programm text in a tree, where nodes contain a dictionary of variables and a list of functions to execute. Ansible does not use a compiler and seems to execute the programmer written data structure directly.

Ansible detect only a very limited class of errors statically (essentially YAML errors in the construction of the data structure by missing proper indentation).

Produced with SGG on with master5.dtpl.