Modern Programming Languages and Their Uses
With computers becoming an increasingly necessary
tool across all industries, the question of how to best utilize this tool is
constantly asked. Many users are content with using premade programs and apps
written by large software vendors; others delve into computer programming to
solve specific issues in their businesses and lives. With the advent of modern
programming languages, long gone are the days of meticulously sorting punch
cards, punched manually with the intent to feed them into a card reader to hope
and pray your syntax is correct and you receive the correct answers to your
inputs. Nowadays, we can write in near-complete English sentences to manipulate
the computer into performing a task. Although programming has shifted in flavor
and ease of use, its core fundamentals are still the same across almost all
programming languages.
Using the Scratch Programming Language
Scratch Logo (Obtained from CleanPNG) |
One of the most simple-to-use programming languages
developed by MIT is the Scratch programming language. The Scratch language
boasts that it is "the largest coding community for children and a coding
language with a simple visual interface that allows young people to create
digital stories, games, and animations." (Scratch, n.d.) Recently, I had
the chance to try to use Scratch to build a small project, which is located here. The drag-and-drop nature of the language made
Scratch very easy to use; the ability to create variables, signal events, use
if/then loops, iterate on a while loop, perform calculations, and other
traditional programming concepts are all present and as easy as throwing a new
block on the chain from a stemmed event. The ease of use of Scratch cannot be
overstated. However, some slight frustrations came from times when the
characters I was using in my animation would refuse to hide, even if the first
instructions upon hitting the start flag were to hide. I had initially used
variables to determine when a specific animation had concluded, utilizing the
"wait until x-variable equals one" block to show the subsequent
animation; this proved to be inconsistent at best, resulting in me eliminating
the variable and instead using the "broadcast" block to signal the
unhiding of the intended sprite. Besides having to use some trial and error to
get the ending position of the cat sprite I used to end up in the catcher's glove
and the previous issue with hiding and showing a specific sprite, the Scratch
programming language was highly intuitive and user-friendly.
How Does Scratch Compare to Popular Programming Languages?
Scratch, although a fun and intuitive programming
language, does have its place alongside other, more popular programming
languages, but it also has its limitations. We can generally break down
programming languages into a few levels: machine language, assembly language,
and high-level, highly human-readable languages. Although there are even more
genres and subgenres within these categories, the most general way to divide
programming is to examine these three. Machine language is the literal zeros
and ones that the computer can read as instructions to execute and perform said
instructions. Machine language is not designed to be human-readable and
generally requires additional tools to derive the exact instructions being
executed. Computer programmers manually wrote and executed machine language
programs, but with the advent of assembly, it became an archaic way to write
new programs. Assembly provides aliases for the instructions and is much more
human-readable than strict ones and zeros (Vahid et al., 2015/2019).
Higher-level languages, like Python, expand on this ease of use, traditionally
at the cost of additional overhead. Writing machine language is extraordinarily
verbose and low-level; writing assembly is still low-level but provides a level
of readability that machine language lacks, and high-level languages provide
built-in functionalities and even more readability than assembly. Scratch was
by far the easiest of the languages to use, as it further abstracted away the
difficulty of writing in favor of an intuitive GUI interface and block-style
coding.
When Do I Use What Programming Language?
Although it is by far the most difficult to write,
machine language has its uses. Because it is so low-level, you can have a level
of control over the hardware that even assembly might not provide. If one were
to need even to eliminate the minimal overhead that assembly provides, machine
language would be the correct language. However, if one needs to write
something a bit too large in scope to write in strictly machine language but
also needs to be extremely fast and have limited overhead (such as code that
will loop many times), the assembly programming language would be the optimal
choice. High-level languages like Python and Java provide their uses; many have
built-in functionality to help catalyze program development and offer debugging
and compiler warnings to help software engineers locate issues before running
the program. The Scratch programming language can even provide quick
development times for small proof-of-concept scripts that can then be ported to
a more portable programming language. These languages have pros, cons, and
uses; it depends entirely on the use case. According to the TIOBE Index, Python
is the most popular programming language (TIOBE, 2024). Less memory-safe
languages such as C and C++ are directly behind Python, with Java and C#
rounding out the top five.
Interestingly enough, Scratch is currently ranked as
the ninth most popular programming language, no doubt due to its appeal to
those wanting to learn programming concepts. Python has become more popular as
its use for machine learning and networking has become more heavily used.
Python's syntax is also straightforward to read, further promoting it as a
highly regarded language. C and C++ are core to the infrastructure of modern
computers and provide unsafe memory options to manipulate memory structures if
needed. Java's portability makes it an excellent choice for those wishing to
write one program and use it in multiple locations. Finally, C# has been
growing as the primary programming language for video game development, as it
is very heavily tied to Unity, a video game development platform.
Conclusion
Every programming language has its specific use
cases, although one can stretch the intended use of any language to be able to
perform whatever operations they desire. Knowing all of the tools provided by
the programming language can help you determine the appropriate use cases for
each language. Sometimes, the ease of use or in-depth knowledge of one
programming language can trump the pros afforded to you by using another. All
in all, as programming and development become even more appealing to businesses,
having more tools is always better than forcing users to utilize a specific
one, and programming languages will continue to develop and evolve to provide
more functionality and ease of use.
References
Scratch. (n.d.). Scratch - Imagine,
Program, Share. Scratch; M.I.T. Retrieved March 25, 2024, from https://scratch.mit.edu/
TIOBE. (2024, March). TIOBE Index |
TIOBE - The Software Quality Company. Tiobe.com. https://www.tiobe.com/tiobe-index/
Vahid, F., Lysecky, S., Wheatland, N., & Siu, R. (2019). TEC 101: Fundamentals of Information Technology & Literacy (8th ed.). zyBooks. https://learn.zybooks.com/zybook/TEC101:_Fundamentals_of_Information_Technology_&_Literacy_(TED2412A) (Original work published 2015)
Comments
Post a Comment