In the world of technology today there is room for everyone at every level of expertise. From our identified Gurus, to the just bought their first computer newbie. Home computers are sometimes almost to easy to use. The old saying "just enough rope to hang yourself" comes to mind. Settings that modify the very way the system looks, and runs can be changed with the simple click of the mouse. This power, which has been given to every level of user, is not from training, but from improvements and advancements in the system, and application software on the computer. This software is in a constant state of development, improving on current features and adding new ones.Out of this regular and consistent update in technology have grown many theories and Ideas on how software should be developed and controlled. From corporate America, to college campuses everyone has an idea from one extreme to the other. On one side the belief all software should be free and open to all, and the other protecting software secrets like a rabid guard dog. Of course, both sides believe the other is a fanatic with a complete lack of sense. The real dividing line is not actually the control and distribution of the software itself, but the blueprint or source code that creates it. That source code is the human readable text that defines what the software does, and looks like. From that a compiler converts it to a form used by the computer know as machine code. In this compiled format it appears to be complete garbage to the average person, even to most people considered to be computer professionals or gurus. Most software--at least on the traditional side--is distributed in its compiled form. The original intent of compiling was not to protect the source code, but this has been one benefit to the software developers. Since a computer can not read the source code, a program is complied to allow it to run on similar type of hardware without the requir...