AI bid farewell to hype, Java 0 growth, where is the technology road in 2021?

[CSDN editor's note] Last year, CSDN compiled O'Reilly's interpretation of technology trends in 2020. Some of the forecasts on Python, AI and cloud platforms have been verified in the past year. As an online learning website, O'Reilly analyzes trends that developers need to pay attention to and explore every year. In the latest technology trend report for 2021, what are the new changes and what information is worthy of our attention, please use this article to find out.

Compilation | Li Lei Edited by Zhang Wen

Exhibit | CSDN (ID: CSDNnews)

Affected by the new crown epidemic, the use of online learning is increasing steadily in 2020. Many companies have closed their offices and required employees to work remotely from home; offline education has also been affected. Online education has increased by 96% year-on-year, and the use of books has increased By 11%, the use of educational videos has increased by 24%.

During the epidemic, many companies urgently needed the support of online businesses to survive, including small restaurants and farmers' markets that added online ordering functions. Under this, the development department of each company has become a very important department, providing various technical support for its business. Specifically at the level of technology, programming language, and tool framework, O'Reilly found through data analysis:

  • Python usage ranks first and continues to grow at a rate of 27%.

  • Multiple programming paradigms, concurrent programming, the integration of dynamic and static types, and the popularity of low-code or even no-code tools will become the future trend.

  • The content of AI continues to grow. Machine learning has increased by 14%, artificial intelligence has increased by 64%; data science has increased by 16%, and statistics have increased by 47%.

  • Web development has increasingly become a professional field for programmers. Ruby on Rails and Django have shown very strong growth, but the usage of PHP content is relatively low and continues to decline.

  • Cloud-related content increased by 41%, Microsoft Azure content increased by 136%, and Google Cloud increased by 84%. Many companies have moved important businesses, critical software, and data to the cloud, but there is still a long way to go in the future.

 

Python ranks first and continues to grow

 

 On the O'Reilly online learning platform, the most used languages ​​are Python (up 27%), Java (down 3%), C++ (up 10%), C (up 12%) and JavaScript (up 40%).

Figure 1. Usage and growth of programming languages

Surprisingly, the usage of JavaScript lags far behind Python and Java, only 20% of Python and 33% of Java. Looking further, we find that the Go language and Rust language are also continuing to grow at a rate of 16% and 94%.

As a concurrent programming language, Go has clearly established its position. The popularity of Rust will also continue to grow, because its existing stock is small, and it is not difficult to achieve 94% growth. The next step, Rust may establish itself in "system programming": building new operating systems and using Tools for cloud computing operations.

Because the name of some programming language or its framework contains another language and tools, just like many Java developers use the Spring framework, when searching for keywords related to “Java”, “Spring” is often omitted. The same is true for JavaScript using React, Angular, and Node.js frameworks, and the most commonly used libraries for using Python are PyTorch and scikit-learn. So we add related languages ​​related to Python, Java and JavaScript to the search results of the former.

Figure 2. Usage of programming language and framework combined

The combined result is still similar to the previous one, but it is different in some key information. The 7% growth of the Spring language can neutralize the 7% decline of Java and achieve zero growth, although the expression of zero growth is not appropriate, especially for languages ​​owned by companies that are already in trouble.

If the most popular frameworks are added to the JavaScript search results: React, Angular, and Node.js, then the usage of JavaScript in O'Reilly will rise to 50% of Python, which is only slightly lower than Java and related frameworks. After adding the frameworks PyTorch and scikit-learn, which are frequently used by users, to Python, it has expanded the leading advantage of Python

Suggest

But for beginners, choosing an excellent and potential programming language is very important. If a beginner chooses a niche programming language that ranks low, all sorts of troubles may arise.

Therefore, we do not encourage beginners to use languages ​​other than Python and Java that are too niche. If you are already familiar with the use of a certain language, you can try a new language, but don't focus your work on it.

With the change of trends and the development of the industry, the usage of some programming languages ​​may rise or fall, but we believe that mainstream languages ​​such as Python and Java will not be out of date for a long time. Choose with confidence.

 

 

4 key factors affecting the development of programming languages

 

If the competition between languages ​​is not so important, what are the important factors that affect the development of programming languages? We have summed up these 4 points:

Multiple programming paradigms

Since last year, the use of functional programming on the O'Reilly platform has increased by 14%. However, the classic functional languages ​​Haskell and Erlang are not among them. Both have not shown a large number of developers to use them, and both have declined (about 20% year-on-year). The growth of object-oriented programming even exceeds that of functional programming, with a 29% increase since last year. This shows that the real trend is to integrate functional features into the language of process-oriented programming and object-oriented programming.

From Python 3.0 in 2008 to Java 8 in 2014, the programming language continued to increase the functions of higher-order functions (lambda) and other "functions". Now several popular languages, including JavaScript and Go, have been from the beginning Has functional characteristics. This trend first appeared in the C++ standard template library 20 years ago, and we hope it will continue.

Concurrent programming

Platform data shows that concurrent programming increased by 8% year-on-year, which is not a big number, but don't ignore it just because the number is small. Java was the first language that was widely used to support concurrency. In the mid-1990s, because of hardware constraints such as processor memory, multithreading was a luxury at the time, and the conditions for concurrent programming were insufficient.

Thanks to the hardware development brought about by Moore’s Law, the situation has undergone tremendous changes. Multi-threaded operation is getting easier and easier. Therefore, support for concurrent programming is like support for functional programming. It has become a firm trend. Go , Rust, and most other modern languages ​​have built-in support for concurrency, and this has always been one of Python's weaknesses.

Dynamic and static typing

Compared with the difference between process-oriented programming and object-oriented programming, the difference between dynamic languages ​​such as Ruby and JavaScript and static languages ​​such as Java and Go will be even greater.

Once upon a time, the topic of adding static types to dynamic languages ​​caused a lot of controversy. Subsequently, the integration of various type paradigms was also "very uproar". As one of the dynamic languages, Python added the type checking function in version 3.5, and the static type checking function has been continuously added in subsequent versions. TypeScript has also achieved an annual growth rate of 12% after adding static typing to JavaScript. It can be seen that the fusion of dynamic and static types will also become a trend in the future.

Low code or no code

Electronic spreadsheets are the pioneers of low-code calculations. The first electronic spreadsheet office software VisiCalc was released in 1979, enabling millions of people to perform complex calculations without learning programming. Popularization of civilians is an important trend in many technical fields, and so is programming. Low-code or no-code programming will undoubtedly change the future of programming.

In the future, there will be new languages ​​and new tools that will realize programming without code or low code. They are extremely simple and may appear in any way (don’t be BASIC), and there will always be programmers who will develop them. Such programming tools.

It is foreseeable that the sharp contrast between low code and no code will make it difficult for programmers to accept or even turn a blind eye. But the more popular low-code will put the programming ability in the hands of more people, which is a good thing. This trend does not mean that programmers will be eliminated by "non-programmers", but that they will become a more productive group, who write these low-code tools.

summary

Given that we are getting closer and closer to the end of Moore's Law, concurrency is essential to the future of programming. We will not only have faster processors, but will also use cloud servers, micro servers and even systems whose functions are servers themselves. They are born It is a concurrent system.

Functional programming cannot solve the concurrency problem, but some certain principles will make us avoid detours-everyone likes first-class functions, software projects are getting bigger and bigger, systems will become more and more complex... So for programming languages , It is of great significance to extend itself through the integration of functional characteristics.

Whether you are a technical leader or a novice programmer, you must pay attention to these emerging trends, which will change the face of our industry for a long time.

 

 

AI, machine learning and data science

 

Although AI and machine learning are two completely different concepts, they are often confused, so we define machine learning as "the effective part of AI." AI pays more attention to scientific research and forward-looking. Machine learning is a technology that brings AI out of the laboratory and puts it into practice. If you understand this definition, it is normal that the content related to machine learning is the first in usage:

Figure 3. Artificial intelligence, machine learning and data

Compared with last year, machine learning has increased by 14%, artificial intelligence has increased by 64%; data science has increased by 16%, and statistics have increased by 47%. Although some people say that AI has stagnated, we have not seen it in the data. at this point.

The field of natural language has made amazing progress last year, increasing by 21%. For example, OpenAI's GPT-3 has attracted a lot of attention. However, similar to the previous news about AlphaGo's victory in Go, AI, machine learning, data science and other related fields have entered the trough of hype. It will take many years of work to apply the current research to commercial products.

 

 

 

Web development

 

Since the invention of HTML in the early 1990s, the birth of the first Web servers and the first generation of browsers, the Web development platform has continued to evolve. These platforms make Web development more flexible: it can support a variety of devices, support a variety of screen sizes, and can run complex applications in the browser. Every new year, the previous desktop applications will look outdated.

So, what exactly has changed in the world of web frameworks in the past year?

Figure 4. Web development usage ranking

As shown in the figure above, React is in a leading position in usage, while showing a significant growth of 34%. Despite rumors that Angular is gradually disappearing, it is still the second-ranked platform, growing by 10%. The content usage of the server-side platform Node.js is second only to Angular, with an increase of 15%, which is quite reasonable.

Surprisingly, because of its stable performance, Ruby on Rails has increased by 77% compared to previous years. At the same time as Rails, Django also showed a significant growth of 63%.

Does these growth apply to all old platforms? not at all. Although almost 80% of the websites are still using PHP, the usage of PHP content is relatively low, and it has dropped by 8%. I look forward to seeing how PHP 8 can change this situation.

The original vision of the World Wide Web is to empower everyone and make technology and information popular. The masses do not need to be technical geeks or learn to program. To view the source code in the browser, just click on the place of interest.

After 25 years, the situation has not changed. You still need to look at the source code, and you will still see all kinds of incomprehensible JavaScript. Web development is becoming more and more professional for programmers, as are other languages. This is really ironic. Will the emergence of a new generation of platforms or network structures reverse this trend? We will wait and see.

 

 

cloud service

 

The rapid growth of cloud services is nothing new. Since last year, cloud keyword usage has increased by 41%. This does not include specific vendors such as Amazon Web Services, Microsoft Azure or Google Cloud. If these are added, the growth rate is as high as 46%.

Figure 7. Cloud

The competition among the leading cloud providers AWS, Azure and Google Cloud is intensifying. AWS stays ahead and even surpasses the word "Cloud". Microsoft and Google are trying to catch up. Azure content shows a 136% growth, more than any other Competitors are fast. Google Cloud's 84% ​​growth is also very good. With the rapid growth of Azure and Google Cloud, Amazon's dominance may soon be lost.

Behind the strong growth of Microsoft Azure, it shows that it has done a great job transforming itself into a cloud computing company. In the past ten years, Microsoft has reorganized all aspects of various business lines, and transformed into a leader in the open source field, while owning GitHub and LinkedIn. Without such a firm and radical transformation, Microsoft will never be able to achieve such a success as Azure.

Although most companies are using cloud services in various ways, and many companies have moved important businesses, critical software and data to the cloud, there is still a long way to go in the future.

 

 

Write at the end

 

The so-called trend is not only the latest trend, but also a long process: containerization can be traced back to Unix 7 in 1979, and Sun Microsystems invented the cloud through its workstations as early as the 1990s.

We always like to talk about the "Internet age" and think that the development of technology is changing with each passing day, but the most important technology trend is not formed in a few months or years, but has spanned decades and came to us. It was even forgotten by everyone shortly after it was invented, and was re-discovered after a long time, surfaced and led the trend.

With this thinking in mind, let us take a step back and take a look at the chess surface again: How do we use the powerful capabilities that AI gives? Concurrency is important for handling massive calculations, then what? Moore's Law is coming to an end. Where is the next breakthrough? Developers’ computer operations have changed from many-to-one to one-to-thousands. Has automation changed from a choice to a necessity?

There is no doubt that everyone should learn to program, but this does not mean that everyone has to become a professional programmer, but that everyone can use computers effectively. Does this have to be achieved through programming? You know, no-code and low-code programming tools have begun to enter the market, allowing users to build everything from business-application-AI prototypes on their own. This trend can even be traced back to the late 1950s.

Finally, there is another possibility that the most important trends simply do not exist in our data and tools. Existing laws have not supervised and regulated technology, making tools and data to a large extent free. In the next few years, laws and regulations will play an important role in technology, and more and more attention will be paid to issues such as privacy , This may be the key factor affecting the next trend.

Twenty years ago, we built a future that we didn't really want. The question we face in the future is also very simple: What kind of future do we want to build?

Original link:

https://www.oreilly.com/radar/where-programming-ops-ai-and-the-cloud-are-headed-in-2021/

How do programmers avoid falling into "involution", what technology to choose the most promising, and what is the status quo and technological trend of Chinese developers? Come and participate in the "2020 Chinese Developers Survey", and more prizes will be given away!



☞支付宝 “集五福”今日开启;小米起诉美国国防部;Chrome 再次屏蔽七个端口 | 极客头条☞因为在企业软件中采用了React,我差点被公司开除☞和 Apple “较上劲”了?Google 解决 Cookie 隐私问题上拒绝“一刀切”
☞Windows 比 Linux 好?我有 13 个反对理由


Guess you like

Origin blog.csdn.net/csdnnews/article/details/113533226