OverSimplified: Programming Languages
OverSimplified is a series where I try to oversimplify CS concepts in an attempt to help us all better understand them. Thanks for your time, enjoy!
What is a Programming Language?
- Programming Languages are tools that provide us with a syntax (rules and keywords) which we can use to communicate with computers.
Okay so… how does this help us communicate?
- Computers only understand Binary (1’s and 0’s) or Machine Code.
- Programming Languages allow us to write code that is legible to humans, and can be transformed or compiled into machine code.
(If you want to take a deeper dive into how computers read and execute code I recommend watching this video.)
Low-Level vs High-Level Languages
- Abstraction is a buzzword that refers to the level of control a language requires us to have over hardware processes.
Lower Level Languages (Assembly, Machine Code, etc…):
- Require management of hardware processes
- Harder to read/write
- Quicker to compile/execute
Higher Level Languages (Python, JS, etc…):
- Hide hardware processes from us / abstract them away
- Easier to read/write
- Slower to compile/execute
Statically Typed vs Dynamically Typed Languages
- Types refer to a programming languages behavior in regards to variables.
Statically typed languages:
- Require you to explicitly define the data types of variables.
- Do not allow the assignment of values that have a different data type than the variable.
int numTen = 10 str greeting = "Hello World"
Dynamically typed languages:
- Infer the data type of a variable based on the data type of the value.
- Allow us to assign and reassign any value to any variable.
numTen = 10 numTen = "Hello World"
Best Programming Languages to Learn for 2022
Entry level: High-level Dynamically Typed Languages
- Python (Data Science & A.I.)
- Swift (Mobile)
Robotics and Gaming: High-level Statically Typed Languages
Blockchain: High-level Statically Typed Languages
Enterprise: High-level Languages
Source: DEV CommunityNovember 28, 2021