In the beginning, there were only two numbers available to program, a 0 and a 1. When one imagines the power of the early programmer who used only these to write out elaborate programs, we can’t just imagine what they have been through. Thanks to all those people who saw the need for human readable languages and developed such beautiful languages like Basic, C and C++.
So, what is a program?
A Program, in its very simplest form is just a set of instruction for the computer to perform for a desired result. That’s all it is, simple isn’t it? It’s these humble beginnings that spun the whole race of programming languages. When we say “race” of programming language we mean to say that, each language is not a separate identity but related to one another, as each new language is influenced by an older one, where the latter lacked some essential features that we (the programmers) felt the need and developed the former to finish the gap. For some, the new language coexists with the older ones, for others they are replaced. This is how programming languages have evolved and the very art of programming is alive and kicking. Our C# is also no exception, and it is also inspired by some of the older languages.
The creation of C triggered the beginning of the modern age of programming, invented by Dennis Ritchie in the 1970s which exclusively used the UNIX platform. C eventually had grown out of the revolution of Structured programming (we would be elaborating on that soon) which gave programmers to track down the flow of execution of the program they had written as with the size (no of lines in the program) grew complexity and inadequacy to track down anomalies (called as bugs), which prevented the program to give out the desired results. Imagine if you had written a 10,000 + lines of program and when you execute it, it doesn’t work the amount of frustration you are put through. Although many other languages at the time used the same concept but C became the most popular and adapted language for its easy-to-use syntax and the fact that programmer was in control of the execution.
C hit its roadblock when projects become larger in size and slip into unmanageable program execution. In order to handle this solve this situation a new concept of programming evolved known as object-oriented programming (OOP – we’ll explain as we go ahead) and due to its inability to support this revolutionary idea, a new language was developed known as C++. All through the mid 1980’s C++ was undergoing extensive development and C still remained popular. But when C++ hit out 1990s, programmers headed for it immediately for ultimate flexibility and utility at that time. C++ was not a brand new language but just an enhancement of the already most popular language C.
Java was the next milestone towards the evolution of C#, which was developed from 1991 by Sun Microsystems. It’s an object oriented language and derived from C++. Java was evolution was not driven by the art of programming rather by the changes in the computing world which saw a tremendous breakthrough in the form of internet and a need for programs which are not specific to a particular make (made a particular manufacturer) and can be executed on every computer with any operating system (like Windows, MAC) as wide variety of users with their own preferred system connected to the internet. Although the main target was not internet but to be portable for microcontrollers, but Java found its extensive use in programming or in math homework help for the internet.
Before moving on to C#, we would like to take a detour and show you how actually our program gets interpreted and executed by on our computers. Each programming language has its own mechanism to convert our human readable instructions (programs) to be converted into machine readable programs (binary). There are two major ways of doing it, one is go through the whole program line by line, which is called the interpreter, and changing it into executable form, the other is to convert the whole chunk of the program and convert into executables at once. The program that does that is called compilers. Basic language is a good example of an Interpreter, whereas C uses a compiler.
Why the need of this explanation suddenly? Yes this is very much needed to understand the actual flow of data and instructions in a C# program, as they are common between all languages and apply to C# too. Java achieved its platform independence by utilizing the power of both interpreter and compiler. A Java program is compiled and an intermediate code is generated which can be utilized by any operating system to interpret and execute. Note: Programming languages produce the executable file (a file that the computers internal organization can understand and execute), and the underlying operating system is responsible for its proper execution. The operating system faithfully executes what the executable contains, and hence bugs and mistakes occur only during our programming. Take a note of that.