It also is about designing things around a single buffered input stream. There is no reason GUIs couldn't do this, but most don't.