The word stream is vastly overloaded in meaning in modern computing. It carries many different meanings depending on the context. For instance, in Java, in different times streaming meant an abstraction over blocking IO, non-blocking IO, and later, a way to express data processing queries.
In essence, a stream in computing is just a flow of data or instructions. Usually, the content of a stream is not loaded into memory fully. This possibility to process basically unlimited amounts of information on devices with limited memory capacity is a motivating factor for the rise of streams, popularity that has been happening recently.
The definition of the stream as a flow implies that it should have some source and a destination of data elements. In computing, these concepts are naturally expressed in the code in a way that on one side of the flow the code...