I have organized programming languages in 6 categories each containing top 5 most popular languages. This was a research project I have done in 2017 using Google+ surveys. I will try to update this top every year using Twitter. So you can follow me and vote when I post articles about it.
A: First class compiled languages
These are very good languages for creation of native applications. These languages have a compiler for one or more operating systems. These languages have in general static types except Julia that have dynamic types that are converted to static types just in time.
- Rust – Mozilla native language;
- D – disruptive native language;
- Julia – dynamic language from MIT;
- Go – default for Google cloud;
- Swift – specific to Apple OS;
B: Traditional compiled languages
- Assembly – second generation language;
- C/C++ This is the king of computer languages;
- FORTRAN – fast language created by IBM
- Ada – very robust language designed for US army
- Pascal/Delphi – my first computer language;
C: Virtual machine or interpreted
- Python – the most easy to learn language;
- Java – open source language created by SUN and maintained by Oracle;
- C# – default language for Microsoft Visual Studio;
- Erlang – a parallel computing language easy to learn and very fast.
D: Java Virtual Machine (JVM)
- Scala – this is also a functional language;
- JRuby – a dynamic language derived from Ruby;
- Groovy – a dynamic language for website back-end;
- Jyton – a Python dialect that can run in JVM;
- Kotlin – a new computer language ver nice created by Jetbrains company;
E: Dynamic Languages
- Python – a very popular dynamic language;
- Julia – is a new dynamic language similar to Python but faster;
- Lisp – a functional language that is very dynamic;
- Ruby – a language created for dynamic website back-end;
- Perl – a scripting language created for command line and back-end programming;
F: Functional languages
- Scala – this is mentioned second time here so it is a functional language for JVM;
- Haskell – this is the most pure functional language similar to OCaml;
- OCaml – one of the first functional languages;
- Closure – this is a functional language similar to Lisp that run in JVM;
- F# – this is a functional language for Microsoft Visual Studio;
Languages that have more then 40 years are considered traditional. That is before the Internet was born. That was the golden age of classic computer languages: Fortran, Algol, Pascal, C, Forth, C++, Scheme, ML, Smalltalk. Two of these languages are very influential: C family and Algol family.
Next computer languages are less then 40 years old. Let’s review some of them. Maybe you will find a language that you can learn to create your next project with it. I will update this list from time to time with new languages I find worthy.
To describe a computer language you can enumerate it’s features. These are characteristics or attributes that can be compared. Some languages looks like each other and create a family. Here are the most significant features.
|Syntax style||Different syntax styles can create a so called language family.||C, Algol, Python|
|Programming paradigm||Is the programming style or concept.||Procedural, Declarative, Object Oriented, Logical, Functional|
|Execution mode||The way final program works||Interpreted, Virtual machine or Compiled|
|Type system||Data types can be defined during design time or run-time||Dynamic / Static|
|Parameters||The way we can use parameters in procedures and functions||Optional parameters, Variadic parameter, default values etc.|
|Dispatch||The way we identify a function||Function overloading/ Signature|
|Exceptions||The way we deal with errors||Exception handling (try) or not|
|Memory management||The way we allocate and free memory during execution||Manual / Garbage Collector / Reference counting|
|Character set||The characters we can use for keywords operators and constants||ASCII / Unicode|