Saturday, September 14, 2013

2. Applications - An introduction

The term "Application" is used for desktop apps, downloaded apps and even some advanced HTML websites are referred to "Applications"

Most HTML websites are written in and run from a bunch of text files, created using simple English characters. So, if you know how to type in English, you can create HTML websites quite easily.

"Real" applications run through a process called "compiling", which translates the same "English characters" into a bunch of "Machine Code". 

Its important to note here that when I use the term "English characters", I am referring to the characters you can type in on your keyboard. In reality, the "English characters" that you type is in the form of something called a "computer language". A computer language is just a bunch of "English characters" written in a specific format as I will explain later. From now on, I will refer to the "English characters" as a computer language.

What's Machine Code? 
Well, when you compile a file that was written using a computer language, the new file it generates is the format of "Machine Code". And, since machine code is written in the language that the computer understands, it runs really fast; Much faster than HTML! Machine code cannot be read by humans, only computers.

How difficult is it to compile into Machine Code? 
It's as simple as clicking on a single button. 
"Real Applications are compiled"
If you are building a small website or a project that you expect to have little traffic and usage, then it is not worth the time to learn how to create "Real Applications". In this case, you are better off building your project using HTML or a site builder like blogger.com, sites.google.com for simple sites. You can also learn HTML or hire someone that knows HTML. Nowadays, almost everyone knows someone that knows HTML. 

An important point to make is that there are many different computers, and many of them support different types of Machine code. For example, a Macintosh compiled product will not work in a Windows system because it does not support the same machine code. The same is true between an Apple iPhone and an Android Phone, they do not speak the same machine code. This means that you need to compile into multiple Machine Codes.

How do I know which code will work on which machine?
The operating system on the device defines the Machine Code support. So, a device running Apple's iOS will not work on a Windows 8. It will also will not work on a Macintosh which has a completely different operating system.

OK, what compiler should I use?
Since there are many devices and many languages, there are many compilers to choose from. I will simplify the choices for you.

If you want to compile to one device, use the compiler that is designed to compile to that operating system. This is usually supplied by the manufacturer of the device. For example, if you want to compile only to the Apple iOS devices, use Apple's "Xcode" compiler. 

So, I need to write the application many times for each device?
If you want to compile to every device that exists, that answer is yes. But, there are some compilers that actually compile machine code for multiple devices with the same language. For example, iOS and Macintosh OSX both use Apple's XCode compiler. But, they do not support Android. 

Professional Vs Consumer

It is important to differentiate the product you want to build before you decide which compiler to use. If it is a professional product that will be distributed to a very targeted market, then you can choose to support a limited number of devices. In this case, choose the compiler that meets the specific devices you want to support. 

However, if you are focusing your product on the consumer market then you need to take a different approach. 

First lets go over some data...

Today, 70% of the consumer market is on tablets and mobile devices. And there is every indication that this will increase.

There is about 8 Billion people on the planet. Out of that 8 billion, 5 billion have a cell phone. Out of that 5 billion, 2 billion have smart phones and the rest have older "dumb" phones that cannot run applications. Over the next few years, Apple and other manufacturers are working hard to sell lower cost "smart phones" to replace their older "dump" phones. There are about 2 Billion people that will probably never buy a cell phone. 
That means that 6 out of the 8 billion people on the planet will have a device on them that will be capable of running your app!
Now the major question...

What compiler will allow me to target the 6 Billion consumers?

The answer in the next Blog...

PREVIOUS - NEXT


No comments:

Post a Comment