DEV Community

Cover image for OverSimplified: Programming Languages
Sina Nikmaram
Sina Nikmaram

Posted on • Updated on

OverSimplified: Programming Languages

Welcome! In this series, 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 set of 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 us, but can also be compiled into machine code.

Alt Text

(If you want to take a deep dive into how computers read and execute code I recommend watching this video.)


Low-Level vs High-Level Languages

  • 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
  • Abstraction is a buzzword that refers to the level of control a language requires us to have over hardware processes.

Statically Typed vs Dynamically Typed Languages

  • Types refer to how a language treats variables.
  • Statically typed languages:
    • Define the data types of variables
    • Variables can not have a value with a different data type
int numTen = 10
str greeting = "Hello World"
Enter fullscreen mode Exit fullscreen mode
  • Dynamically typed languages:
    • Data type of variable = data type of the value
    • Allow us to assign and reassign any value to any variable
numTen = 10
numTen = "Hello World"
Enter fullscreen mode Exit fullscreen mode

Best Programming Languages to Learn for 2022

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

Discussion (0)