CONFLANG is a workshop on the design, the theory, the practice and the future evolution of configuration languages.
Build systems, package managers, operating systems, cloud infrastructures, and web services are examples of modern complex software systems that require an extensive and non-trivial configuration in order to make them adapted to each different use-case. To manage the growing complexity that is then offloaded to configurations, the declarative approach has become more and more popular, illustrated for example by the infrastructure-as-code paradigm. This leads configuration to play an important role in critical aspects of software engineering, including security, availability, and maintainability.
However, static text-based configuration alone is falling short of expressivity, and is seldom sufficient. Data cannot be transformed, combined nor shared, resulting at best in boilerplate and duplication of information, or at worst, in data being invalid or inconsistent. Data validation isn’t supported either, and must be handed over to yet another tool down the configuration pipeline, if ever done. Correctly configuring a modern system is hard and failures may have substantial negative consequences.
These are the reasons why we witness the birth of a new generation of languages specialized in generating, validating or enriching static configurations. Some of these languages take a holistic point of a view and provide programmable configurations. Others prefer to specialize in one aspect of configuration, such as validation. These languages lie in a singular domain of the design space, with specific constraints, trade-offs and goals. Thus, because configuration languages operate under very different design constraints than traditional programming languages, because of their practical importance in software engineering and deployment, and because of exciting new developments, we think configuration languages are a worthy area of research.
CONFLANG aims to gather this emerging community in order to engage in fruitful interactions, to share ideas, results, opinions, and experiences on languages for configuration. Correct configuration is an actual industrial problem, and would greatly benefit from existing and ongoing academic research. Dually, this is a space with new challenges to overcome and new directions to explore, which is a great opportunity to confront new ideas with large-scale production systems.