Not only is generating output challenging for a computer, but simply sending messages between different hardware & software components! Even when you don't add compression where the channel lacks necessary bandwidth, encryption where it lacks necessary confidentiality, or error-correction/detection where it's not reliable enough.
All the same theory applies when storing data to be read later, or when transferring data between computers over the internet!
1/?