Skip to main content

Programming Language Classification

Strong vs Weak Typed Languages

Strong Typed Languages

Variables are assigned a type and that cannot change over the course of the program. C, Go

Weak Typed Languages

Variables are not assigned a type, instead can hold values of different data types. JS, Python

Statically vs Dynamically Typed Languages

Statically Typed Languages

Variables are created at compile time and memory set aside for the variables to be used.

Dynamically Typed Languages

Variables are created in memory as the program runs.

Compiled vs Interpreted Languages

Compiled Languages

Source code is converted to machine code or byte code prior to running.

Interpreted Languages

Source code is interpreted line by line on the runtime.

Garbage Collection

Garbage collection in programming is where the program itself releases memory that it used during the runtime. Garbage collection may not be a problem if you don't use certain features of certain languages (calloc, malloc in C). For languages without garbage collectors, the programmer has to be mindful of the memory usage and release them as the program ends without causing memory leaks.

With garbage collector

Java, Go, Python

No garbage collector

C

Compile Time

Fast compile time helps the design-build-test loop to run faster. If the compilation takes time its difficult to continue.

Concurrency

Concurrency is the ability to do simultaneously do multiple tasks in one code.

Multi threading

Multi Processing

Event Loop

Async Processing

Community Support

Community is where you find fellow programmers, may it be discussing new features, asking for help, finding bugs. Having a good community support makes it easier for developers to advance with their projects, unblock issues faster. A good community supported language is much easier to use.