2020 programming language inventory outlook: Java veterans die, Kotlin ready to go

In the new decade the occasion, all walks of life are making inventory and prospects. SegmentFault as the developer community and the technology industry vertical media, has been concerned about the development of the industry and related developments, as we recently have started to organize a major platform for the community to make the prediction for the field of technology and inventory.
Here Insert Picture Description
Today, we continue to crude translation (end of the article there is the original address, rough translation only for your early, I recommend reading the original English text) Programming Language Development Outlook released by O'Reilly - "Where programming languages are headed in 2020".

The inventory and analysis collated by the digital programming experts, contains a lot of their thinking for some classic programming languages ​​and new programming languages ​​as well as analysis of the industry based.

Python

This year the larger news Python is the father of Python Guido van Rossum (Guido van Rossum) officially retired and handed over to Python Python Steering Committee. So far, the transfer of power is not a "labor pains", as the author "Python Crash Course" Eric Matthes think of it, this is normal, because "Guido in a very long time to remain in their own the role of the community. "in addition, 2020 will also terminate support for Python 2.7, which is likely to lead to stick with Python 2.7 people become very uncomfortable.

In any case, Python is still the language of choice for scientific data.

For Matthes, one aspect of Python exciting is that "all sorts of interesting and critical project from a community has been born, and the community has been so consciously established for so long." Python core members of the Steering Committee and CPython developers Carol Willing also celebrated in these projects, such as Binder service that by creating an executable environment to promote research in Jupyter Notebook repeatable, particularly if they are beyond its initial goal when.

She pointed out, "Binder last year has been widely used in many Python conferences on teaching workshops and tutorials." Willing to CircuitPython and Mu project also shout, asked: "Who does not like hardware, flashing LED, sensor, and Mu use of user-friendly editor, is not this a great choice for adults and children? "

Java

This year for Java, the main good news. Ben Evans (Ben Evans), explains: "Once again, rumors about the demise of Java once again become a platform for critics of wishful thinking."

But this is not easy. As we noted last year, Java 11 released in September 2018 and brings many new features, including many important functions has obvious advantages in terms of use of the container. However, according to the survey of JetBrains, the introduction of this new version does not bring widespread adoption, more than 80 percent of developers are still using Java 8.

Evans wondered: "Does this mean that people do not like running in the container as we know Java or people just do not know the benefits of using Java 11 in the container??"

Despite the slow adoption rate, but Java's six-month release rhythm has been evolving -Java 12 decline in March 2019, Java 13 came out in September. According to Trisha Gee say, it really starting to show its value:

Each version is very small, but predictable. Although they do not all have exciting new language changes, but you can see that the language is steadily moving forward.

In addition, it supports the preview of this idea, I think the work we switch expression is very good - developers must try to use the feature and provide feedback based on the use of real feeling, rather than abstract, conceptual feedback idea. In Java 13, the syntax of the switch expression Minor changes, it is possible, because it is a preview function, and there is no fixed set.

When Oracle Java SE will migrate to the subscription-based model, the 2019 harvest another surprise. But, as "Learning Java" co-author Marc Loy points out, "With the increasing enthusiasm for OpenJDK, the entire Java community is facing changes kind of 'misfortune' of."

As of 2020 just arrived, Evans (Evans) recommended in 2020 can continue to focus on the development trend of 2019:

How will we be close to the production version of the Valhalla project? Whether to provide pattern matching and algebraic data types (Project Amber) incremental strategy will work? Quarkus will honor its commitment and belief early fans do? 2020 will be the Kotlin in the field of Android an important step leap of it?

This is an exciting time, we are making the transition to new things, and a lot of things are happening.

Kotlin

Google announced in May 2019 Kotlin is now the preferred language Android application developers, suggesting that the language has been widely adopted.

While many Android developers not yet fully migrated to Kotlin, but people have migrated all know the benefits it offers. "Head First Kotlin" Dawn of the author and David Griffiths to share some of the reasons behind the rise of Kotlin:

IDE for the language created by the company, Kotlin has a good level of support tools is not surprising. Experimental code for DSL contract allows developers to provide assurance about the code of behavior. Your functions have side effects? Can I be sure to return a non-null value? Codes contracts allow you to make these commitments, and the compiler can use them to compile-time checking to relax.

Now, the barriers between different platforms Kotlin is being broken. "Expect" / "actual" qualifier so that developers can more easily write across Java / Native / JS environmentally compatible code. Serialization support means to convert the data into JSON objects Kotlin easier, and vice versa.

Kotlin continue to want to see phenomenal growth - and not just in Android. JetBrains developer advocate team leader Hadi Hariri pointed out that the success of Kotlin / Everywhere, so that people can learn basic knowledge and best practices Kotlin in Android, Google Cloud Platform and multi-platform development, and data to prove, for example:

