Programming Languages Reflections

 

            Whether it be machine language, assembly language or a high-level language such as C, programming languages can have its usefulness and challenges.  These types of coding languages are textual, but there is another type of coding that assists individuals who want to learn: block-based coding.  Scratch is one such block-based coding software that was utilized for this assignment.  As a first-time user of Scratch, I had some challenges to overcome, but I also gained some new insights.  To better understand programming, evaluating Scratch to other programming languages should help show the differences in ease of use, identify which language would be most effective, and help identify the most popular choice.

The assignment for this essay was to build a program using Scratch but having never used scratch before and only messed around with text-based language, there was much too learn.  I opened Scratch and started reviewing the blocks of commands and testing the software to see what it could do.  I was already familiar with the basics, so I started stacking some blocks to see what it would do.  That didn’t accomplish much, so I clicked on some tutorials to see what they offered.  This proved to be more successful, but I still couldn’t figure out how to do the things I imagined, so I decided to go simple and use my name.  With the help of tutorials, I was able to start piecing together a stylish program to animate my name.

One of the main difficulties I had, while creating my Scratch project, was when I stopped the animation, it stopped everything midway through and wouldn’t reset back to the start.  This caused an issue because if I changed something, like the location of a sprite, it did it from that particular point instead of the beginning, and then everything was out of sync.  I looked for a reset block but couldn’t find one, so I googled how to reset all the code back to the original starting position. I found that I could form a set of commands that would reset the animation by clicking a keyboard key.

Once I finished my animation project using Scratch, I had a clearer picture on how to modify the positions and add blocks to accomplish my idea.  I also discovered that one little mistake, like having a block in the wrong position, would cause an error or the program would run but do something totally different than what I wanted to take place.  Another key thing I learned is that you should always backup your work or make copies of the code because if you make a mistake or change to the original code, you may not remember how to put it back if there is no undo option and if it gets deleted by mistake, you will have to redo the work all over again.

If we compare textbook examples of machine language, assembly language and high-level language, there are major differences.  Scratch has the code already embedded into blocks, so all the user has to do is stack the blocks (of code) in the proper order, make a few customizations, and then view the results.  In machine language, all you see are ones and zeros and you need to know the codes to give instructions on what to do.  This is not very efficient and would take a long time to accomplish.  Assembly language is a better option since it can communicate directly with computer hardware, and a user can easily read the instructions needed.  This programming style is still more complicated than Scratch and would take longer to learn since it's still text-based coding.  High-level languages like C++ or Python will do many more things than Scratch.  Scratch would be considered mid-level since it’s a user interface and utilizes blocks that already have the codes assigned, but C++ or Python can ultimately do many more functions and doesn’t have a graphical interface that makes it easy to understand.  Rosa Woo-Garcia (et. al 2024) explains it best, “C is one of the most widely used due to its efficiency and its ability to control the hardware directly. Assembly is a low-level language that allows more control over the instructions executed” (p. 1).

Scratch was the easiest to use because of the graphical interface that uses blocks to build codes, but High-Level languages would be more effective and efficient in doing many needed tasks outside Scratch's scope.  In an article written by Nicholas Argyres (et. al 2023), they state, “Middleware thus allowed the writing of video games by using readymade modules and software libraries that are abstracted at the “higher level”…” (p. 116).  Making readymade modules like Scratch has some great uses in some areas of programming, like learning or gaming, which does take some of the tedious work out of the equation, but it can have its limitations.  Machine language is likely better served when it tells hardware what to do, like computerized lathes or milling machines.  High-level language would be most useful in programs like databases, computer-aided drafting and design programs, and operating systems like Windows.

In conclusion, there are three basic programming languages that are used to instruct hardware and software what to do and how to do it.  Machine language is the earliest language that was used to instruct hardware and display results, Assembly language that was developed to make programming easier to understand for programmers and High-Level language that is currently used today to develop software and instruct hardware to do everything imaginable.  Scratch was an introduction to the world of programming and developed to help young minds learn and understand programming.  In order for us to develop into great programmers, we must first look at the basics and develop a knowledge base of our own in order to understand the highest level of programming capabilities.

References

Argyres, N., Nickerson, J., & Ozalp, H. (2023). Platform Competition and Complementor Responses: Insights from Combining Design Rules with the Comparative Adjustment, Transaction, and Opportunity Cost Framework. Industrial and Corporate Change, 32(1), 112–128. https://doi.org/10.1093/icc/dtac027

Devon’s Scratch Project. https://scratch.mit.edu/projects/999615441/

Ltd, P. S. P. (n.d.). About The Programming Language [Image2]. In training.polytropicservices.com. https://training.polytropicservices.com/programming-language.php

Woo, G. R. M., Argüelles-Lucho, P., Montes de Oca, M. N. J., Salas-Rodriguez, S., Sanchez-Vidal, A., Ceron-Alvarez, C. A., & Osorio-de la Rosa, E. (2024). Evaluation of Assembler and C Programming Languages on PIC16F877 Microcontroller. Journal of Physics: Conference Series2699(1), 1–7. https://doi.org/10.1088/1742-6596/2699/1/012013

 


Comments