Any program, software or an application is built using a set of instructions that computers will understand.
Usually these instructions are written in something called high level languages.
Examples are C, Java, dot net, python, etc..
In order to write these instructions, an application developer uses a text editor like Notepad, Notepad,
plus plus or advanced editors like Sublime or Eclipse.
So in essence, we can say that the journey of an application begins with a text file, with a set of
instructions.
Now, what do you think will happen if an application developer starts to distribute this file with
a set of instructions?
Will the file work as an application?
Can we distribute it to various users and ask them to use the application?
Absolutely not.
If an end user double clicks on the file, it will just open the set of instruction but does not run as a program.
So in order to make it as a program, the text file with a set of instructions has to be treated with
a special process and make it more suitable to run on all kinds of platforms.
Let us take a real life analogy to understand this better.
Consider all the ingredients to prepare a pizza.
Now, can a restaurant put all these in a box and send it to a customer?
Will the customer be able to enjoy the pizza as as a pizza?
Absolutely no.
So what has to be done to make this pizza ready to eat?
All these ingredients need to undergo a process of cooking to get them ready to eat.
pizza.
Now the restaurant can pack this pizza and delivery to end customer who can directly consume it without having
to know how to cook.
So the important step in converting the ingredients into a pizza is cooking.
Similarly, the process of converting a text file with a set of instructions into a file that can run
on any platform is called compiling.
And the resulting compiled file is called the Portable Binary.
Portable because it can be downloaded by thousands of users and run as an application without the end
user having to know how the programming works.