Free software and open source software are developed and distributed according to a philosophy or strategy in which an executable program is always shipped with its full source code. Recipients are free to change it and/or redistribute it, with some licenses stipulating that this may only occur under the same terms. There are many reasons why this might be helpful. If many people can view the source code then it is easier for any bugs to be discovered. Programming can be done in a collaborative manner with many developers. Open source is different from freeware which is restricted by its license from being modified.