"From May to November, we have successfully covered 30,000 people in 86 countries / regions .KotlinConf sold out three consecutive years in 2019, more than 1,700 participants. This is especially shown that the developers of the language interest and adoption is growing. "

Go

When the Gophers look back in 2019, they might try to remember the legend of the proposal. Go developer and writer Jon Bodner explains:

One of the most common complaints about Go is too verbose error handling. Therefore, at the beginning of 6, Go the core developers proposed to add a new built-in function called the try. The issue is now GitHub open to discuss this new feature. Within a month, nearly 800 comments, most of them negative. It was against this new feature, this change makes the code too "weird" and obscures the logic flow. After reviewing the feedback, Go Team that the proposal be marked as completed and closed on July 16.

It is noteworthy that the failure of this process is not functional, but, as Bodner described as "way process occurs: paper presents a feature to discuss respected, but many people believe is inconsistent with the change of style Go Finally, management language who decided to respect the majority opinion. this is the meaning when talking about developer community. "

Go in 2020 should make clearer specification of Contracts, which is known as Generics proposal.

According to Bodner saying, "Go seems to be the use of a language other slightly different approach to achieve the generics, but it fits Go idiom." Go retain hope it will bring its usual style, while adding developers It found to be useful in other language features.

Rust

We work with "Programming Rust" co-author Jim Blandy had to communicate, to learn how to change his view of Rust in 2019 of progress.

Last year, he pointed out, "Rust has long been, in one form or another form of support for asynchronous programming, but asynchronous function provides syntax and Rust compared to the previous product this code, which is a significant improvement."

He improved on whether to implement the hope Rust grammar is ultimately:? Brandi explained that asynchronous / grammar wait until version November 7, 2019 1.39 released only become stable.

"Initially, we hope asynchronous / wait grammar can be a part of Rust 2018 version, but it took longer only then do a good job." However, his meaning in 2020 Rust of Rust's placed high expectations: "asynchronous integrated into the language can borrow inspector understand your operations, so asynchronous code looks like the usual Rust.

Rust communities excited about WebAssembly, this year WebAssembly become a theoretical alternative to C / FFI, the need for a portable, high-performance modules ecosystems. As Nathan Stocks Rust experts pointed out: "You can also use lightweight sandbox!" So Stocks impressed me most is "How many theories have been successfully prototyped and has been proven."

Previously, I had left WebAssembly purely as a compiler target, in order to run the code language of the non-JS in your browser. Can any language from outside the Web browser using the function assembly chilling.

Swift

Swift great story happened last year, Apple used to design the user interface on all Apple devices updated framework SwiftUI release, and Swift's version TensorFlow.

As Timirah James explained, declarative SwiftUI has won wide attention of developers, and has been seen as the future successor of UIKit.

As TensorFlow of Swift, Buttfield-Addison called "fundamentally new uses of Swift." He explained: ". Swift has been an excellent application development and systems programming language, and is an emerging Web and back-end development language, but now, with the Swift for TensorFlow, it is also a powerful framework ML" for the following reasons:

Swift for TensorFlow developed by a team that includes Swift's original creator Chris Lattner, and provide (or will be available after the completion of) all required machine learning and numerical calculations. The most surprising is that the compiler framework and basis of the design of the Swift has automatically distinguish between functions can be programmed to distinguish between full-class support possible.

Complete programming language can distinguish allow previously impossible things possible: good example is the ability to use standard programming and debugging when building the back-propagation neural network step by step and debug derived class.

Swift for TensorFlow also provides full support for Python Swift, scientists can use the data clearly Swift code required for useful and familiar with Python framework for mixing and matching.

Looking ahead, James and Buttfield-Addison are very pleased to see the new direction taken by Swift, James pointed out, "Swift in different communities and the rapid adoption of mobile stacks outside the community, especially in the absence of server space," Buttfield-Addison appeal " stunning networking framework (e.g. Kitura) and all the stunning frame for specific areas ...... e.g. SwiftPlot, which is ubiquitous in Python Swift Matplotlib native version of. "

What kind of future?

Change is inevitable, and tend to continue with the programming language for the cloud, micro-services, big data and machine learning to optimize the new trends, each language and its ecosystem will continue to adapt its own unique way.

Some languages may be published in 2020 a large version, such as C ++ 20 will be released this summer, Scala 3.0 is expected to be released in late 2020. But it is clear that even the smallest changes can also be caused huge waves in the programmer's daily life.
Above are some of my own thoughts, to share out the welcome to correct me, the way to find a wave of concern
Here Insert Picture Description

Published 19 original articles · won praise 7 · views 6458

Guess you like

Origin blog.csdn.net/ZYQZXF/article/details/104429369