Why don't we invent programming languages anymore?

In the last century, hundreds of programming languages ​​were invented, but in the 21st century, when we all entered the Internet age, there are only a few left. 

If you look at TIOBE's programming language ranking list, you will find that in the past 20 years, those old faces have jumped up and down: C, Java, Python, C++, C#, JavaScript...

6154bfea2d3586004d3043be0092b71f.png

In the late 1980s, an average of one new language appeared per month; now, an average of one per year is fine. 

I was a little curious, so I went to pick up the emergence time of other programming languages, and divided them into Mesozoic , New Generation and Old Generation . 

Let's first look at the guys in the Mesozoic generation, in their 20s and early 30s, they are the backbone of programming.

Python : 1991

Visual Basic :  1991

PHP : 1995

Ruby : 1995

Java : 1995

JavaScript : 1995

C# : 2000

(1995 was really a miraculous year, several bigwigs were born at the same time.)

Look at these old-timers, especially the C language, which is old and strong, standing for 50 years, and eating system-level programming to death.

Lisp : 1958

Pascal : 1970

C : 1972

Objective-C : 1984

C++ :1985

Object Pascal : 1986

The new generation is full of vitality, showing their sharpness, and staring at the old guys.

Go : 2009

Rust : 2010

Kotlin : 2011

Elixir : 2011

Julia : 2012

TypeScript : 2012

Swift : 2014

The new generation is just that they want to challenge the status of the Mesozoic generation and seize power, with little hope. 

There are several reasons:

1. The programming paradigm has not changed

Or the old three: process-oriented, object-oriented, functional. 

Under the von Neumann architecture, I am afraid there will not be any new paradigms. 

Now the top ten Mesozoic languages ​​ranked by TIOBE perfectly cover these paradigms, such as Java, which supported object-oriented when it was first born, but later added the lesson of functional style.

Like Python, JavaScript has supported object-oriented and functional programming from the beginning.

2. Development areas

Development fields include desktop development, web development, system-level software development, back-end development, data analysis, artificial intelligence, etc. 

The programming languages ​​of the Mesozoic Era are not only rigid in these fields, but also expand each other and invade each other's territory. 

The most typical one is the counterattack of JavaScript, a dick. At first, it was just a small language that lived in the browser. Later, through V8, Node.js actually entered the backend, and even used Electron to erode desktop development!

The same is true for Python. I originally used it to write some small tools and develop some small websites. Later, I got involved in the big money of artificial intelligence and developed from then on.

3. Ecosystem

Java, Python, JavaScript, C, C#, etc. After so many years of development, which one has not accumulated a large number of class libraries, which one does not have a huge ecosystem? If you want to move them, it is absolutely impossible without a revolution.

Even if the new language is good, but looking at so many existing codes, who would dare to switch easily?

4. The dividend of the times

Java met the Internet, Python met big data and AI, JavaScript met front-end development, and the opportunities of the times made them explode. 

Go was lucky, encountered cloud computing, and rose strongly. It is quite difficult for the others to succeed.

I used to think pessimistically that all mainstream programming languages ​​have been invented! 

The new languages ​​that appear in the future are all improvements and improvements, and there is no way to make a revolution. 

To give an inappropriate analogy, C, Java, Python, JavaScript, C#, C++, PHP are like the current G7 in the West, firmly occupying the largest market, and as long as newcomers emerge, they will be ruthlessly attacked. hit. Just like China wants to make technological breakthroughs, but is being suppressed by the United States and the West by all means. 

(Click the comic below to view details)

ecd20f83cd54e949f091e23ca842031a.png

But it is not absolute, just like China must break through upwards, I see that in the field of system programming, there is also a rising star: Rust .

17691127df3c001db4cde871ffc24116.jpeg

Although Rust did not invent new things, it has integrated the features of multiple languages ​​and multiple programming generics. It not only includes the three programming paradigms mentioned above, but also integrates features such as generics, low-level memory management, and ownership. It is said to be a master (this is precisely the reason for its steep learning curve).

Rust is a modern system-level programming language that simultaneously pursues safety, concurrency, and performance, and is expected to challenge the status of the C language.

Of course, having fewer programming languages ​​is a good thing for programmers. Programmers can learn less and lose a few hairs.

Finally, let’s talk about programming in the era of artificial intelligence. I saw an interesting metaphor in "Genius Programmer", saying that ordinary programming is like a well-behaved mechanical device. Walking through the world, walking along the route in the mind, everything has rules to follow.

But training a neural network is completely different. The relationship between the programmer and the program is more like the relationship between the gardener and the pastoral.

c9906bc41a76eef375e519801e68d05c.jpeg

Why did the beans suddenly not grow? Why are tomatoes bad? Maybe the gardener changes the soil, maybe adjusts the distance between the crops, maybe moves the beans to a sunny spot, or uses less fertilizer? It worked! They are thriving again!

The growth of gardening skills depends on countless experiments and hard-won experience. Many novice gardeners plant their first crops that either don't grow well or die. But eventually, through trial and error (and learning from the experiences of their peers), gardeners accumulate more knowledge and develop unspoken intuitions about what works and what doesn't. At this time, if you take them to a new field, even if the soil and light conditions there are completely different, they can quickly figure out which crops are more suitable for growing there.

See, while programming skills are essential, the focus becomes gathering data, training, tweaking, and praying that the program works.

I don't know if this is the programmer's luck or misfortune?

Benefit time is here!

Free shipping to send 5 books

"The Way of Software Platform Architecture Design and Technology Management"!

7a0268e4df6f17cec4449f28b3c9a79a.jpeg

The author is Wei Zhao, a 2002 graduate student majoring in software engineering at Tsinghua University.

This book takes the top-level design of complex platforms as clues. The author uses down-to-earth technical language and a relaxed narrative writing style to refine the experience of nearly 20 years of software platform technology work, sort out so many tips, and write a book to share with readers. . The content of the book is quoted from classics, idioms and proverbs are quoted in many places, and a lot of metaphors are used in writing, hoping to bring readers the feeling of the original ecological technical language and reflect the emotion and taste in the technical work of software platform.

Click the link below to participate in the lucky draw. Winners must fill in their contact address.

Guess you like

Origin blog.csdn.net/coderising/article/details/128979282