 This is especially common with applications designed for Unix-like operating systems.The latter used to be implemented first because it allowed the developers to focus exclusively on their product's functionality without bothering about interface details such as designing icons and placing buttons.Designing programs this way also allows users to run the program in a shell script.