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