Menu Close

Articles

Evolution of Computer Languages

Languages evolve by influence from other languages. A language once implemented can’t be changed too much. So to make improvements you need to create a new languages. Therefore we have today numerous computer languages competing for usability and popularity.

Language classification

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.

  1. Rust – Mozilla native language;
  2. D – disruptive native language;
  3. Julia – dynamic language from MIT;
  4. Go – default for Google cloud;
  5. Swift – specific to Apple OS;

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 ver nice 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;

Traditional 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, Algol, Pascal, C, Forth, C++, Scheme, ML, Smalltalk. Two of these languages are very influential:  C family and Algol family.

Disruptive 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.

1983Adahttp://www.adacore.com/
1980Pythonhttps://www.python.org/
1990Rubyhttps://www.ruby-lang.org/
1986Erlanghttps://www.erlang.org/
1990Haskellhttps://www.haskell.org
1993Luahttps://www.lua.org/about.html
1995JavaScripthttps://www.ecma-international.org/ecma-262/6.0/
2001Scalahttp://www.scala-lang.org
2009Closurehttp://clojure.org
2009Gohttps://golang.org
2011Darthttps://www.dartlang.org
2012Juliahttp://julialang.org
2014Rusthttps://www.rust-lang.org
2014Swifthttps://swift.org
2014Hackhttp://hacklang.org
2016Nimhttps://nim-lang.org/
2016Kotlinhttps://kotlinlang.org/

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, Python
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 create article and promote the language. So if you are expert in one language you can join us and contribute with new classes.