Programming Languages


 Greetings reader!
Today, we're going to talk a bit about programming languages!

We communicate in many different ways, whether through spoken word, physical gestures, or written communication. The world of computers is no different in that all the parts need to have a way to communicate with each other to perform specific tasks. The result is our smooth experience when using a laptop, desktop computer, or smartphone. To get that result, many different programming languages are used to create what we see as an end user. The purpose of this paper is to describe my experience with a few different programming languages and their purpose.

My experience with programming started with this course. I have had a couple of decades of experience using computers, but never have I really got down to actual programming language. It is different from building a computer. When building a computer, I have clearly labeled parts that I can fit together, whereas, with some of these programming languages, a simple mistake with a misplacement of a one or zero could cause the whole thing to fail. For this reason, I thoroughly enjoyed using the Scratch program. You can find the link to my scratch project at the bottom of the page. The program has clearly labeled building blocks I can piece together to perform specific actions. I encountered minor difficulties when using Scratch, such as something not working quite how I expected or multiple things executing simultaneously, but it taught me to be incredibly specific on what I need to happen, which is the point. I was able to overcome these difficulties by simply running the program multiple times and tweaking certain things to see what the outcome would be. I learned a lot about the mentality needed for programming, and I must be very intentional with everything I do. I cannot just expect the program to care for every mistake I make. That said, Scratch was a cakewalk compared to the participation activities. I found myself being easily confused when using the machine, assembly, and high-level languages. I had to store much of the information needed to complete what I was doing in my head as I moved forward rather than it being clearly labeled. I imagine this changes with time and becoming more familiar with the languages.

The differences between the types of languages lie in their complexity and application. Machine language is the most basic building block of programming language. It is the literal entry of what the computer needs to understand what to do. According to Gundurao, early programming was extremely time-consuming and was carried about by direct machine language with a person putting in ones and zeros. (Gundurao 2010) Using this language by itself was “effective” at the time because it was the only choice. Now, machine language would be used for extremely simple tasks, and most applications would at least use assembly and, more likely, high-level programming languages. The evolution of this was to use the computer itself as a translator of sorts; this gave birth to assembly language. Assembly language is like having a translator for machine language that makes the language readable and easier to understand. With the language being easier to understand and thus create, it saved a lot of time and allowed for bigger applications. High-level languages are the evolution of assembly language. Rather than having a basic translator who can simply understand and repeat, it is like having someone fluent in a language who can not only instantly interpret that language but do it much more efficiently so that more work can be done. It allows for more complex commands that can take care of multiple things using those building blocks and assembly languages that have been created over time. High-level programming languages are most effective for building actual computer programs, games, apps for phones, or web design. Through the participation activities, I found the assembly language easiest to use. I do not feel that I have enough experience to be genuinely comfortable with the high-level language so it was easier to slowly go through the assembly language.

I think that the most popular programming languages are high-level languages such as Python. This is the case because it allows users to program more at once. If machine language is creating the product, and the assembly language is loading it onto the train, I consider the high-level programming languages to be giant train loads of the product being sent to where it needs to be. I do not hear much about assembly languages in the real world, but I hear plenty about Python or C++. According to Wassberg, programs written in C run fast and perform at a high level. (Wassberg 2020) So it is no wonder that it is popular today, where people need everything done as fast as possible.  I also believe that it may be the most popular as a sort of self-fulfilling prophecy. The more the language is used, the more that code is shared in that language, so it is used even more. High-level languages are easier to use because they benefit from years of evolution that attempt to make programming easier for the programmer.

Final Thoughts

Overall, my experience with these programming languages has been a positive one. I have enjoyed seeing how complex programming is, even if it is daunting. I enjoyed Scratch and will introduce it to my children so they can get a head start on the idea of programming. It is incredible and nothing short of being our version of magic to see these things interact. Watching a bunch of ones and zeros become something as magnificent as a computer-generated movie or video game fascinates me. I cannot wait to see how these languages evolve and how AI will make programming easier for the average person.

References!

Gundurao, H. K., Manjunath, N. S., & Nachappa, M. N. (2010). Computer technology and computer programming. [electronic resource] : a text book of computer science (Rev. ed.). Himalaya Pub. House.

Wassberg, J. (2020). Computer programming for absolute beginners  : learn essential computer science concepts and coding techniques to kick-start your programming career. Packt.

Scratch Project Link: https://scratch.mit.edu/projects/1000846157



Comments

Popular posts from this blog

Java and Object Oriented Programing (OOP)

Algorithmic Design and Data Structures For Newbies

Operating Systems Concepts