With existing input/output conventions being so diverse and so messy,
the only source of joy in such parts of the code are the rare occasions
when one can find a way to make the program a little less bad than it
might have been. We have two choices, either to attack I/O now and get
it over with, or to postpone it until near the end. Neither prospect is
very attractive, so let’s get it over with.
— DONALD E. KNUTH, TEX: The Program (1986)