Programming Languages

Fade Away program built within Scratch https://scratch.mit.edu/projects/771348978

To create a computer program or application, it's important to know the rules and structure of the programming language you're using. This includes knowing the syntax and logical structure. However, using a program called Scratch can make the process simpler, because it provides pre-built solutions and guides to help you.
Scratch is a great resource to introduce oneself to the concept of programming. It provides a visual programming language highlighting the interaction between objects; as introductory as Scratch is, the foundational understanding transitions well into understanding machine, assembler, and high-level languages. Each language's prominence varies in different aspects of programming. As high-level languages grow in popularity, learning how all languages operate and relate to one another is beneficial. 

Building a program using Scratch was interesting. It was exciting to start building, especially with an idea already in mind. The intentions were to recreate a concept from LaKiya's (daughter) first programming contest, an inspirational message in the form of a video built within Adobe. However, it was to be made more interactive. For the sake of time, a more straightforward program took its place. Fade Away, linked above, is a program that focuses on spelling a word, utilizing a longer and more easily enunciated term to increase the perception of the challenge. Scratch programming is simple in design, with the capability of being more advanced than what Fade Away delivered. 

Initially, Scratch felt restricted in functionality, and it took a few trials and errors to understand the multiple sprites and blocks of code. One difficulty encountered in Scratch was the timing between sprite commands. The struggle was switching between sprites, timing their hide, show, and additional commands. After researching through Google and reviewing Scratch example programs, event blocks "broadcast" and "when I receive" were incorporated to create communication between sprites and their commands. These command blocks improved the timing by creating listening events that triggered reactions. Scratch provides a variety of blocks that allow for interchangeable variables, like "when I receive," providing a drop-down of variables assigned via "broadcast" and "broadcast and wait." 

Scratch showcases the ability to achieve numerous results with the same foundational coding utilizing alternate variables, either provided or input by the user. This experience demonstrated the importance of starting, trying, and adjusting. Programming with Scratch reinforced the repetitiveness of lines of code. Learning the basics and introducing more variables to enhance abilities is expected in learning programming. Scratch is a great resource to introduce to new coders. This visual language was user-friendly by providing blocks of code translated to readable and understandable controls with immediate visualization of the output. 

Machine language was interesting, practicing the positions of 0s and 1s to create different commands. The machine language was fun to learn; however, the zeros and ones would be excessive in Cyber and Data Security implementation. It was enjoyable to learn the input (01), add (11), output (10), and stop (00) machine languages that the assembler language converts to readable text. Opposed to the zeros and ones, the assembler language users the terms of the commands versus the bits, "translating assembly language to machine language (Vahid, 2019, 2.9.1)." 

However, in this assembly language, the user is limited to the terms that translate. High-level programming languages like Python do not experience these limitations as variables are declared and assigned values. All languages are similar in structure and translate back to machine language; however, the more advanced the language is, the more freedom you have in the variables. High-level languages are easier to use with larger projects, as the variable declaration is simpler to follow when the program length increases. 

Machine language would be more utilized in short commands within standard equipment, like on and off functions. The code is simple and needs to communicate directly to the machine. As the functions increase in variables, like a volume control input, assembly language becomes more prominent. People use high-level languages for more advanced programming where multiple inputs impact the output, for example, GPS reacting to the user's geographical location, the motion of others, and inputs from others, e.g., traffic jams and speed trap notifications. The more advanced the project, the more advanced the language. 

The most used language is machine language, as there are more chips in simple machines, and all programming languages convert back to machine language. According to the TIOBE Index (2022), which assess searches of languages via platforms such as Google, Python is the most popular programming language. This finding is confirmed in the PYPL Index (2022) which assess the searches for tutorials per programming language, also ranking Python first. One of the main contributing factors to the popularity of Python is its flexibility, customization, and evolving technology. Online communities found on Reddit, Discord, and GitHub contribute to this growth in popularity and will be a driving force of collaboration and evolution.   

References 

Pupl.github.io. (2022). PYPL Index | PYPL PopulatritY of Programming Language. https://pypl.github.io/PYPL.html

Tiobe.com. (2022). TIOBE Index | TIOBE - The Software Quality Company. https://www.tiobe.com/tiobe-index/ (Accessed December 2022).

Vahid, F., et al (2019). TEC 101: Fundamentals of Information Technology & Literacy (2.9.1). zyBooks. https://learn.zybooks.com/zybook/TEC101:_Fundamentals_of_Information_Technology_&_Literacy_(TED2249A)/chapter/2/section/9 (accessed December 2022).

Comments