Good news everyone!
FuturamaNo next major programming language is foreseen. At least, there are no reasons from the point of view of the theory of evolution.
Evolution works not only in the animal world, but also in any suitable environment. For the first time, this idea became widespread with the release of the book
The Selfish Gene by Richard Dawkins in 1976. It introduced the term
“meme” , familiar to everyone, as an example of evolution in a social and cultural environment. Programming languages ​​are also evolving. So their development is subject to the principles of evolution, on the basis of which it is possible to make an assumption about their future development.
')

The following mechanisms are necessary for the work of evolutionary principles: variability, inheritance of characters, and natural selection. It seems that meeting these requirements for programming languages ​​is quite obvious. A simple example is a diagram of the development of programming languages, which, perhaps, is even emblazoned on a poster behind your back.

One could argue that the creation of a new programming language is solely the merit of the creator. James Gosling created Java, Guido Van Rossum created Python, and Kernighan and Richie did C. However, in practice, they only implement the mechanism of variability by collecting something new from the “genes” of programming languages. No one is able to force the whole world to develop, for example, on ABAP, which, however, does not detract from the merits of the authors.
For an understanding of when the next big programming language will appear, you should familiarize yourself with the island principle. But first, let's consider the application of other principles of evolution to programming languages, if only for the sake of curiosity.
Extinction and genes
Using the analogy with oral speech, we shall consider as extinct those languages ​​in which no one is developing at the moment. Even if the compilers of these languages ​​exist, programs written in them can be run, and some “programming historians” can still write new code on them.
Everyone knows that the ancestors of the languages ​​C (1972) and Pascal (1970) were B (1969) and Algol (1958-68), which can be safely considered extinct. To say that B has been forgotten because it is “old” is wrong. Lisp (1958) is older, and its dialects are still in use, just like the name of the language itself. Yes, and C, despite the fact that it is no longer young, will persistently defend itself as the best programming language by millions of developers around the world.
Let's look at sample code in B from the original language
guide . Agree, it is not so far from modern C:
main() {
extrn putchar, n, v;
auto i, c, col, a;
i = col = 0;
while(i<n)
v[i++] = 1;
while(col<2*n) {
a = n+1 ;
c = i = 0;
while (i<n) {
c =+ v[i] *10;
v[i++] = c%a;
c =/ a--;
}
putchar(c+'0');
if(!(++col%5))
putchar(col%50?' ': '*n');
}
putchar('*n*n');
}
v[2000];
n 2000;
, B , — “” . C Pascal — “struct” “record”. , , C Pascal , ? .
«» , : . ,
«, , , !». , — , 1946 (ENIAC).
— , , . . Fortran (1957), 1977 . .
C — . , “ ” , , . , — , , B Algol . Fortran , 1990 .
. , . , — . , , .
, . C Pascal — , -.
Windows 1.0 (1985) node.js (2009). Windows 1.0 , node.js — -. , — . , “” “”. node.js watchdog .
, “” , UNIX (1969) — Erlang (1986). , node.js , , C Pascal — .
, 2009 Go, —
”go routines”. , , Erlang.
, “ ” “ ”. , - , - . , “” . , — , , . , ,
«, ».
C. , . C/C++. , , , . , .
— Java. , . “synchronized”, , , “Hashtable”. , Java — “concurrent” . , “stateless” “immutability”, “concurrency” — “ConcurrentHashMap”, . , . “Hashtable” Java , , “StringBuilder”, “StringBuffer” — , Java-.
Java , “” “” . .Net , .
. , — , — , . .
, . .
Java. , Java
, — , . . Java 1991 ( Oak). , Java- . , Java Sun Microsystems — “” , . 1993
Mosaic, .
, , . .
1995 Java . , , . , Java ,
Applet — , 2015,
HotJava. Java . , . 1990-, , — C++ Perl, . Java ,
2002 Microsoft.
,
1995 JavaScript. Java , .
,
1995 PHP . , “P”.
. . , - .
. . Apple iPhone (
2007) Objective-C (
1984), Google — Java Android (
2008). , (.
« Apple Google»). , Swift, .
-
2009 , - WebSocket . Node.js Go, Erlang. Go Node.js Erlang, Go , , , “”. . - — Elixir (
2012), Erlang.
—
Doom, . -, , Tizen.
C++ Python, Java, Lua (
1993) R (
1993). — .
, . “ ” “ ”. , . , , . .
Apple Swift Objective-C
2014. , .
JetBrains Kotlin
2011, IDEA NullPointerException. .
Google Dart
“ JavaScript” 2011. , , , Dart . Dart TypeScript (
2012) JavaScript, , .
Mozilla Firefox Rust (
2010). — , Rust . — Go - , Rust .
Python 3, ,
2006 Python 3000.
2008. Python 2 , , , 3000 .
Python - , Perl 6 .
2000, Perl 5 (
1994), Perl 6, , - 2015.
, . , , , . , .
— . JavaScript, Java, C#, Python PHP, . , . , Rust Go , , , .
,
,
,
“”