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 language | English |
---|---|
Title of host publication | Onward! 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 publication | SPLASH 2024 |
Editors | Jonathan Edwards, Marcel Taeumel |
Pages | 147-161 |
Number of pages | 15 |
ISBN (Electronic) | 9798400712159 |
DOIs | |
State | Published - Oct 17 2024 |
Event | 2024 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 2024 → Oct 25 2024 |
Publication series
Name | Onward! 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
Conference | 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2024, Co-located with: SPLASH 2024 |
---|---|
Country/Territory | United States |
City | Pasadena |
Period | 10/23/24 → 10/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