Today in therapy I came up with an interesting way of looking at the answer to a question - specifically, what limits me from changing my viewpoint, perceptions, aand such so as to see things in a more positive light than I usually do. In doing so, I was searching for a way to explain things that would bridge the gap between how I prefer to explain things and how others might understand them. I liked what I came up with enough that I thought I might want to write it down for later perusal, so I've decided to note it here. Any oversimplification involved is likely intentional to convey the target message.
Computers have operating systems; operating systems essentially tell computers how to handle Things. A Thing, in this case would be a file - depending on how the operating system is designed, it may interpret one Thing as a picture, one Thing as a recorded sound, another as a document, and so forth.
When computers were first designed for use in the United States, they were written under certain convenient assumptions. They assumed that pictures would be written a certain way. They assumed that documents, pictures, sounds, and so forth would be formatted in a certain way, for example. The earliest operating systems merely handled the task of holding Things, and left the task of understanding Things to programs; more modern operating systems have an intrinsic level of understanding of Things and their purpose, but have programs to handle Things better or to explain Things the operating system cannot understand.
With this in mind, a given operating system is written with assumptions involved - for example, it assumes that you will have the hardware necessary to run it, to give it commands, to let it work with other computers, and so forth. It also assumes that Things should be handled a certain way, that programs that provide it with better Thing-handling instructions should work a certain way, and so forth. This means that when you find that your operating system can't handle Things, you have three basic options:
1. Patch the operating system - teach it to be capable of handling these new Things on its own.
2. Give it a program - let it have the ability to handle Things when it needs to, without changing the way it works.
3. Change to a different operating system that is built to adapt to handling new Things on its own.
While attempting to explain this in a non-computer-based manner, I first came up with this translation:
Let's say that the Thing you are attempting to teach the computer to do is equivalent to a human being needing to accomplish the new Thing of being able to climb to the top of a roof.
In this case, 'patching the operating system' - so that the human is capable of doing these things as often as is necessary - might be equivalent to attaching stilts to the person's feet. They can indeed now reach new heights, but there are also new skills to learn (how to walk on stilts without falling over, for example.)
Giving a program that can help them would, in turn, be roughly equivalent to giving them a ladder - they would have a tool for the task that could be used as necessary, but would have to bring that tool with them whenever they expected to climb onto a roof. Likewise, there would be circumstances in which the tool wouldn't work - taller roofs, muddy ground in which a ladder could slip, and so forth - that might require a different tool for the same general task.
Changing the operating system, in this case, would be something more radical -- for example, developing shoes that can automatically adjust to the height a person needs to be to reach an out-of-reach surface, or to a greater extreme developing the natural ability to stretch one's body to greater lengths. This new feature would make roof climbing, rock climbing, reaching the top shelf, and other related tasks much easier, as well as handling the specific Thing in question, but would require adapting how a person approaches the situations that normally would require a new tool for the job, or even learn new skills that did not exist before the solution was developed.
I also came up with a slightly better metaphor, which is the one I'm more fond of personally, while still being computer-related:
When someone writes a program, they likely write expecting that the language the computer understands will include, say, an English alphabet, as well as the ability to understand their language. Unfortunately, this is not actually the case. People who develop operating systems, or other systems that affect things on a more global scale, soon discover that they must become familiar with many other languages and their quirks in order to accommodate every possible situation.
(The numbers that follow are off because I was running off the top of my head; I may fix them later if I'm fond enough of this to actually research the subject.)
The original ASCII system includes a total of 256 characters, including special characters used by the computer, the 26 letters of the English alphabet in both capital and lowercase form, ten numerals, and various punctuation points. Operating systems and programs built to understand only these 256 characters, however, would be in trouble when dealing with foreign languages - the dozens of accented letters of European languages, and the thousands of individual characters of Chinese and Japanese languages which can mean anything from individual sounds to entire words. Assuming that English is spoken fluently by 600 million people, and there are six billion people on the planet, that means that an program that makes the same assumptions as programmer is only applicable to a small fraction of every possible situation on the planet.
In turn, this means that the difficulty in changing one's perceptions can be as great as that in changing one's ability to write -- even the most talented author would be hard-pressed to translate their own work into every possible language in such a way that the original impact and intent is there, and so that any information or entertainment value it attempts to convey is present. Likewise, I think that the biggest reason why I have problems in modifying my perceptions to change their focus or to aim for more positive interpretations may be that changing these fundamentals is as difficult as translating fluently to a new and unfamiliar language or market - one that may have a larger presence than the one I understand, but nevertheless may be out of my ability to grasp.
So, there it is, for better or worse. Let me know what you think -- I'm curious, because my brain takes some interesting paths when it gets philosophical.