Programming languages are the most important tools of any software developer or computer programmer, without them software development and computer programming, as it we know it, would not be possible. This post started out as a section of the glossary of the A Comparison of Free Operating Systems post, but I have decided to make it a whole new post. I should mention, however, that my programming knowledge is in its infancy (mostly limited to some Bash, MATLAB/GNU Octave and Python knowledge), so much of this post is based on external resources that I have read and digested into a (hopefully) coherent blog post.

An Introduction to Classification

Programming languages can be implemented (or executed, that is, run) via one of two methods:

  • Interpretation. This method is basically what it sounds like: it is when the program’s source code is translated into a series of actions implemented by the computer’s hardware.
  • Compilation. Compilers essentially serve as translators between languages — transforming one programming language into another computer language, which can then be compiled further into another language or fed into an interpreter. Some compilers (native code compilers [NCCs]) compile programming languages directly into machine code (which as its name suggests is a set of instructions that can be directly interpreted by a computer’s Central Processing Unit). Assembly languages (explained later) are usually compiled using NCCs. The most popular type of compiler, overall, however, is one that compiles source code into object code (which is machine-readable, hence readily executed). As a general rule of thumb, compiled languages are faster than interpreted languages, although interpreted languages tend to be more convenient and human-readable.

Programming languages can be classed according to several different properties, including their level of abstraction (which refers to how different they are from machine code — high-level programming languages are more abstract than mid- and low-level programming languages. Higher-level programming languages are more human-readable than their lower-level counterparts, hence making them easier to work with), implementation method, programming paradigm and purpose (e.g., some programming languages are designed for numerical calculations while others are designed to write application software). For example, Python is a general-purpose, high-level, interpreted programming language that supports multiple paradigms.

A programming paradigm is a difficult concept for me to explain, but I will give it my best try. It essentially refers to the internal workings of the programming language. For example, object-oriented programming is based on the concept of objects, which are data structures, and procedures, or in other words, actions performed using the objects.

Another feature of programming languages that can be used to categorize them, that is also distinct from those previously mentioned, is that of dynamic vs. static programming languages. Dynamic programming languages are those that execute many of the tasks that static programming languages perform during compilation, during interpretation. Dynamic programming languages usually (but not always) also support scripts, which are special programs (that are usually fairly short) written for special interpreters that can automate the execution of tasks that would otherwise have to be performed manually by a human operator. Languages that support scripts are also called scripting languages.

Specifics on Common Languages

Ada

Ada (dev-ada [category]: ES, GPO, PT) is a high-level programming language that supports multiple paradigms and is descended from Pascal. The most popular free compiler for Ada is GNAT (dev-lang/gnat-gcc: ES, GPO, PTWP), a front-end of the GNU Compiler Collection (GCC).

Assembly Language

Assembly language is a low-level programming language that has a very strong correspondence to machine code. Due to this, it is very hardware-specific — an assembly language for one processor may not work for another. The only program that I am aware of that is written, even partly, in assembly language is the Linux kernel. Although, I know other programs written in Assembly do exist, after all it is listed in the TIOBE top 20 programming language (by popularity) list, I just cannot personally name them.

Bash

Bash (app-shells/bash [package]: ES, GPO, PTdev-bash [category]: ES, GPO, PT) is the most commonly-encountered Unix shell and command language. Few have compared its speed to other programming languages, hence I cannot provide an average for it. Despite this I know that for most things it is considered slower than Python. Most code written for Bash should also be compatible with Zsh, although whether it is compatible with the syntax of other Unix shells is something I cannot comment on. The programming language of Unix shells, in general (that is, not with particular reference to any specific shell like Bash), is usually called shell script. Shell script, with some particular reference to Bash and Zsh, is the programming language I have, by far, the most experience with. For an introduction to the Bash syntax, see An Introduction to Bash Scripting for Sabayon Users. Due to the fact it is a Unix shell, it is not considered cross-platform.

