To understand why we moved from punch cards to programming languages, we must first understand what punch cards did.
Punch cards were essentially pieces of card with holes in them at specific places representing instructions to a computer.
These cards were small and so could only have so many holes, limited storage space, so to give a long set of instructions, one must make
many punch cards in sequence which takes a lot of space. Furthermore, if there was one small error in the holes made, it would be
very hard to find as there would be many cards to look through, and so making it time-consuming.
To counter these many issues of transferring instructions to a computer, the first programming languages were created. These
programming languages allowed the programmer to code the instructions and data to be given to the machine relatively quickly, consuming
very little space, as well as being able to debug more effectively.
As programming languages were created and introduced, there was a difference between high-level programming languages and low-level
programming languages. High-level languages are similar to human language and so more problem solving, and logic based, whereas
low-level languages were closer to simple bits and machine code and so more technical. Because of these differences, as well as the
fact that each language was built with a different method of solving problems (one being mathematical, another more abstract) as well as
some being general and others being specific to one task. Many programming languages needed to be created to suit all these various
needs of the programmers.
I mainly use python as my main language; however I have encountered two issues with it so far. One being related to creating and
reading databases, something SQL can do quite easily. To counter this issue there is a library that can be downloaded and imported
called MySQL, now this library is nice but it’s for smaller projects and not quite as straightforward as SQL alone, so I wish
that python had a built-in database management system though I understand that can be complicated.
Another issue with Python compared to other languages such as C is that it is high-level and so it has a way higher runtime with a
lack of ability to manipulate the core of a computer as easily as other languages or even manage memory like C++. I would hope that
python rather than just implementing it as a part of itself, it’s better to create a library for these syntax with good documentation
documentation to allow it to be a universally used language in all contexts.
The first step would be to create a plan for the new programming language. Outline what its goal will be, whether it will be high-level
or low-level and if it will be specifically catered for one task or rather a more general language. Will I make it easily readable and
debuggable or more optimized for only speed and efficiency? These are things I will have to take into consideration. Also, looking at
other languages, especially newer ones so as to gain some inspiration from them. In contrast to newer languages, it would also be a
good idea to understand how the first programming languages were written so as to understand the core idea behind them.
Next would be to begin attempting to create each part that makes up a language, its syntax, commands, comment method,
variable types and so on, and then, most importantly, a compiler to put all the written code together and allow it to run.