Menu Close


Evolution of Computer Languages

Languages evolve by influence from other languages. A language once implemented can’t be changed too much. If you do you can loose your customers. So to make improvements you need to create a new one from scratch. Therefore today we have numerous computer languages competing for usability or performance.

Language classification

I have organized programming languages in 6 categories each containing top 5. This was a research project I have done in 2017 using Google+ surveys. I will try to update this top every year using Twitter since Google+ is gone now. Follow me and vote when I post articles about it. The link for twitter the little bird icon on bottom of this page.

Reference: The languages are ordered by my opinion now in order of value. For independent popularity index you can study the: official tiobe index

A: First class compiled languages

These are very good languages for creation of native applications. These languages have in general static types except Julia that have dynamic types that are converted to static types just in time.

  1. Rust – Mozilla native language;
  2. D – disruptive native language;
  3. Go – default for Google cloud;
  4. Swift – specific to Apple OS;
  5. Nim – statically typed system language;

B: Traditional compiled languages

  1. Assembly – second generation language;
  2. C/C++  This is the king of computer languages;
  3. FORTRAN – fast language created by IBM
  4. Ada – very robust language designed for US army
  5. Pascal/Delphi  – my first computer language;

C: Virtual machine or interpreted

  1. JavaScript – default language for web;
  2. Python – the most easy to learn language;
  3. Java – open source language created by SUN and maintained by Oracle;
  4. C# – default language for Microsoft Visual Studio;
  5. Erlang – a parallel computing language easy to learn and very fast.

D: Java Virtual Machine (JVM)

  1. Scala – this is also a functional language;
  2. JRuby – a dynamic language derived from Ruby;
  3. Groovy – a dynamic language for website back-end;
  4. Jyton – a Python dialect that can run in JVM;
  5. Kotlin – a new computer language created by Jetbrains company;

E: Dynamic Languages

  1. Python – a very popular dynamic language;
  2. Julia – is a new dynamic language similar to Python but faster;
  3. Lisp – a functional language that is very dynamic;
  4. Ruby – a language created for dynamic website back-end;
  5. Perl – a scripting language created for command line and back-end programming;

F: Functional languages 

  1. Scala – this is mentioned second time here so it is a functional language for JVM;
  2. Haskell – this is the most pure functional language similar to OCaml;
  3. OCaml – one of the first functional languages;
  4. Closure – this is a functional language similar to Lisp that run in JVM;
  5. F# – this is a functional language for Microsoft Visual Studio;

Historic Languages

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,Lisp,Simula,Algol,Pascal,B, C,Forth,C++,Scheme,ML,Smalltalk.

Two of these languages remain very influential:  C family and Algol family. Functional languages are derived from Lisp and Object oriented languages are derived from Simula.

Traditional Languages

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.


Emerging Languages

These languages are not yet ready but promising. We are going to research these languages in our programming classes. If you wish you can learn these languages by yourself but only if you are not yet busy working for raising a family or having a busy life.


Language features

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 styleDifferent syntax styles can create a so called language family.C, Algol
Programming paradigmIs the programming style or concept.Procedural, Declarative, Object Oriented, Logical, Functional
Execution modeThe way final program worksInterpreted, Virtual machine or Compiled
Type systemData types can be defined during design time or run-timeDynamic / Static
ParametersThe way we can use parameters in procedures and functionsOptional parameters, Variadic parameter, default values etc.
DispatchThe way we identify a functionFunction overloading/ Signature
ExceptionsThe way we deal with errorsException handling (try) or not
Memory managementThe way we allocate and free memory during executionManual / Garbage Collector / Reference counting
Character setThe characters we can use for keywords operators and constantsASCII / Unicode
Note: For best languages we will have a programming class with: video, tutorial articles and rating exams. If the language is not covered it is because we do not have an instructor to promote the language. We are looking for experts who can join us and contribute with new articles.