A Programming Language for Data and Configuration!

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

A day in the life of a developer often involves more time working with schemas, configurations, and data description systems than writing code and logic in a classical programming language. As more systems move into distributed worlds, e.g. cloud and microservices, and developers make increasing use of libraries and frameworks, the need to interact with a range of data formats and configuration mechanisms is only increasing. This is a treacherous world, where a misspelled property name or missing field can render an entire service inoperable, a mistake that a number in an API represents seconds instead of milli-seconds can lead to a message being set for delivery in several months instead of in an hour, misconfigured schema can lead to public exposure of sensitive data, and corrupt or erroneous results from a misunderstood data format could result in massive financial and/or reputational damage. To address these challenges this paper casts the problems of data and configuration descriptions, not as a problem of data representation, but as a type system problem, that can be addressed with well understood and highly effective programming language techniques! The novel challenge is that data representation and configuration are universal concerns in a system and, particularly in modern cloud or micro-service systems, these systems may involve many programming languages. In the past this has led to specification systems that use a least-common-denominator set of data types, often little more than strings and numbers, and then rely on conventions or (out-of-date) documentation to ensure that the data is interpreted correctly. This paper shows that, with careful design, it is possible to create a rich universal system that can be used to express data and configuration specifications in a way that is human readable/writable and that can be produced/consumed, much like JSON, by a wide range of programming languages and systems.

Original languageEnglish
Title of host publicationOnward! 2024 - Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Co-located with
Subtitle of host publicationSPLASH 2024
EditorsJonathan Edwards, Marcel Taeumel
Pages147-161
Number of pages15
ISBN (Electronic)9798400712159
DOIs
StatePublished - Oct 17 2024
Event2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2024, Co-located with: SPLASH 2024 - Pasadena, United States
Duration: Oct 23 2024Oct 25 2024

Publication series

NameOnward! 2024 - Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Co-located with: SPLASH 2024

Conference

Conference2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2024, Co-located with: SPLASH 2024
Country/TerritoryUnited States
CityPasadena
Period10/23/2410/25/24

Bibliographical note

Publisher Copyright:
© 2024 Owner/Author.

Keywords

  • Configuration
  • Data Specification
  • Programming Language

ASJC Scopus subject areas

  • Computational Theory and Mathematics
  • Computer Networks and Communications
  • Computer Science Applications
  • Software

Fingerprint

Dive into the research topics of 'A Programming Language for Data and Configuration!'. Together they form a unique fingerprint.

Cite this