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 Series, 2699(1), 1–7. https://doi.org/10.1088/1742-6596/2699/1/012013

Comments
Post a Comment