C

C was originally developed for use by Research Unix, by Dennis Ritchie (1941-2011), while he was working at Bell Labs. Since then it has become one of the most widely-used programming languages in the world. The reason for this is several fold, firstly, it is cross-platform and able to run on most, if not all, computing platforms, secondly, it is fast and thirdly, it is powerful, giving developers complete control over their program. It was originally considered high-level, but it has since become considered low-level, and its low-level nature is best illustrated by the fact that developers have to allocate memory to their program manually. The most popular free compiler of C is the GCC.

Programs written, predominantly, in it, that I have experience with, include:

  • Bash — the Unix shell is predominantly written in C.
  • dpkg (dpkg)1, the default package manager of Debian and its derivatives like Ubuntu.
  • FreeBSD — the Unix-like operating system, is predominantly written in C.
  • GIMP — a free and open-source photo-editing program, with similar features to Adobe Photoshop.
  • GNU Coreutils — the command-line utilities package for *nix systems is written predominantly in C.
  • GTK+ or the GIMP Toolkit — is a free widget toolkit developed for use by the GNOME desktop environment.
  • Linux kernel — the kernel of Linux operating systems.
  • VLC media player (71.2% C, 17.7% C++, 6.7% Objective-C, 1.3% Lua, etc. according to GitHub2) — a free and open-source cross-platform multimedia player. Its main advantage over its competitors is that it supports virtually every media type. It uses the Qt widget toolkit, so this is where some of the C++ comes from in its source code.

C++

C++ (pronounced See-plus-plus) is a programming language that was originally developed by Bjarne Stroustrup (1950-) while he was working at Bell Labs. Stroustrup wanted a programming language with similar features and speed to C, except with greater support for additional programming paradigms as well as some extra high-level features. Its most popular free compiler is probably the GCC too. The list of programs written mostly in C++ is very long and includes:

  • Adobe Photoshop (and several other Adobe products), the photo-editing program in the proprietary Adobe suite.
  • Advanced Packaging Tool (APT)3, the default package manager of Debian and its derivatives like Ubuntu.
  • Avidemux, a free and open-source video-editing program.
  • Avogadro, a free and open-source molecule editor and cheminformatics program.
  • Chromium, a free and open-source web browser that's source code is used as the basis for the proprietary-licensed Google Chrome web browser.
  • FBReader, a free and open-source document viewer.
  • FileZilla, a free and open-source FTP client.
  • Firefox, a free and open-source web browser created by the Mozilla Foundation, that is amongst the most popular on the market.
  • Fluxbox, a free and open-source window manager for the X windowing system.
  • Google Chrome, a freeware web browser, based on Chromium.
  • Inkscape, a free and open-source vector graphics editing program.
  • MariaDB, a free and open-source fork of MySQL, developed due to fears that MySQL may not be forever free.4
  • MySQL, a free and open-source relational database management system (RDBMS).5
  • Opera, a free and open-source web browser.
  • Qt, a widget toolkit that has both a freely- (LGPL/GPL-licensed) and a proprietary-licensed version available. Its free version is used as the default widget toolkit of Deepin Desktop Environment, Hawaii, KDE, LXQt, etc. and several other free desktop environments for *nix systems including FreeBSD and Linux.
  • UNetbootin, a free and open-source cross-platform program used to create live USBs.
  • ZYpp (zypper from the command-line)6, the default command-line package manager of openSUSE and derivatives.

C Sharp

NOTE
  • The use of the name C Sharp, is because of technical restrictions, the correct name is C#

C# is a proprietary programming language that is developed by the Microsoft Corporation. Some C# compilers are proprietary, others are not. It is very popular, according to TIOBE. Microsoft employees started its development in the late 1990s, for the purpose of it being used in their .NET framework. In its early days it was said to be very similar to Java, although since then the two have become increasingly different to one another.

D

D, a member of the C programming language family, is a free and open-source programming language, that is essentially like a more feature-packed, modern version of C++, with support for extra programming paradigms, automatic memory management and syntactic sugar (to make the language more human-readable).

Fortran

Fortran is the eldest high-level programming language and was first developed in 1957 by John Backus (1924-2007), specifically suited for the purpose of numerical calculations and scientific computing. A program written in Fortran is used to test the performance of computers for the TOP500 list. The GCC includes a Fortran compiler.

Go

Go (dev-lang/go: ES, GPO, PT), or golang, is a programming language, initially developed by Google employees, Robert Griesemer, Rob Pike and Ken Thompson (one of the original developers of Research Unix at Bell Labs). The GCC has a front-end for compiling Go.

Groovy

Groovy (dev-java/groovy: ES, GPO, PT) is a programming language that is specifically designed to work on the Java platform, wherein it serves predominantly as a scripting language, that interfaces with Java to modify program behaviour, extract data, etc.

Java

Java (dev-java [category]: ES, GPO, PT) is a cross-platform programming language, in its early days it was proprietary-licensed, until it was later released under the GNU GPL license. Java is one of the most popular programming languages in the world today, in fact, the TIOBE is currently ranking it number 1 for popularity, in the programming world. Java applications are usually compiled into its own instruction set called Java bytecode, that can then be run in a Java Virtual Machine (JVM) regardless of the computer’s architecture or operating system. This is what makes it cross-platform and this is key to its success. The GCC includes a Java compiler.

There are quite a few programs I have used that are written, mostly, in Java, they include:

  • jEdit — a free (GPL-licensed) text editor with support for several computer languages.
  • Jmol — a free 3D molecule viewer, that can import the molecule formats .cif, .mol, .pdb, .sdf, etc.
  • NetBeans — a once proprietary Java IDE, now it is free licensed under GPL-compatible licenses.
  • RuneScape — a proprietary massively-multiplayer online role-playing game (MMORPG).
  • SPSS — a proprietary program used for statistical analysis.
  • Vuze — a BitTorrent client.

JavaScript

JavaScript (JS) is a cross-platform web-oriented programming language that is used primarily for the purpose of controlling the behaviour of web pages. Despite this it can be used for non-web applications. For example, the text editor I am using to write this blog post, Atom, is written predominantly in JavaScript and its close lesser-used relative, CoffeeScript. JavaScript was also used to write extensions for the Deepin Desktop Environment. Despite being an interpreted language it is usually rated as one of the fastest high-level programming languages around.

Lisp

Lisp (dev-lisp [category]: ES, GPO, PT) is a family of programming languages that are second only to Fortran for the title of being the eldest high-level programming languages. Notable members include the Common Lisp and Emacs Lisp, the latter of which is used by GNU Emacs and other Emacs text editors. GNU Emacs is written predominantly in Emacs Lisp, with most of the remainder of its source code being written in C. Maxima is also written mostly in Common Lisp.

Lua

Lua (dev-lang/lua [package]: ES, GPO, PTdev-lua [category]: ES, GPO, PT) is a lightweight programming language that is primarily used for scripting in web development applications. The two examples of its use that I have come across, personally (out of the hundreds out there), are its use to improve the efficiency of MediaWiki templates using the Scribunto extension and its use by the Awesome Window Manager (where it is used to extend functionality).

MATLAB

GNU Octave 4.0.0 running under Xfce on Sabayon.

GNU Octave 4.0.0 running under Xfce on Sabayon.

MATLAB is a proprietary programming language that is primarily intended for numerical computations and scientific computing, with scripting-compatability. MATLAB is also the name of an integrated development environment (IDE) for the MATLAB programming language. While MATLAB itself is proprietary, there are several free clones of MATLAB (including both a programming language and an IDE) available that are licensed under FOSS Licenses like the GNU GPL. These free clones include FreeMat (sci-mathematics/freemat: ES, GPO, PTWP) and GNU Octave (sci-mathematics/octave [package]: ES, GPO, PTg-octave [category]: ES, GPO, octave [overlay], WP), another free programming language/IDE duo that is similar to MATLAB, but not necessarily a clone is Scilab (sci-mathematics/scilab: ES, GPOscience [overlay], WP), which while similar to MATLAB has several key differences too. Most tests have found that MATLAB and its clones/related programming languages are fairly slow compared to lower-level and less purpose-specific programming languages like C and Python. MATLAB is the most popular numerically-oriented programming language, according to TIOBE, although because of GNU Octave’s similarity (so much similarity that it even uses the same file extension for its scripts — .m) to MATLAB it is possible that TIOBE could not distinguish the popularity of GNU Octave from that of MATLAB. MATLAB/GNU Octave are probably the programming languages I have the second-greatest experience with, after Bash.

Both MATLAB and GNU Octave are themselves implemented in C, C++, Fortran and to a lesser extent other programming languages, with C making up the majority for GNU Octave (at 44.7% according to GitHub), C++ being a close second at 32.1% and Fortran making up 4.6% of the source code.3 GNU Octave provides its own graphical IDE too, for version 3.8.x up (e.g. 3.8.0). In fact, since version 4.0.0, the graphical IDE is the default user interface of GNU Octave.

Below is an example pair of scripts I have written in it, for the purpose of plotting a Lorenz attractor. Note, in order to execute these yourself, you need to have GNU Octave (because of the use of the lsode function in the second of these two scripts, it is not compatible with MATLAB) installed and these two m files need to be stored in the SAME directory.

function dy = lorenz(y,t)
dy = zeros(3,1);
P = 10;
r = 28;
b = 8/3;
dy(1) = P*(y(2) - y(1));
dy(2) = -y(1)*y(3) + r*y(1) - y(2);
dy(3) = y(1)*y(2) - b*y(3);
clear all
t = linspace(0,350,100001);
lsode_options("relative tolerance", 1e-15);
y = lsode("lorenz",[ 1.0; 1.0; 1.0]',t);

figure(1)

subplot(221)
plot(y(:,1),y(:,2),'-');
xlabel('x(t)','FontSize',16);
ylabel('y(t)','FontSize',16);

subplot(222)
plot(y(:,1),y(:,3),'-');
xlabel('x(t)','FontSize',16);
ylabel('z(t)','FontSize',16);

subplot(223)
plot(y(:,2),y(:,3),'-');
xlabel('y(t)','FontSize',16);
ylabel('z(t)','FontSize',16);

If you want to see some extra scripts I have written see this repository.

Objective-C

Objective-C (WP) is a programming language that belongs to the C family of programming language and is primarily object-oriented in its paradigm. It is one of the main languages that Apple’s OS X is written in. The most popular free Objective-C compiler is probably GCC.

Pascal

Pascal is a fairly old programming language, it and its derivatives (like Delphi and Object Pascal) are still widely used today. Programs written, predominantly, in Pascal and its simple descendants include (in brackets is the specific programming language each are written in):

  • Dev-C++ (Delphi)
  • Dev-Pascal (Delphi) Very few are written, predominantly, in Pascal itself, the only program I recognize that I have been able to find that is written, even in part, in Pascal is MiKTeX (a Windows program for writing LaTeX documents) and C, C++ make up most of its source code.

Perl

Perl (dev-lang/perl [package]: ES, GPO, PTdev-perl [category]: ES, GPO, PT) is a family of interpreted scripting languages, the most notable members are Perl 5 and Perl 6. It was originally developed for the purpose of automating reporting tasks on *nix systems in 1987. It is licensed under GNU GPL. The only program I have personal experience with that is written mostly in Perl is the RuneScape Unix Client (RSU).

PHP

PHP (dev-lang/php [package]: ES, GPO, PTdev-php [category]: ES, GPO, PT) is a server-side scripting language that is primarily intended for web development. Most web applications will use PHP to some extent, prominent examples of such applications include: MediaWiki, a software application that powers several Wiki websites including all the Wikimedia Foundation websites (such as Wikipedia, for example) and WordPress, an application that powers many blogs and personal websites on the web. It is a copyleft licensed under the PHP License.

Python

Python (dev-lang/python [package]: ES, GPO, PTdev-python [category]: ES, GPO, PTWP) is a widely and extensively-used high-level general-purpose multi-paradigm programming language that is particularly invaluable as a cross-platform scripting language. It is named after the BBC TV series Monty Python’s Flying Circus. Python is licensed under its own free, permissive (BSD-like) license called the Python Software Foundation License. It is probably the most flexible programming language I have seen and it is used for numerical computations, scientific computing, writing and working with web applications, application software and package management systems. Its design philosophy emphasizes code readability and concision. It also automatically performs some tasks that users would have to perform manually if they were working with lower-level languages like C. For these reasons it, and JavaScript, are usually the programming languages that people interested in programming, are recommended to learn first, before they learn more complicated programming languages like C, C++ and Java. Its major caveat is its speed, however, it is worthwhile noting that its speed is significantly dependent on how it is implemented. The standard, official implementation of Python is CPython which while it is more efficient than most implementations (like Jython), is less efficient than the PyPy implementation. Regardless of the implementation used, however, it is usually significantly slower than compiled languages like C, C++ and Java.

There are also two main versions of Python presently in widespread use: Python 2 and Python 3. Most programs I have come across have greater support for Python 2 than for Python 3. Python also has its own command-line package manager called pip (pip). Some programs I am particularly familiar with that are written predominantly (if not exclusively) in Python that are compatible with Linux systems include:

  • Anaconda — an operating system installer used by Fedora and most of its derivatives, see the Fedora section for details.

  • DNF — the default package manager of Fedora ≥22.

  • Entropy — the default binary package manager of Sabayon Linux.

  • GNU Bazaar — the distributed version control system developed by Canonical Ltd.

  • Portage — the default package manager of Gentoo Linux, and the default source code package manager of its derivatives such as Sabayon Linux.

  • PyMOL — an application for viewing and performing calculations relating to molecules, especially macromolecules like proteins, DNA double helices and RNA helices. Which is managed by pip, so running user $  sudo pip install pymol should install it.

  • SageMath — a mathematics program that uses a Python-like syntax and integrates several free pieces of mathematics software in a single command-line and notebook interface, with interfaces available for several proprietary mathematics programs too.

  • Spyder — a cross-platform free and open-source IDE for scientific computing in Python. It is managed by pip, so running user $  sudo pip install spyder should install it, provided its dependency PyQt4/PyQt5 is already installed.

  • youtube-dl (youtube-dl) — a command-line program for downloading YouTube videos as media files. It is managed by pip (so running user $  sudo pip install youtube-dl should install it)

  • yum — the default command-line package manager of CentOS, Fedora <22, Oracle Linux, Red Hat Enterprise Linux (RHEL), etc. It is written almost entirely in Python and this likely contributes to its relatively slow speed.

Bash, MATLAB/GNU Octave and Python, in order from most to least experience, are the languages I have the most experience with. Here is an example Python script I have written, with some help from the work of others, to solve and plot the solution to the Lorenz equations. If you would like to see the Python scripts I have written see this repository.

# Lorenz Equations SciPy solver
import numpy as np
from scipy import integrate
from mpl_toolkits.mplot3d import axes3d
from math import cos
from matplotlib import pyplot as plt
tmin, tmax = 0, 200
x0, y0, z0 = 0, 1, 0
sigma, rho, beta = 10, 28, 8/3
N = 1000000
h = (tmax - tmin) / float(N)

def f(X, t):
    x, y, z = X[0], X[1], X[2]
    return [sigma*(y-x), x*(rho-z)-y, x*y-beta*z]

t    = np.arange(tmin, tmax, h)
sol  = integrate.odeint(f, [x0, y0, z0], t)
x    = sol[:,0]
y    = sol[:,1]
z    = sol[:,2]

# Call the plot function if you want to plot the data
def plot():
    fig = plt.figure(1)
    ax = fig.add_subplot(111, projection='3d')
    ax.plot_wireframe(x, y, z, rstride=10, cstride=10)
    ax.set_xlabel('x(t)')
    ax.set_ylabel('y(t)')
    ax.set_zlabel('z(t)')
    plt.show()

plot()

R

R (dev-lang/R: ES, GPO, PT) is an interpreted programming language designed for statistical computing, that was first developed in 1993 by two New Zealand programmers and statisticians and is now developed as part of the GNU Project. It is licensed under the GNU GPL.

Ruby

Ruby (dev-lang/ruby [package]: ES, GPO, PTdev-ruby [category]: ES, GPO, PT) is a general-purpose, interpreted, programming language that is not as widely-used as C, C++, Java or Python, in my experience. The programs that are written in it, that I have experience with are two in number: Jekyll (the static site generator that powers this website) and YaST2 (the graphical package manager used by openSUSE). A program that I have never used, but I have heard of, that is used as a package management system for OS X, Homebrew, is written in Ruby too. Ruby like Python has its own package manager too, RubyGems that is invoked by the command gem. For example, to install Jekyll one may run:

root #  gem install jekyll

Bundler is a Ruby package manager that has better dependency-resolution than RubyGems that is also popular. I personally use Bundler to install Jekyll, because installing it with RubyGems can be a nightmare. Ruby, Bundler and RubyGems are all licensed under the permissive MIT License.

Swift

Swift is a general-purpose compiled programming language that is proprietary, although plans to make it open-source in the near future are apparently underway. Swift has features that are most similar to Objective-C, although it is considered faster, hence its name. The speed estimate is based on limited comparisons with Objective-C.

Visual Basic

Visual Basic and its descendents Visual Basic for Applications (VBA) and Visual Basic .NET, are programming languages that are usually used for developing GUIs.

  1. endlessm/dpkg (7 Jan 2016) 

  2. videolan/vlc (5 Jan 2016). 

  3. fusion809/octave-src (6 Jan 2016) 

Comparison

</tr> </tbody> </table>

Table 1: A Comparison of Common Programming Languages

Language Extension(s) Level Developer(s) Date</td></td> Implem Paradigm(s) Purpose Free? Script? Speed

Ada

(section)

.adb, .ads

High

Jean Ichbiah, Tucker Taft

1980

Compiled

Imperative, object-oriented, structured

General

Yes No

?

Assembly

(section)

?

Low

?

1949

Compiled

Imperative

General

Yes No

10

Bash

(section)

.sh, .bash

High

Brian J. Fox (original), Chet Ramey (current lead), etc.

1989

Interpreted

Imperative, procedural

Domain

Yes Yes

?

C

(section)

.c, .h

Low

Dennis Ritchie (original), et al.

1972

Compiled

Imperative, structured

General

Yes No

10

C++

(section)

.cc, .cpp, .cxx, .c++, .hh, .hpp, .hxx, .h++

High

Bjarne Stroustrup (original/lead), et al.

1983

Compiled

Procedural, functional, object-oriented, generic

General

Yes No

10

C#

(section)

.cs

High

Microsoft Corporation

2000

Compiled

Concurrent, event-driven, functional, generic, imperative, object-oriented, reflective, structured, etc.

General

No No

7-9

D

(section)

.d

High

Andrei Alexandrescu, Walter Bright, et al.

2001

Compiled

Functional, generic, object-oriented, procedural

General

Yes Yes

?

Fortran

(section)

.f, .for, .f90, .f95

High

John Backus

1957

Compiled

Generic, imperative, structured

General

Yes No

10

Go

(section)

.go

High

Google

2007

Compiled

Compiled, concurrent, imperative, structured

General

Yes No

6-9

Groovy

(section)

.groovy

High

James Strachan (original), et al.

2003

Compiled

Imperative, object-oriented

General

Yes Yes

?

Java

(section)

.java, .class, .jar

High

Sun Microsystems, James Gosling

1995

Compiled

Object-oriented, structured, imperative, generic, reflective, concurrent

General

Yes No

7-8

JavaScript

(section)

.js

High

Brendan Eich

1995

Interpreted

Functional, imperative, object-oriented

Web

Yes Yes

10

Lisp

(section)

.cl, .fasl, .l, lisp, lsp

High

John McCarthy

1958

Compiled

Functional, procedural, reflective

General

Yes No

?

Lua

(section)

.lua

High

Roberto Ierusalimschy

1993

Interpreted

Functional, imperative

General

Yes Yes

8

MATLAB

(section)

.m

High

Cleve Moler (original), The MathWorks Inc. (lead)

1983

Interpreted

Functional, imperative, object-oriented, procedural

Numerical

No Yes

<3

Objective-C

(section)

.m, .mm

High

Apple, Inc.

1983

Compiled

Object-oriented, reflective

General

Yes No

?

Pascal*

(section)

.inc, .p, .pas, .pp

High

Niklaus Wirth (original)

1970

Compiled

Imperative, structured

General

Yes No

?

Perl

(section)

.pl, .pm, .pod, .t

High

Larry Wall (original/lead)

1987

Interpreted

Event-driven, functional, generic, imperative, object-oriented

General

Yes Yes

6-7

PHP

(section)

.php, .php3, .php4, .php5, .phps, .phtml

High

Rasmus Lerdorf (original), Zend Techologies (current)

1995

Interpreted

Functional, imperative, object-oriented, reflective

General

Yes Yes

6-7

Python

(section)

.py, .pyc, .pyd, .pyo, .pyw, .pyz

High

Guido van Rossum (original/lead), et al.

1991

Interpreted

Functional, imperative, object-oriented, procedural.

General

Yes Yes

4-6

R

(section)

.r

High

Ross Ihaka, Robert Gentleman (original)

1993

Interpreted

Functional, imperative, object-oriented, procedural

Statistical

Yes No

<3

Ruby

(section)

.rb, .rbw

High

Yukihiro Matsumoto (original/lead)

1995

Interpreted

Functional, imperative, object-oriented, reflective

General

Yes Yes

3-6

SQL

(section)

.sql

High

Donald D. Chamberlin, Raymond F. Boyce (original)

1974

Compiled

Declarative, procedural

Special

Yes No

?

Swift

(section)

.swift

High

Apple, Inc.

2014

Compiled

Block structured, functional, imperative, object-oriented

General

No No

>7

Visual Basic*

(section)

.vb

High

Microsoft Corporation

1991

Compiled

Event-driven, object-oriented, declarative, .etc

General

No No

?

Footnotes
*: Indicates the programming language and its straight-forward (usually meaning they have the original programming language's name somewhere in theirs, e.g., Object Pascal is a straight-forward derivative of Pascal) derivatives.

Common: included programming languages include those that are listed in the top 20 programming languages for popularity in December 2015 according to TIOBE. It also includes programming languages that are notable due to their use in FOSS.

Speed: The speed rating is assigned by myself as essentially an average of the speed tests I have found by Googling "comparison of programming languages by performance". While this gives one an incling as to the speed of these programming languages it is worthwhile noting that the speed of a programming language greatly depends on what it is being used to do and in some cases how it is implemented can greatly impact upon its performance. 10 indicates that the language is amongst the fastest available, 1 indicates that the language is essentially the slowest of languages.