Pages

Monday, September 4, 2023

Programming Languages

 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

https://www.forbes.com/sites/forbestechcouncil/2022/12/28/what-your-software-partner-should-know-the-top-programming-languages-of-2023/?sh=64f1c50a182b

Vahid, F., & Lysecky, R. (2019). Computing technology for all. zyBooks.

Scratch. (n.d.). Retrieved September 1, 2023 from

            https://scratch.mit.edu/

No comments:

Post a Comment

Tech Topic Connection

              Data can give great insights into the behaviors and trends of every business, but only if the data is organized, stored, and a...