Skip to main content

All Things Flow: Unfolding the History of Streams (extended abstract)

Aggelos Biboudis‚ Jeremy Gibbons and Oleg Kiselyov

Abstract

Heraclitus observed that all things flow and nothing remains still; “you cannot step into the same river twice”. So what is a stream in computer science, and where did this notion come from? We divide streaming abstractions into four categories: a) as a means of processing lots of data in limited memory; b) as event processing and correlation; c) to capture the semantics of I/O; and d) as iteration abstractions. Following these four axes, we unfold the history of streams, and give an overview of how this abstraction started to come into existence as a mainstream programming language facility. Our goal is to present briefly the related concepts through literature review, drawing connections between programming language features and technologies. This discussion will be of interest to the young computer science researcher, the curious software engineer, and the grizzled database query optimization specialist.

Book Title
6th International Conference on the History and Philosophy of Computing
Year
2021