The 'app' that worked in the system last year or even last month may not work in that same system today. The reason why it is so expensive to maintain an app (as much as $1mil/year) is because anytime Apple updates their iOS, then app must be updated.

Developers are constantly struggling with compatibility to older iOS versions users may still be running.

Decisions are pre-determined by the programmer who has defined the if/then statement of that program. If ___ happens, then ___ happens. When the program encounters an input that has no if/then statement is written for, it either kicks back an error message or just fails to respond.

Imagine if every time a new input was received upon which we were not programmed to handle, we kicked back an error message or sat idle.

It's not as if we can anticipate every scenario that lies ahead.

We also have to contend with the reality that the apps we run (including our habits) were opitimized to run within a particular system. When we go outside that system, the app doesn't function so well.

An example:

A PDF file was designed to work within a particular system - a reader for PDF files. When you try to open that PDF within another system, for example MS Word, it doesn't work. The data is no longer usable. It's because PDFs are not built on an open system.

Plain text on the other hand is readible on thousands of devices. It exists as the most basic building blocks of any program. Because of this, text is compatible with far more 'systems' that a PDF file ever can be. Say you want to post something to a new tool. Plain text will always work.