"The reason people say that collection pipelines aren't a feature of OO programming is that the popular OO languages like C++, Java, and C# didn't adopt Smalltalk's use of lambdas, and thus didn't have the rich array of collection methods that underpin the collection pipeline pattern."
I still remember being struck by the elegance of Smalltalk during a "Programming History" module at University. Afterwards Java just felt a bit 'dirty' in comparison.
Thankfully Java has lambdas under its belt now so stream processing is at least bearable:
Observable.from(events) .map(eventDeserializer::deserialize) .subscribe(System.out::println);