This is shown formatted at https://bomonike.github.io/software-dev from this file.
Click this diagram to see video (without audio):
We call it Low Level when we work with code that directly control the hardware that we can physically touch. The lowest level is working with commands to the Binary Machine Code which controls the CPU (Central Processor Unit), as defined by the ISA (Instruction Set Architecture) for each particular chip design.
The ISA is the basis for driver code that each OS (Operating System) uses to control various devices connected to the computer.
The AMD64 ISA controls recent PCs running the Windows or Linux Operating Systems. It’s called AMD because the company figured out how to make Intel x86 work in 64 bits (while maintaining backward compatibility). AMD was adopted by Intel as “x86-64”.
As for Apple, its macOS operating systems is the latest in several generations, with different names. Older versions ran on Intel chips until switching to using ARM chips they branded as “Apple Silicon”. The R in ARM stands for “Reduced Instruction Set Computer”. Its reduced instruction set makes the chip run faster and cooler, which is why it’s also used on Android mobile phones as well as Linux and Windows.
Over time, many companies have created easier and more reliable ways to control hardware at a High Level becuase it’s tedious and time consuming to work with low-level code. That’s why there are many ways to create, for each Operating System, application programs which present a Graphical User Interface (GUI) for end-users to view and enter data.
Programmers use text Code Editors to craft programmatic code.
A file is executable by the Windows operating system if a file’s name ends with the .exe suffix or extension. Other programs are used to open a file based on a list maintained by Windows.
However, Linux reads the first few bytes of a file (its signature) to determine what program executes that file.
At the low-level, an executable is created by a Linker program that combines a library of reusable utility objects with custom object code. Object code is created by an Assembler program based on Assembly code written by programmers using a Code Editor. Editors such as Microsoft’s Visual Studio Code include a Command-Line Terminal app that executes Shell scripts to manage the operating system. For example, shell commands download and install commands such as git to clone and push code changes to and from the GitHub.com website holding source code files.
At the top of programming code are requests for download and install the 3rd-party packages referenced within the code.
C and C + + source code is compiled into Assembly code.*
As for Higher Level programming, Java and C sharp are also compiled, but the compiler generates Intermediate Language code that’s independent of operating system. A Runtime utility specific to each operating system translates the IL into commands specific to each operating system.
Python code are Interpreted to be run by a Runtime utility installed on each target operating system to issue commands specific to each operating system.
JavaScript is also interpreted, but browsers have that interpreter built-in. On servers, JavaScript is run using Node J S installed on each server.
The Go language has become popular because its compiler creates a standalone executable that includes the Go runtime. A different executable is created for each operating system. This means that those running Go are happy that they don’t have the hassle of installing and maintaining a Go runtime on every server.
During the last decade, Low-Code/No-Code GUI enabled end-users to create code easier. RPA (Robotics Process Automation) automated end-users typing and clicking in the GUI.
Artificial Intelligence has a different architecture. Data Science utilities filter, clean, and organize the corpus of multi-modal data for use by machine learning training which derive a model containing logic created from data rather than programming code. AI models are then referenced by executables making calls to Application Programming Interfaces (APIs).
Programs doing the training can run much faster by using parallel processing by GPU (Graphics Processor Units) and now TPUs (Tensor Processing Units) built specifically for machine learning work. using NVIDIA’s CUDA package that enable
The creation of LLMs (Large Language Models) and other recent advancements in algorithms enable applications to receive Natural Language prompts instead of a computer language. The ability of the computer to understand relationships among concepts enable it to generate new poems and music videos. Over time, LLMs are created with larger context windows to insert more customized data for results more relevant to the requestor.
All this is giving rise to AI agents that automatically perform actions previously requiring manual work with human intelligence.
On the horizon are Quantum computers being designed with a completely different architecture. Work is being done to leverage Python and other tools used today. But the mechanisms for controlling Quantum computers is very different, with Parallel Qubits manipulated by quantum circuits using quantum gates, switches, operators. The hope is that Quantum computers can run many times faster than the processors we use today that we have to call today’s processors “classical’, as in classical music. Such speed would enable the enormous calculations needed to solve problems too complex for today’s computers. But there is also fear that such speed can also be used to crack security keys generated using calculations that take a lot of time today.
QUIZ:
What is one advantage of using the JavaScript language?
What is an advantage of using the Go language?
What is an advantage of using ARM vs. AMD chips?
ADDITIONAL INFO:
ARM licenses its ISA. RISC-V is an open-source ISA.
Among microprocessors:
Description: Audio for the video was created using the elevenlabs.ai Bill voice. It ignores HTML codes such as strong. Below are the adjustments that needs to be made for it to pronounce properly:
TODO: Use SSML for Pronunciation: Implement Speech Synthesis Markup Language (SSML) to specify how certain words should be pronounced. Wrap problematic words in <phoneme> tags using either the International Phonetic Alphabet (IPA) or CMU Arpabet to guide the pronunciation accurately. https://elevenlabs.io/docs/speech-synthesis/prompting
Recently, Artificial Intelligence such as ChatGPT makes it possible to get output using natural language like two people talking to each other.