Wednesday, January 10, 2024

Week 5: Tech Topic Connection and How I Learned How it All Comes Together

 Introduction

    As we delve into the final stretch of our exploration in information technology, it's only fitting to bring our attention to the linchpin that ties together the web of tech concepts we've encountered - programming language. This blog's central goal is to document my journey to unravel the profound connections between programming languages and the fundamental principles of information technology.

    Historical Roots and Operational Mechanisms

    Programming languages are the lifeblood of computers, representing the unbroken lineage of today's advanced machines to yesterday's rudimentary calculators. From the early days of assembly languages to the high-level languages like Java, Python, and SQL, the evolution has seen computing evolve at an exponential rate. Moore's law dictates that the number of transistors in a processor doubles every two years. Originally postulated in 1965, then modified in 1975, it's generally remained true for the last 60 years (Intel, 2023). This has resulted in computers becoming roughly 5,368,709 times more complex than they were in 1965 as of 2023. 

    Understanding the history of computers helps us appreciate how programming languages have developed and function as a natural progression for teaching them from the ground-up, as the earliest forms of programming languages are without exception the simplest and most rudimentary. This allows those just learning the language to begin learning the version of the languages with the least clutter and simplest functions, from which they can simply follow the development of the language itself and learn it feature by feature and function by function.

    The means by which computers operate, including processors, memory, and storage, are the canvas on which programming languages paint their masterpieces. Exploring this relationship reveals the importance of picking both the right hardware and software for the job.

    Hardware Components and Functions

    Programming languages rely heavily on the major hardware components of a computer system. From the Central Processing Unit (CPU) executing instructions to the Random Access Memory (RAM) storing data, every component contributes to the seamless execution of programs written in these languages. The hardware is to the program as the brain is to our learned experiences. The hardware is the equipment actually performing the work, while the program is the instructions themselves. You can't teach your arm to throw a baseball, and without and arm, your brain can't throw the baseball even though it knows how. In order for a program to function, it needs hardware to execute the instructions, and in order to execute the task, the hardware needs the software to tell it what to do. Evaluating this reliance sheds light on the importance of hardware in the development of programs.

    Program Execution and Language Syntax

    How does your chosen tech topic use programming languages, and how are programs executed? These questions delve into the syntax and execution methods of programming languages. From compiled languages like C++ to interpreted languages like Python, each has its own nuances. Understanding this aspect is crucial in becoming proficient in any programming language. Language syntax helps make the functions of a program make sense to our human brains; and by using a compiler, that readable code is converted into machine code, which is the format that the computer can most easily understand. Writing code and executing code is a conversation across language barriers between developer and machine.

    Application Software's Role

    The synergy between programming languages and application software is evident. Whether it's developing software for data analysis, graphic design, or gaming, the role of programming languages in creating application software is pivotal. Each programming language has its strengths and weaknesses, and knowing how to choose the right language for the task is important. For instance, in their upgraded release of Super Mario Sunshine for the Mario 3D All Stars collection, they elected to emulate the Gamecube to run an ISO of the game, and utilized a Lisp script to swap out all of the textures in RAM with high-resolution versions rather than completely porting the game to run natively on the Switch. Another popular program, Grammarly, is written in Lisp because the language excels at running compare-replace functions (Common Lisp, n.d.). Failing to pick the right tool will not only will make the resulting program difficult to develop, but it may limit what it can be made to do or make it more difficult to port to other systems.

    Database Concepts and Management

    Database management is a cornerstone of information technology. How does your chosen tech topic interact with databases? Whether it's through SQL queries or integrating with NoSQL databases, the connection between programming languages and databases is profound. Properly structuring data within a network makes it easy to access and keep track of. With the ever-expanding sea of information in virtually every kind of program, it's incredibly important to properly catalog and store information. Imagine having to manually comb through almost 700GB of data to find a single game file to add to your map. Nothing would ever get done.

    Network Architecture, Management, and Security

    The final layer in our exploration is the intersection of programming languages with network architecture, management, and security. In an interconnected world, understanding how programming languages facilitate communication between devices and the role they play in securing data during transmission is crucial. With programs written in different languages, how do they communicate across networks? How do do we keep important data out of the wrong hands when it's being sent outside of the safeguarded environment of our own computer? It's a topic whose complexity warrants its own career niche within the field of computer science

Conclusion

    In this journey through the intricacies of information technology, I've witnessed how programming languages serve as the bridge between abstract concepts and tangible applications. Their influence extends from the roots of computer history to the forefront of cutting-edge technology, making them a cornerstone of our tech-centric world. As we bid farewell to this class, we step forward into the ocean of programming languages ahead.

References

Common Lisp. (n.d.). Common Lisp. Lisp-lang.org. https://lisp-lang.org/.

Intel. (2023, September 18). Press Kit: Moore's Law. Intel Newsroom. https://www.intel.com/content/www/us/en/newsroom/resources/moores-law.html#gs.2wdihz.

No comments:

Post a Comment

CPT 307: Newbie to Newbie Week 5

Demystifying Algorithmic Design and Data Structures for Beginners When starting your journey in programming, understanding how to effectivel...