How programming languages will evolve in 2020 is a question many people are interested in. Here’s a look at the current state and future of six popular programming languages.

Learn more about Python

The biggest Python news of the year was that Guido van Rossum retired and handed Python over to the Python Steering Committee. So far, the transition has gone smoothly, which is not surprising, as Eric Matthes, author of Python Programming from Starter to Starter, says Guido has always been able to balance himself with his role in the community. 2020 will also see the end of Python 2.7 support, which is likely to cause headaches for its opponents. At the same time, Python remains the language of choice for data science.

Another Python concern is that a variety of interesting and key projects from the community have been born and celebrated by Carol Willing, a Member of the Python steering committee and a core developer of CPython, such as Binder services, The service facilitates repeatable research by creating an executable environment in Jupyter Notebook.

Java

Java 11, released in September 2018, brought with it a number of new features, many of which provide significant and obvious advantages for container use. However, this latest release has not been widely adopted, with more than 80% of developers still using Java 8, according to JetBrains’ survey. Does this mean that people are not running Java in containers as we say? Or are people simply unaware of Java 11’s container advantages?

Although adoption has been slow, Java’s six-monthly release cycle has continued: Java 12 was released in March 2019, and Java 13 in September. Each version is small, but predictable. While they don’t have exciting new language changes, we can see that the language is steadily moving forward. In addition, it supports the idea of a preview feature, which I think works very well for Switch expressions as we’ve seen, and developers should try it out and give real feedback based on usage rather than abstract conceptual ideas. In response, a small change was made to the syntax of the switch expression, which was possible because it was a preview feature in Java 13 and not set in stone. There are now plans to release this updated syntax as a production-ready feature in JDK 14.

Kotlin

Google announced in May 2019 that Kotlin is now the language of choice for Android app developers, fueling widespread adoption of the language. While many Android developers are still in the process of migrating to Kotlin, those who have already made the transition know the benefits it can offer. Dawn and David Griffiths, authors of Head First Kotlin, share several reasons behind Kotlin’s rise:

It’s not surprising that Kotlin has good tool support for languages created by IDE companies. Experimental DSLS for code contracts enable developers to provide guarantees about how code will behave. Does your function have any side effects? Is it guaranteed to return a non-null value? Code contracts allow us to make these promises, and compilers can use them to ease compile-time checks.

Now the barriers between the different Kotlin platforms are breaking down. The “Expect”/” actual “qualifier makes it easier for developers to write compatible code across Java/Native/JS environments. Now, serialization support means it’s easier to convert JSON data into Kotlin objects and vice versa.

Go to learn more

When Go programmers (Gopher) look back on 2019, they’ll probably remember the saga of the “Try” proposal. Go developer and author Jon Bodner explains:

One of the most common complaints about Go is that error handling is verbose. So in early June, Go’s core developers proposed adding a new built-in function, try, and released a GitHub issue to discuss the new feature. Within a month, there were nearly 800 comments, most of them negative. Opponents of the new feature argue that the change makes the code too “magical” and obfuscates the logical flow. After reviewing the feedback, the Go team flagged the proposal as closed and rejected it on July 16.

In 2020, Go’s contract specification (also known as the generic proposal) should be clearer. “It looks like Go is going to take a slightly different approach to generics than other languages, but one that fits nicely into the Go idiom,” Bodner said. It will hopefully allow Go to retain its customary style while adding the generics features that developers have found useful in other languages.

Rust

Jim Blandy, co-author of Programming Rust, to find out how his view of Rust’s evolution has changed in 2019. Last year, he noted that “Rust has long supported asynchronous programming in one form or another, but asynchronous functions provide a syntax for this code that is a significant improvement over Rust’s previous syntax.” Did his wish to improve Rust syntax come true? Yes, finally: Blandy explains that the async/await syntax is not stable until version 1.39, released on 7th November 2019.

Initially, it was hoped that the async/await syntax would be part of Rust 2018, but it takes a little longer to get things right. Still, there are high hopes for what Async will mean for Rust in 2020. Integrating Async into a language lets the Borrow checker know what we’re doing, so asynchronous code looks like idiomatic Rust. As Blandy points out, the Rust ecosystem is moving quickly to take advantage of the language’s new expressiveness.

The Rust community is also interested in WebAssembly, which this year emerged as a theoretical alternative to C/FFI for ecosystems that require portable, high-performance modules.

Swift

Swift’s biggest event last year was the launch of SwiftUI and Swift for TensorFlow. SwiftUI is Apple’s latest framework for designing user interfaces on all Apple devices, Swift for TensorFlow is a deep learning and differentiable programming platform that integrates Google’s TensorFlow framework with Swift.

Swift for TensorFlow has a development team that includes Swift founder Chris Lattner, and it provides (or will provide after completion) everything we need for machine learning and numerical computation. Most surprisingly, it provides complete first-class support for differentiable programming with automatic differentiation, which is enabled by Swift’s underlying compiler framework and design.

Whole-language differentiable programming will make it possible to do things that were previously impossible: a good example is that when we build neural networks, we can progressively backpropagate and debug derived classes using standard programming debuggers.

Swift for TensorFlow also provides full Python support for Swift, enabling data scientists to mix and match the useful and familiar Python frameworks they need with the concise and expressive Swift code.

What will the future hold? To learn more

Change is inevitable, and each language and its ecosystem will continue to adapt in their own unique ways as programming languages continue to lean toward the optimization of new trends in the cloud, microservices, big data, and machine learning. Some languages are likely to see major releases in 2020 (C++ 20 is coming this summer, Scala 3 is expected by the end of 2020). But it’s clear that even the smallest changes can cause a stir in the daily lives of programmers.

Does more articles and materials | click behind the text to the left left left 100 gpython self-study data package Ali cloud K8s practical manual guide] [ali cloud CDN row pit CDN ECS Hadoop large data of actual combat operations guide the conversation practice manual manual Knative cloud native application development guide OSS Operation and maintenance Combat manual White paper on cloud native architecture