Programming languages such as C and Java are high level languages that require the source code entered by the programmer to be compiled. Once the compiler has processed the code, it produces a set of object code that can be passed to other programs or run on a computer system.
When creating source code in an object oriented language such as C++, the programmer can use instances of objects to make the source code easier to follow. Once the code is compiled, the resulting object code will be difficult for a human to read, but can be processed very efficiently by a computer. The two types of objects are quite different, but for their respective uses — one read by programmers the other read by computers — they serve a similar purpose.
Object code can also keep the source code of a particular application protected and remove the requirement to include the source with the purchased product. One example of object code that consumers pay for would be Microsoft Office. The object code is written to a CD or DVD and packaged for sale, but the source code used to compile the applications into their working state is kept by Microsoft and not shared with the general public. This helps protect intellectual property for Microsoft and also eliminates the need for the individual to purchase the software to compile it prior to installation.
A compiler is a piece of software that transforms the entered source code into a machine language readable object which is optimized for reading by a computer. Separating the original source code from the installed code can also provide benefit to developers in testing, allowing the source code to continually change and be compiled to be available for later installations. An example of this might be to compare an application’s nightly build to the stable packaged object code. One needs compiling and is changed nightly, the other has been tested and is made available when the majority of the kinks have been worked out.
Some applications or even operating systems such as Linux can be compiled by the users once downloaded, or they can be downloaded and installed from pre-compiled object code. Many of these applications are open source and the development communities that create and support them encourage those using them to assist in modifying their source code.
There are more and more open source applications and developers around the Internet who would encourage the use of nightly builds, however the packaged object code of both open source and payware applications can be much more user friendly.