OverSimplified: Programming Languages

Welcome to Oversimplified, a series where I oversimplify CS concepts in an attempt to help us all better understand them.

What is a Programming Language?

Programming Languages are tools that provide us with a syntax (rules and keyword…


This content originally appeared on DEV Community and was authored by Sina Nikmaram

Welcome to Oversimplified, a series where I oversimplify CS concepts in an attempt to help us all better understand them.

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.

Alt Text

(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 Programming 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

Strongly/Statically Typed vs Weakly/Dynamically Typed Languages

  • Types refer to a programming languages behavior in regards to variables.
  • Strongly/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 num = 10
str greeting = "Hello World"
  • Weakly/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.
num = 10
num = "Hello World"

Best Programming Languages to Learn for 2022

  • Entry level: High-level Dynamically Typed Languages
    1. JavaScript (Web Development)
    2. Python (Data Science & A.I.)
    3. Swift (Mobile)
  • Robotics and Gaming: High-level Statically Typed Languages
    • C++
  • Blockchain: High-level Statically Typed Languages
    1. C++
    2. Solidity
    3. Go
  • Enterprise: High-level Languages
    1. Java
    2. Python
    3. JavaScript
    4. C++


This content originally appeared on DEV Community and was authored by Sina Nikmaram


Print Share Comment Cite Upload Translate Updates
APA

Sina Nikmaram | Sciencx (2021-11-28T06:20:44+00:00) OverSimplified: Programming Languages. Retrieved from https://www.scien.cx/2021/11/28/oversimplified-programming-languages/

MLA
" » OverSimplified: Programming Languages." Sina Nikmaram | Sciencx - Sunday November 28, 2021, https://www.scien.cx/2021/11/28/oversimplified-programming-languages/
HARVARD
Sina Nikmaram | Sciencx Sunday November 28, 2021 » OverSimplified: Programming Languages., viewed ,<https://www.scien.cx/2021/11/28/oversimplified-programming-languages/>
VANCOUVER
Sina Nikmaram | Sciencx - » OverSimplified: Programming Languages. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/11/28/oversimplified-programming-languages/
CHICAGO
" » OverSimplified: Programming Languages." Sina Nikmaram | Sciencx - Accessed . https://www.scien.cx/2021/11/28/oversimplified-programming-languages/
IEEE
" » OverSimplified: Programming Languages." Sina Nikmaram | Sciencx [Online]. Available: https://www.scien.cx/2021/11/28/oversimplified-programming-languages/. [Accessed: ]
rf:citation
» OverSimplified: Programming Languages | Sina Nikmaram | Sciencx | https://www.scien.cx/2021/11/28/oversimplified-programming-languages/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.