As Frank Vahid and Roman Lysecky describe in Chapter 2 of the text, programming languages can be categorized as machine, assembly, or high-level. (Vahid & Lysecky, 2019) While hundreds or even thousands of programming languages are available, I will describe my experience creating a program in one high-level programming language called Scratch and examine the definitions, use cases, and preferred programming languages across different user populations.
The program website states, “Scratch is a coding language and online community where you can create your own interactive stories, games, and animations -- and share your creations with others around the world. As young people create and share Scratch projects, they learn to think creatively, reason systematically, and work collaboratively. Scratch is a project of the Scratch Foundation in collaboration with the Lifelong Kindergarten group at the MIT Media Lab. It is available for free at https://scratch.mit.edu". I created my first program, “Halloween Friends,” accessible at ☝ https://scratch.mit.edu/projects/888734428/.
This short, interactive introduction was a bit more difficult than I had anticipated. However, it was easy to see the correlation between the steps in Chapter 2’s participation activities and the steps required to make the characters (sprites) perform the actions desired and in the correct order. Scratch was easy to navigate once I knew what I wanted to achieve. Two challenges I faced were first getting a branched scenario to successfully execute based on a specific response from the end user and then second figuring out how to restart my interaction from the beginning. I found a great YouTube video posted by Kim Karnes demonstrating a simple yes/no scenario. (Kim Karnes, 2021) Once I reviewed the video, it gave me ideas that allowed me to complete the animation. As for resetting the characters to the original starting point, I had a lot of trial-and-error scenarios until I got it where I wanted it to be.
Creating a Scratch program helped me solidify the importance
of order and practice of providing explicit commands. Understanding how to use
variables to store and trigger other events was particularly helpful in
relating the practice activities in the book to an actual programming language
in real time.
While
Scratch is categorized as a high-level programming language, creating my
program also helped solidify my understanding of the other two language types
referenced in the book. Machine language is programming instructions the CPU
needs to execute a program, and assembly language is a textual representation
of those instructions in a more natural human method. Assembly language translates text into machine
language to execute a program.
I
am unsure which language type is easiest to use since they are all intuitive
once I know the order of operations and the syntax. I definitely prefer high-level programming
languages because it seems easier to use compilers to perform commands than to
write out each command in 1s and 0s.
The
text, along with other articles and websites online, calls out popular
high-level languages that are used today, “each with different
strengths/weaknesses and for different purposes.” (Vahid & Lysecky, 2019) For
example, Python would be most efficient for data-processing and visualization,
whereas JavaScript would be more efficient for web applications. (Oses, 2022).
Since the popularity of programming
languages varies greatly depending on the user and purpose, it is impossible to
say exactly which one is most popular. However, since Python is free and used
for relatively easy to use for data analysis and JavaScript use is in very high
demand due to the need to develop effective web applications, I would say they
are tied for the number one spot. A Forbes article by Alejandro Oses places Python
in first, with JavaScript coming in second place, while a survey referenced in
a Codica article puts JavaScript first and Python in fifth, as shown in the
diagram below. (Oses, 2022)
In conclusion, while there are three main types of programming languages, it appears the front runner is high-level programming languages, such as Scratch, for their ability to allow greater “programmer productivity” by creating a type of shorthand to execute programs efficiently.
References
[Kim Karnes]. Karnes, K. (2021, January 25). Programming
yes/no questions in Scratch [Video]. You Tube. https://www.youtube.com/watch?v=6UMvSh7jOYo
D., & O. (2023, March 23). Top Programming
Languages in 2023: Tech Trends for Business. :Codica. Retrieved September
3, 2023, from
https://www.codica.com/blog/top-programming-languages-2023/
Oses, A. (2022, December 28). What Your Software
Partner Should Know: The Top Programming Languages Of 2023. Retrieved
September 3, 2023, from
Vahid, F., & Lysecky, R. (2019). Computing
technology for all. zyBooks.
Scratch. (n.d.). Retrieved September 1, 2023 from
No comments:
Post a Comment