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, a 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 programming language problem, that can be addressed with well understood and highly effective programming language and type system 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 system 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. This paper presents a novel programming language for data and configuration, that provides a unified and powerful system with all of the high-value features, including type-safety, versioning, packaging, and IDE support, expected from a modern programming language.
Wed 23 OctDisplayed time zone: Pacific Time (US & Canada) change
16:00 - 17:00 | Onward! PapersOnward! Papers at Pacific Chair(s): Stephen Kell King's College London Please stay seated – an Onward! essay session will follow immediately: https://2024.splashcon.org/track/splash-2024-Onward-Essays | ||
16:00 25mTalk | A Programing Language for Data and Configuration! Onward! Papers Mark Marron University of Kentucky DOI | ||
16:30 25mTalk | The Meerkat Vision: Language Support for Live, Scalable, Reactive Web Apps Onward! Papers DOI |