Software is written in what is called high level programming languages. These languages are easy to understand to the programmer, but are not understood by the computer. Examples of high level programming languages include C and C++. In order for these languages to be understood by the computer they must first be compiled into the machine language corresponding to the computer’s architecture. Linux distributions have packages that are already compiled and configured for compatibility with most existing hardware and architectures. Chances are that the machine running the program has different hardware or architecture than the machine that compiled it. This may lead to bugs or performance issues. Precompiled programs also take away the possibility of customization of the code before implementation. Herein lies the need to compile the packages, as needed, for the specific machine that will be running them. The performance of the package is optimized according to the characteristics of the machine.
- Better use of Resources.
- Customization of program options, ability to remove or add functionality
- Takes more time for implementation.
- The compiling process requires 100% of the CPU.
- Not everything is better compiled.
- It takes twice as much space on the disc, the package with source code and compiled binary (source code can be removed after compilation)