Inhalt:
Unser bisheriges funktionales Programmierparadigma war nicht, oder nur eingeschränkt in der Lage, Zustandsveränderungen abzubilden. Das hatte im Hinblick auf die Zuverlässigkeit unserer Programme einige Vorteile, behinderte uns aber darin, einige Probleme direkt abzubilden. Objektorientierte Programmierung versucht durch Kapselung und Lokalität Zustandsveränderungen abzubilden, und dabei deie Nachteile rein imperativer Programmierung zu minimieren.
Streams stellen eine Möglichkeit dar, auch in funktionalen Programmen Zustände zu repräsentieren. Jedoch ist das Konzept zunächst weniger intuitiv nachvollziehbar, als das der Objektorientierung