Those who don't understand Unix are condemned to reinvent it, poorly.
No! This is a feature. The actual core data-processing part of a program should not care where its data comes from. There needs to be separation between engine and interface, and different interfaces are needed for different types of input scenarios.