Punch cards were mainly used for easy an effective way to store programs that would run on computers on large amounts at the time of their existence and discovery. The data on the punch card were encoded using binary notation with 80 columns, each with two rows of 40 characters. These columns, having two bits and a byte per row, will then be punched for specific binary configurations, with punched ones being a "1" and non-punched ones being a "0." These punch cards were then fed directly into the computer one by one to execute specific commands in the programs. If these still exist now, it will definitely be the most uneffective way to run a program. First, programming has a lot of room for errors, and if you had errors using punch cards, you will have to produce more punch cards that will fit the program so that it runs seamlessly. Considering how abstract they were, debugging would be a chore as well. Secondly, now you can just change a line in the middle of a program and test if it works, but the same thing can not be said for punch cards. Editing a "line of code" of a program might result to "rewriting the whole program," or in this case, re-punching all punch cards due to this small and significant adjustments. Not to mention the fact that you might have to repeat this procedure over and over again until you have a fully functioning program. Thirdly, the punch cards have to be fed in order, and when a small gust of wind comes and knocks down the pile of punch cards, it would definitely be a hassle to make them ordered again. Hence, programming languages exist. Why? It's easier to read, to debug, and to maintain compared to punch cards. Instead of punching holes or even writing by hand, you can just type what you want the program to do with built-in functions and voila, you have a program! If a mistake happens, you can just change a line where said mistake came from and "khalas!" And this time, you don't need a whole vault to store punch cards because these programs are stored in the computer as a file. Thus, it improves the efficiency of programming in many different ways.
There are hundreds of different programming languages out there. Why do you think we need so many?As programming evolves, there are specific softwares that require diverse elements for it to compile that may not be in the ability of just one specific programming language. Thus, multiple programming languages are created to accordingly fulfill the tasks and elements these softwares require. This can be seen from Python and Java being the general-purpose and versatile one, while HTML and SQL are used for managing databases or creating web content. Although it may be somewhat doable to create web contents and manage databases using the aforementioned general-purpose languages, some other languages may be better to use considering it saves a lot of time. All in all, the reason why there are so many programming languages is so that we can cover the cracks and gaps of each softwares and tasks with different abilities that are prevalent and effectively demonstrated in different languages.
What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.I mainly use Python, and as I have experimented on it, it is not really suitable for large-scale programs or applications, including games, etc. Even using different libraries for UI/UX generation for gaming, it does not produce something of high-quality and is often slow, which is another downside to Python. I would like this to be different by having a wide variety of libraries in Python that are optimized for creating different large-scale programs and applications (like games) and maybe enough memory management as well as speed so that it runs smoothly. This was also why I switched to Java since I've heard that it is better at game development compared to Python, which is one reason why I forgot most of the Python's syntaxes.
If you were going to create a new programming language, how would you start? What do you need to define?I would start by defining the syntaxes and some of the commands. I would make the syntaxes and commands be as "human-language-friendly" as possible, so that it will be straightforward what it will do. For example, instead of "for i in range(x):" I would make it say "Do this x times:" Again, it is an example, but that would be an overview of what it should look like if I make a new programming language. I would also pick a specific purpose of my language, e.g. to make building websites more effective, to easily make games, etc. I would also maybe add some more features according to the exact purpose of my language.
Works Cited and Additional Resources: