History and evolution of programming languages

Denis Suro

This document is © 2001/2014 by Denis Suro. It can be printed and reproduced for educational purposes. You should not put this document on another site, but should post a link on this page.
Selection criteria: A programming language goes down in history if it is widely used or inspired by other programming languages. The list also includes new and innovative languages.


Common programming languages ​ ​ have undergone a time-consuming and strange evolution since 1946. To show the evolution of syntax, functions, they are classified by implementation time. When Pascal, C++, Python came along, who represented them, why do languages have such differences?
Selected dates correspond to the moment when the first program could be written and compiled in the language. Where possible, a compiler or interpreter site for the language or a detailed description for the main ones is provided. The story mainly deals with universal application languages or scripts, but I mention some important specialized languages and all those that had a great influence on the subsequent design of other programming languages.
If you find mistakes or omissions, you can say this: send a comment to: webmaster@iqlevsha.ru.

The main categories of languages ​ ​ (today) are functional and procedural (so-called imperative) languages, and logical.
A language is called functional, in the mathematical sense of the word function, if each operation does not depend on the context, and the result of the function depends solely on its arguments.
Haskell, Lisp - functional languages ​ ​ of different genres. Rather, they are designed for artificial intelligence. Lisp uses the principle of reducing problems, Prologue is the principle of solving first-order predicates, this is a logical language.
Also, the imperative style is opposed to the declarative. In fact, it is considered a declarative system that consolidates knowledge, states the problem and provides a solution mechanism. The prologue calls itself declarative.
Almost all languages, functional or imperative, are now object-oriented and use classes that describe real or purely computer objects.

There are 4 generations of programming languages ​ ​ plus at least two new trends.

  1. Machine languages.
  2. Symbolic languages and automodes.
  3. Material-independent languages such as Basic, C, Cobol, Algol...
  4. Languages designed to describe the problem, such as Simula and other object languages.
  5. Logical programming languages claim to represent the fifth generation, but their use is marginal . The fifth generation can be the languages ​ ​ of the Internet, so they work on any machine and are compiled into intermediate (so-called virtual) code.
  6. Markup languages ​ ​ inspired by XML are the latest trend, they integrate code and data into an extensible form, and work online.

Regardless of these theoretical generations, the great dates are:

First language

Ada Lovelace, as well as Babbage and his nephew, wrote programs for the difference machine project, and then Babbage's analytical machine.
In 1945, German K Zuse, inventor of the Z3 computer, reportedly identified an evolving language (with arrays and records) for the machine. We have few documents on this language.

Collector

Assemblers exist from the very beginning of computers. They associate a symbolic name with machine language code, for example:

add bx, 4
cmp [adr], 3      // comparaison
jmp address // branchement
Assembly programming is no longer practiced on current computers, even for quick execution procedures... Several modern languages ​ ​ generate a portable bytecode that is close to the assembler, but invisible to the programmer.

Autocode - 1952

Alick E. Glennie

Implemented first on the Mark 1 and then on other machines, it is a symbolic code that translates into machine language.

FLOW-MATIC - 1955

Grace Hopper

Recognizing that programming in a symbolic language is not accessible to researchers, Grace Hopper wanted to use words as instructions for UNIVAC I. The language separates instructions from data structures, which was also new. The compiler was finished in 1958.

IPL - 1956 - Processing Information Language

A. Newell, H. Simon, J.C. Shaw

List processing language, low level. Implements recursion.

Fortran - 1954-1958 - FORmula TRANslator system

John Backus and other IBM researchers

Language devoted to mathematical calculations.
Fortran II in 1958 introduced function routines, loops, a primitive FOR control structure.
Identifiers had no more than six characters.

UNCOL - 1958 - Universal Computer Language

Melvin E. Conway

This is the first bytecode, the first intermediate language that responds to the need to write programs that work on all devices. It was not implemented, but inspired subsequent projects such as the UCSD p-System .

Lisp - 1958-1960 - LIS Processing

Mac Carty

Functional language for list processing.
It is recursive, not iterative. Data and programs are not different and can be treated the same.

IAL - 1958 - International algebraic logic

The first name Algol 58, not implemented .

ALGOL - 1960/Algol W - 1966/Algol 68 - ALGOrhythmic

Language defined by the international commission of informatics coordinated by the IFIP

Algol Gini

It is the machine's first universal independent language.
Introduces the BNF (Backus Naur Form) grammar to perform a syntactic parser.
Enter the structure of the instruction block and local variables in the blocks.
Introduces recursiveness (despite the reluctance to consider it superfluous!).
It uses dynamic arrays, so the following languages, such as Pascal and C, have regressed with static arrays for performance reasons.
Here you can find IF THEN ELSE, a fairly general FOR, destination symbol: =, SWITCH with goto, BEGIN END, WHILE delimiters..

Algol W from Niklaus Wirth in 1966 introduces RECORDS, declarations of dynamic data structures, CASE, passing parameters by value, preceding operators.
In the same year, Nicklaus Wirth creates Euler, an intermediate language between Algol and Pascal.

Algol 60 remained a math-oriented language. To return to a common language goal, in 1964 a new version was solved - Algol X, which later became Algol 68.
Algol 68 used = + to combine assignment and addition . Brought a unifying structure and caste type. It adds IF THEN ELIF FI, CASE, GOTO, user-defined statements.
It did not allow separate compilation of files (called incremental).

COBOL - 1960 - COmmon Business Oriented Langue

Defined by CODASYL, COnference on DAta SYsystems L languages

The work of the conference under the auspices of the Ministry of Defense, together with manufacturers, universities and users, lasted from May 1959 to April 1960.
Grace Murray Hopper, who defined Flow-Matic, a language compiled in the 50s, was part of the committee.
Classic procedural language for business management, in which the program consists of 4 departments: identification, environment, data, procedures, which can include sections. It is data-driven and accurately identifies hardware and input and output formats.
It introduces the RECORDS data structure. Programs themselves are documented by syntax, which does not make them easier!

APL - 1964 - Programming language

C. Iverson

A language that uses mathematical notation consisting of operators. One guy, picture.
Defined in 1957-1960, implemented in 1964.

BASIC - 1964 - Beginner's All-purpose Symbolic Instruction Code

John Kemeny, Thomas Kurtz

Description

It was designed in 1963 to be easy to learn and implemented in 1964. The first version was compiled and then became interactive and interpreted. Each line was numbered to enable connectivity via GOTO!
Bill Gate and Paul Allen won an international competition by designing an implementation of performing Basic, first for Altair (in 4 k memory) and then on other microcomputers.
Microcomputers would ship with Basic in Dead Memory (ROM) until the late 1980s.
In 1977, the Apple II came with a whole basis. Later, they will have Microsoft's basic Applesoft floating point. Applesoft has identifiers of no more than two characters!, Connecting to line numbers. The subroutines are called by the line number.
IBM's first PC, released in 1981, uses Microsoft MS-DOS and its interpreted Basic (Basica). At 82, Microsoft provides compiled basic (Quick Basic).
Pascal and C language will replace Basic in the same decade, Microsoft still provides compilation Basic Visual Basic. The ASP for web languages ​ ​ and application extension languages ​ ​ (macros) is basic.
True Basic, is compiled by original authors and no longer uses line numbers.

ISVIM - 1966 - If You See What I Mean. (If you see what I mean).

P. Landin

The first functional language, in the mathematical sense of the word. The first also uses lazy evaluation.

Grammars assigned - 1965

Donald Knuth

Complementing the BNF method, the assigned grammars (the grammar attribute) describe the semantics of languages ​ ​ in the form of executable functions. This type of grammar will make compilers easier to execute .

Simula 67 - 1962-67

Ole Johan Dahl, Kristan Nigaard

The Simula project started in 1962. The goal was to make it a tool for describing a system of individual events or a network, as well as a language of imitation programming.
It was intended as an extension of the Algol language.
In 1964, "Simula 1" was introduced on the Univac 1107. Then it was used to control administrations, airports, planning, transport or the social system.
Then it was a specialized tool. In 1966, it was decided to make it a universal language. Several projects were launched with various computer designers (Ibm, Univac, Digital), the result of which was Simula 67.
This generic language introduces the notion of classes, subclasses, and objects of class instances. Classes allow you to associate functions (methods) with objects .

Logo - 1966

V. Fuerzeig, Seymour Papert and others

Designed to teach children programming, it is close to Lisp, and is based on moving a "turtle" to the screen.

SNOBOL 4 - 1967 - StroNg Oriented symBOlic Language

DI Farber, RE Griswold, FP Polensky at Bells Labs

Snobble appeared in 1962.
"Snobol 4" is the first stable and widespread version of "Snobol," in 1967.
It is a text processing or character string manipulation language based on the principle of pattern, concatenation, and interleaving.
It mainly uses tables and tables. This is the first language to implement associative arrays (dictionaries) indexed with keys of all types.
It is also the first to implement pattern matching, a kind of complex switch.
You can execute the code contained in the lines.
Types include string, integer, real, array, table, pattern, and user-defined types.

CPL - combined programming language

Cambridge and London Universities

It is a mixture of Algol 60 and functional language, designed to compute theorem proofs. He used polymorphic test structures. Typical language with joker guy "any." Structured list types and tables.
Complex, it was not implemented . I'm only quoting him because he was a step toward C language.

BCPL - 1965? - Basic CPL

Martin Richards

It was about a simplified version of CPL.
It uses FOR, LOOP, IF THEN, WHILE, UNTIL, REPEAT WHILE, SWITCH CASE, etc.
It has procedures and functions unlike C.
Block delimiters are $ (..... $), which likely inspired the C :/*... */comment separators

PL/1 - 1965? - Programming Language Number One - Originally NPL (New Programming Language)

IBM

The language was designed to be generic and modular.
Keywords are reserved only in the context in which they are used as such.
It is more independent of the material than its predecessors. These types are recognized: fixed, present, complex, symbol, bit, bin, pointer, picture, queue, etc. Variables have default attributes (e.g. parr precision) that depend on context.
These composite types are integrated: array, and structures, and unions, and combinations of them. IF THEN и SELECT. Quando.. OTHERWISE are conditional structures, and DO structure changes allow conditional loops.
Storage classes are introduced: automated, static (life-saving programs), managed, based. Exceptions implemented.

Pascal - 1970 - named Blaise Pascal, French mathematician

Nicklaus Wirth

Description

A language created to facilitate the execution of compilers and which controls the teaching of programming, requiring structured programming.

UCSD Pascal is the first microcomputer version shot by a group of programmers led by Kenneth Bowles. It compiles programs into P-code, which is interpreted and ported (as later Java). It has a complete development environment, an idea successfully adopted by Turbo Pascal.
In 1981, the role-playing game written in Pascal's language, Wizardry, was very successful on the Apple II.
With the introduction of Turbo Pascal in 1983 (Anders hejlsberg), quickly and with a full IDE, the language spread.
Constructs are close to C. The way variables are declared is harder, but not necessarily more logical.

Forth - 1971 - Fourth reduced to Forth for IBM 1130 5-letter limit

Charles H. Moore

Defined in the 60s, apparently implemented in 71. 
The language of astronomy that uses a stack instead of variables.
He wanted a 4th generation language, hence the name .

Smoltalk - 1972

Alan Kay и Software Concept Group

This is a completely domain-oriented language that works inside a graphical environment, with a window, a mouse. Introduces the concept of a bitmap image (1 pixel = 1 memory location).

C - 1973 - C is the successor to B, which is the successor to BCPL

Dennis Ritchie

Description

It is a language originally intended for programming the UNIX operating system, and which quickly became universal due to its portability and performance.
It allows you to collect files separately.

In 1965, ATT programmers used the Bcpl language to work on r ealisation Unix. Dissatisfied with the language, they developed it into a new version called B, and then into a new language called C, which would achieve known success.
It was the evolution of the material that prompted the creation of C. The languages ​ ​ Bcpl and B used integers as pointers, but on machines designed differently, this could no longer be.

Bcpl didn't have a boyfriend. Statements of the genus int i, char b were created along with C. Then other types appeared.

Operator + = originally from Algol 68, but it was written rather = +
Bcpl placed a block of instructions between (* and *) as a comment between/* and */and a nested expression between (and). I suppose this symbolism wants to denote the fact that everything is an expression in language, while accelerating parsing. The C language is simplified by the characters {and}, which eliminates the original meaning.
The notions of union and caste come from Algol 68.
The++ operator existed in B.
The " include" directive comes from the PL/1.
The preprocessor was implemented in 1973, and actual use began, so it is on this date that I place the creation of the C language, even if maturation began in 1969. The language continued to develop until 1980 . Starting at 73, C was used for Unix kernel programming.

Prologue - 1970 +

A. Kolmerauer, D. Roussel

GNU Prologue

The language was developed jointly in France in Aix-en-Provence and Edinburgh .
It introduces logical programming. The program consists of Horn provisions.
The prologue calls itself declarative because its inference system is a decision mechanism.

SQL - 1970 + - standard query language

IBM

Description

Query language of relational databases. It succeeded the language "Ploshchad ."

Awk - 1974 - By initials of authors

Aho, Kerningan, Weinberger

A pattern-action text processing language based on regular expressions.

Scheme - 1975 - De "Schemmer"

MIT - Gerald Jay Sussman and Guy L. Steele

Structure

Lisp-derived and purified language.
Types are logical, integers of indefinite size, rational or complex, symbols or symbols, vectors, oriented pairs, lists, associative lists, hash tables. The general type of S-expression allows you to expand the language.
It is often used as a scripting language in Gimp software. 
The Hop in Inria language and development tool allows you to use a functional HTML language to create 2.0 web applications.

CLU - 75 - CLUster

Barbara Liskova and MIT.

After Simula, he introduces the concept of an abstract type constructor with code to create it. Objects are called clusters (groups). It brings the concept of iterator, an effective exception management system, multiple purpose. These ideas were picked up by Python.

Plasma - 75

Carl Hewitt

Acting language. Implemented in Lisp.

Sasle - 1976 - Language St Andrews Static

D. Turner

Designed to teach functional programming. 
A descendant of Isvim, an unlimited number of data structures.

Icon - 1970 +

Griswold

Procedural language, with text processing functions as Snobol4, and powerful constructions. Undoubtedly, the first goal-oriented language: The instruction is executed if an expression with a successful or unsuccessful state is executed .
It has structured types: list, set, table (dictionary).
The list is written: name: = ["word," "word," number, etc.]
The list refers to an index, such as [i] or through stack management.
The set contains unsurpassed elements, merge, intersect, delete elements.
Design range is written :  a to b
where "to" is a keyword and "a" and "b" are variables..
You can place the range in an expression or as an argument to a function. The expression and function will be called for each interval value.
 Ex: write (1 to 5) will show 1, 2, 3, 4, 5.
Expressions do not return a true or false value, but are evaluated or rejected. Related operations are performed when evaluating an expression. It is the first language for evaluating goal-oriented expressions.
C : si language statement (x = expression)... which means: assign x the result of the expression, and if a is different from zero, then..., this construction is generalized to Icon if the expression evaluates, x takes its value and the condition is satisfied, otherwise x does not change and the condition passes.
Any constructor... do associated with an expression works as an iterator. Just like the situation.
Alternation is another powerful original construction. It allows a sequence of parameters to be used, possibly before the result is obtained. Its symbol is "|."
For example, the statement: if in | b | c = 0 | 1, then....
reads: if a or b or it costs 0 or 1, then...

ML - 1973? - meta language

R. Milner

Functional language inspired by Isvim.
His goal was to prove the theorem at the University of Edinburgh.
Elements are replaced with template templates.
Implemented in Lisp.

Modula 2 - 1979 - MODUlar LAnguage

Nicklaus Wirth

Modula 1 was reportedly identified in 1977. Originally implemented on a Lilith workstation.
The idea of ​ ​ the language is to reduce the risk of errors through forced programming rules. However, he approaches the C language in an attempt to fill in Pascal's blanks. Thus, a function call without a parameter is written f (), as in C, and not f, as in Pascal .
It breaks the program into modules containing procedures and data structures, with local visibility and with interfaces between modules. Use corutins. It provides hardware access features to compete with C.
It will be little used outside the university framework, since these improvements (modules, hardware access) were added to Pascal distributions (in particular, with Turbo Pascal units).

Ada - 1980 + - on behalf of Ada Byron de Lovelace, the first woman to program

Created by a working group led by Jean Ihbioy on the terms of reference of the US Department of Defense (DED)

Inspired by Pascal and Algol U.
Introduces generality of algorithms and some kind of primitive orientation of an object, it will subsequently become object-oriented after C++.
Represents packages, independent modules.

C++ - 1981-1986

Bjarne Strustrup

Description

Object-oriented language on the Simula principle.
Introduces operator overloading. Methods can be inline.
Next to/* and */, it uses//for a single-line comment. We can note the revival of symbolism that already existed in the Bcpl language, which became the successor to the C!

Objective C, invented by Brad Cox in 1984, is another object-oriented version of C, inspired by smalltalk. No overloading of operators.
Used on the late Next computer and to implement the NextStep operating system, it became Apple's programming language with the return of Steve Jobs and thus the iPhone.

Standard ML - 1984

R. Milner, University of Edimburg and Cambridge, Inria.

Search for "Standard ML Moscow" in the search engine. ML implementation .

Eifel - 1985 - the name of Gustav Eifel

Bertrand Meyer

Description

Fully domain-oriented procedural language, implements resilience designed for software security.
Compiled in C. Can interact with other languages. It includes elements of a functional language, has generic classes, a collector's garbag.
There is a derivative open source version, Sather, (the name of Berkeley Tower).

GAP - 1986 - Groups, algorithms and programming

Johannes Meier, Werner Nickel, Alice Niemeyer, Martin Schoenert and others.

The language has been defined for programming mathematical algorithms.
It is interpreted, interactive and not typical. List and records of basic structures.
The syntax is inspired by Pascal with differences. Comments are inserted with #.
The end of the block is marked by inverting the keywords: if fi, do od.
Loop for shape for list or for from to.
The language distinguishes between procedures and functions.
It is characteristic that variables point to a value, not a memory address, and the definition of a function that has the form of a call: x: = function (arguments) of the block.
You can nest a function in another function.

Miranda - 1989 - named after the heroine of Shakespeare (Miranda, wonderful in Latin)

D. Thurner

Inspired by Saslem and ML. Function arguments are evaluated only when they are used (logical evaluation). Nested template, modules.

Caml - 1987 - Abstract Machine Category Language

Suarez, Weiss, Mori

CAML

Caml and Objective caml in 1996, implement ML.

Perl - 1987 - Practical Extraction and Reporting Language

Larry Wall

Designed to replace the Unix, Sh and Sed command line languages, as well as Awk, it repeats the same (terrible) syntax. It is mainly used for system administration and CGI scripts.
Uses associative lists and tables (dictionaries ). The FOREACH construct allows you to view the contents of a list.

Oberon - 1988

Nicklaus Wirth

After "Modula 2," the author identifies Lilith's language in 1980 (in Lilith's car), then Oberon.
Several common structures are being removed to further reduce the risk of errors! A collecting garage is added.

Haskell - 1990 - Haskell Curry Software Name

Language developed by functional language committee

Purely functional language. Inspired by Miranda, so Sasle.
Function tables, matching patterns.

ABC - 1980-90 - ABC by expression

CWI - Meertens, Pemberton (and Guido van Rossum)

Scripting language developed by CWI in the Netherlands and wanting a successor to Quick Basic or scripting languages ​ ​ for Unix.
Probably, the first used only indents to indicate the interweaving of procedures: there are no delimiters, such as begin/end or equivalent.
Another innovation is the lack of file management, but the preservation of global variables: they save their content from session to session!
There are five main types: number, string, list, composition (structure without field names), table.

Python - 1991 - The name comes from the English series Monty Python's Flying Circus

Guido van Rossum

Description

Scripting language with dynamic typing. It's an alternative to Pearl.
Based on ABC, but can be extended with C modules and object-oriented.
As ABC, it uses developed types: tuple, list, dictionary.
The slice [a: b] operator allows you to extract a subset from the list.
There is a version that compiles in Java bytecode, jython and a version for .NET.

Pov-Ray - 1991 - Perseverance of Vision (sci-fi book title)

D. and A. Collins and depositors

Pov-Ray is an image description language.

DisCo - 1992 - Distributed Joint Operation

Reynaud Courqui-Suonio

Disco is a specification language for reactive systems, with Pascal syntax. Language constructs are objects, event-driven functions (called actions here), and relationships. The feature is enabled when a system condition occurs and may be overloaded. Disco focuses on collective interactions. Layers (layers, frames) are language modules. It is a system-oriented language with objects and reactions (rather than an action-oriented language as stated in the presentation).

Ruby - 1994 - Like a gem, similar to Perl

Yukihiro Matsumoto

Description

Ruby was intended as a successor to Perl and an alternative to Python, to be clearer than the former and more object-oriented than the latter. Syntax draws inspiration from these two languages, it wants to be intuitive and natural, but it can be complex.
There are not new control structures, as in Script, but a number of minor innovations that reduce the size of the code.
It is an interpreted, easily extensible language. Statements end with line ends. Statement blocks and loops end in "end." We find most of the features of Python: associative tables, iterators...
Its originality is in dynamic objects (adding methods to instances) and in the region of variables indicated by the prefix.

Java - 1994 - Java translates as caua, coffee

James Gosling and other programmers at Sun

Description

Originally conceived, in 1991, as an interactive language, and called Oak, it was not successful. But in 1994 it was rewritten for the Internet and renamed Java (cafe, kaua). In 1995, browsers could run applets. In January 1996, JavaSoft released JDK 1.0, the Java Development Kit.
Java is an object-oriented language inspired by C++. It is compiled into bytecode interpreted on any computer. (Visual Cafe and GCJ produce machine code).
Simplifies C++: one class per file, automatic memory management, no pointers. It limits it: there is no multiple inheritance and overloading of operators, but adds built-in multitasking, portability.
Java has only dynamic tables, unlike C and C++.

PHP - 1995 - Personal Home Pays Hypertext Processor

Rasmus Lerdorf

Description

Multi-platform scripting language that integrates into HTML.
Like the C language, not typed, variables are denoted by the $ symbol, as under the Unix or Perl shell. It processes html pages, including php code, and produces the page in pure html.
The enhanced feature library allows the webmaster to create dynamic and interactive pages.
Microsoft uses the equivalent language in Windows - ASP, which is close to basic.

JavaScript - 1995 (First called LiveScript)

Brendan Eich in Netscape

Description

Script language for inserting procedural code and web pages.
For use in other applications, such as XML-based languages.
Common C or Java syntax, but with atypical variables. Web page elements (window, table, etc.) are accessed through the document object model.

UML - 1996 - Unified Modeling Language

OMG (Object Management Group) Standard - Grady Butch, Jim Rumbaugh and Ivar Jacobson

UML is a union of three modeling languages ​ ​ developed by the three authors above. The language uses graphical notation to describe software projects. A source is a diagram representing objects and their interactions. The model consists of views and their combination describes a complete system. The model is abstract and domain-independent.

ECMAScript - 1997 - ECMA Script

E.C.M.A.

Description

A standard for the JavaScript language invented by Netscape to make client-side web pages dynamic.

Rebol - 1997 (Definition older) - Relative language of object-based expression

Carl SassenRath

Interpreted scripting language using compact code. It is designed for communication on the Internet and distributed systems. It is expanding.
Includes 45 types that use the same operators (ext: date, money...). The instruction blocks are between [].

C # - 2000 - (C-sharp), musical note, successor to C++ (synonym for melody?)

Anders Heilsberg/Microsoft.

Description

This language has been a great success since 2002. It is the main language of the .NET platform, for programming software that can be used remotely on the Internet. Like Java, it repeats the syntax of the C language (which is still 30 years old!) With the same simplifications: garbage collector, lack of pointer, lack of multiple heritage, interfaces, multitasking...

C # compiles in an intermediate language, MSIL (MicroSoft Intermediate Language), and works with the multilingual CLR library (Common Language Runtime). The main originality is that in MSIL you can compile different languages ​ ​ and share your classes.
 Other innovations were included in the language:
- constructs here are special objects passed by value.
- literals are objects with methods..
- Attributes are descriptive objects attached to program elements and used at runtime.
- Properties: The method defined as a property is used as a variable: prop = 5 is equivalent to prop (5).
- foreach () constructor for searching tables (new only compared to Java and C++).
- a delegate replacing the C function pointer.
Compared to Java, in addition to the differences listed above:
- Event management is better integrated.
- Keeps C++ operators overloaded
- Easier access to the native system.

AspectJ - 2001 - Aspect for Java

Palo Alto Research Center

Description

Aspect J is a Java extension that implements externally oriented programming. A method that modulates transverse "possibilities." Here unity is not a class, but a concern that is divided between several classes. Concerns can be properties, areas of interest, system, and POA describes their relationship, combines them in a program. Aspects encapsulate multi-class behavior.

Scriptol - By Denis Suro, 2001

Description

The script (ScriptWriter Oriented Language) may have been compiled into PHP, C++, and then into an executable binary file, which gives it high portability. This is the language of applications, scripts, and web pages.
Instruction blocks and control structures are not closed on "end" or "}," but, like XML, with the form: "/if, ""/for," "/while, "etc.
New control structures appeared in the language: "for in," "while let," "scan by," etc... "If composite" facilitates the implementation of rules.
Variables and literals are objects. A primary object (number, text, etc.) is created or developed by directly assigning a value or list of name arguments.
Scriptol is designed to evolve to provide, along with classes, other high-level structures and bring programming closer to thinking.
Since October 2003, scriptol has allowed XML to be used as an internal data structure.

The Rock. February 2004

Federal Polytechnic School in Lausanne

Description

Scala is a purely domain-oriented language that implements some of the features of Python in Java syntax. It is statically typical and both procedural and functional. He now shoots on JVM and .NET.

Go - From Google, 2009

Description

Created by Google for its own development, but made publicly available under a free license, it is designed specifically for compilation speed.
This is a modern version of C++ without header files, with simplified syntax. Classes are replaced by simple interfaces and the inheritance has disappeared.
This brings competition and includes a collection garage, but without a substantive contribution to the development of programming languages.

Julia - 2010

Jeff Besançon, Stefan Karpinsky, Viral B. Shah, Alan Edelman. Sponsored by DARPA.

Description

The authors wanted to implement the best capabilities of all other programming languages: objects, competition, monotony, distributed work, macros, generality. This is with the most concise and clear syntax. Julia significantly promotes programming.
Julia code compiles with JIT LLVM and works as an interpreter.
Its main applications are scientific programs thanks to an expanded library, a cloud with distributed and competing processing, and also thanks to the ability of the program to modify itself, robotics.

Dart - From Google, 2011

Description

Designed to replace JavaScript, which Google considers irreparable (this is not the opinion of all players on the Web), it approaches static languages ​ ​ such as Java, with classes with a simple heritage, typical or dynamic variables of choice. It provides progress in functions (competitors, mixers, streams), but rather represents a regression in design compared to JavaScript, the dynamic capabilities of which represent a real evolution. Version 5 of JavaScript provides for the addition of classes and inheritance, which reduces Dart's interest in the browser.

Rust - Mozilla, 2006-2011

Description

This system language, originally created by Graydon Hoare in 2006 and taken by Mozilla (its employer) in 2009, has had a compiler since 2011. Its syntax is derived from C with additives to manage competition and syntactic additives. It is object-oriented and generic with polymorphic classes, as in Haskell.
It is safer for the Internet and better uses modern processors.

Asm.js - 2013 - Mozilla

Description

This subset of JavaScript allows, in combination with other tools, to convert written applications and libraries to other languages ​ ​ and use them in the browser. This makes it a versatile interface for online or offline software running on all operating systems and types of equipment - from a desktop computer to a smartphone.

Swift - 2014 - By Apple

Description

Designed to replace Objective-C on Apple devices, in particular the iPhone and iTab, removes some of the disadvantages of this ancient language. It has a classic design and is especially distinguished by changing the name of language elements, the interface becomes protocols, for example .

From present to future

It can be seen that after many dialects of the 70s, the invention of languages ​ ​ stalled when to syntax. Common languages ​ ​, even such as Java, C #, PHP, do not make any changes to the processing instructions, Go and Dart are even regression. Only Julia is a real breakthrough and uses the current capabilities of computers.
The use of JavaScript is increasing compared to standalone web applications.

Some trends:

Conclusion

The development of mobile devices with their many operating systems contributes to the use of HTML as a platform for development and related technologies: SVG, Canvas, CSS. JavaScript is becoming the dominant client language for online applications.
Another trend: Distributed cloud processing...

Resources and Information

Original version in January 2001 by Denis Suro. Last updated May 14, 2015.