1. Strongly typed vs loosely typed

The terms strongly typed and loosely typed refer to how programming languages handle types, particularly how strict they are about type conversions and type safety.

Strongly typed languages

  1. Examples - Java, C++, C, Rust
  2. Benefits -
    1. Lesser runtime errors
    2. Stricter codebase
    3. Easy to catch errors at compile time

Code doesn’t work ❌

#include <iostream>

int main() {
  int number = 10;
  number = "text";
  return 0;
}

Loosely typed languages

  1. Examples - Python, Javascript, Perl, php
  2. Benefits
    1. Easy to write code
    2. Fast to bootstrap
    3. Low learning curve

Code does work ✅

function main() {
  let number = 10;
  number = "text";
  return number;
}

People realised that javascript is a very power language, but lacks types. Typescript was introduced as a new language to add types on top of javascript.