2020 is in full effect already, with breaking news on our screen constantly popping up. Let’s dig for some nostalgia and remember what the year 2019 brought for the developers’ community. The list of the most remarkable news is incomplete for sure, since we hand-picked only a couple among the best of the best. Indulge yourselves!
FYI. If you are interested in hardware news, check out the first part here.
The Arrival of Java 13
The memory is still alive of the time when the release of a new Java version was a true event occurring every five years. But things do change. Oracle has not only switched to the “one release each six months” strategy, but also successfully consolidated this trend. Two releases in 2019 and the current 13th version show convincing proof of this success. On the one hand, these frequent releases make the language more up-to-date, relevant and appreciated among the professional community. On the other hand, rare releases were also Java’s strong point.
Stability and reliability are the two main factors which influence the decision process when we choose development technology. But now, the support period for the new version has greatly decreased. The latest release with a long period of support is the eleventh. But present-day conditions call the shots: the speed of technology development, the demand for new solutions and the high competition between programming languages require changes in the old school approach.
The Release of TypeScript 3
TypeScript came a long way from the last year. During this time, the technology gained a huge number of useful features for speeding up compilation, simplifying code separation, improving analysis, and opened new ways to use the specific features of the language. It’s hard not to notice the new operators that came to the language: Optional Chaining, Nullish Coalescing and much more. Everything that is only at the approval stage in a shell condition in other use cases is already available in TypeScript.
It is hard to imagine a corporate-level project written in a weakly-typed language. Now more and more developers are opting for compiled languages, since it is not the development speed that matters to them, but the reliability of the original product.
The Introduction of React 16.8
Nowadays, almost every developer is aware of this library and, importantly, is able to use it. Such popularity is driven by the ideas behind it. The component approach, isomorphism, speed and ease of use make React an absolute winner.
Although there were many updates over the past year, we would especially like to note out Hooks. The developers understood that the library had some issues with allowing the reuse of stateful components. The community resolved them using various patterns, but often this only made the code more confusing.
Hooks completely corrected this situation by implementing a simple idea that transforms the code significantly, and made it easier to read and perceive. It will be very interesting to see how the library will be transformed in the coming year.
Space by JetBrains
The guys at JetBrains continue to enrapture programmers. Development environment, code review system, task trackers, and now a platform for all development processes — all in one place. Given the use of other company products in the project and their tight integration with Space, this product will kill Slack, Jira and other popular products. Currently, the development is at the beta testing stage, but you can already try to fiddle around with it inside your team, especially because it is completely free. Well, until its first release.
Portable Server Applications in the Rust Programming Language for WebAssembly
WebAssembly technology allows you to use web browsers as platforms for launching apps. In 2019, this technology with its WASI interface, which provides access to operating system objects, such as files and sockets, stepped beyond browsers and now aims at the server software market.
The essence of the breakthrough is obvious — humanity has got another runtime capable of launching portable applications for the Web (does anyone remember the WORA principle invented by the authors of the Java language?).
In addition, we have a relatively safe way to create these applications thanks to the Rust language, which purpose is to remove entire classes of errors at the compilation stage.
WebAssembly is changing the game so dramatically that Solomon Hykes, one of the Docker founders, wrote that if WebAssembly and WASI existed in 2008, Docker would simply not have been born.
It is no surprise that Rust landed in the list of tools for embracing the new portable technology — its ecosystem is dynamically developing and for several years Rust has been holding the title of the most beloved programming language according to the survey results by StackOverflow.
The Rise of the Dart Popularity thanks to Flutter
We are pretty sure that the next piece of news is a big surprise not only for us and the general public, but also for most of the direct participants in the process of its formation. The Dart programming language, which came to life at Google eight years ago, saw a rapid increase in popularity in 2019.
Dart overtook Erlang, PowerShell, R, Perl, Elixir, Haskell, Lua and CoffeeScript in popularity. It seems that no other programming language gained that much support last year. Why did it happen?
In case of the Dart language, the Flutter mobile application development framework became the reason behind such popularity. According to Google Trends, its popularity rise was just at the beginning of the year in question.
Project Verona by Microsoft is Going to Save Windows
The error rate in the Microsoft Windows kernel and most user programs has been increasing almost linearly over the past 12 years. In 2019, Matthew Parkinson from Microsoft introduced the public to Project Verona, which can finally put an end to this.
This is Microsoft’s initiative to create a secure programming language based on the ideas of the Rust language: Microsoft Research’s colleagues found out that most of the security issues are related to the heavy legacy of the C language, which most of Windows is written in. Verona’s Rust-like language manages memory and access to resources using the principle of zero-cost abstractions. If you want to understand how it works in detail, check out the report by Parkinson himself.
It is interesting that Microsoft has traditionally been perceived as an empire of evil and the adversary of everything new, despite the fact that Simon Peyton-Jones, the main developer of the Glasgow Haskell Compiler, works at this very Microsoft.
Brian Cantrill’s question “Is it time to rewrite the kernel of the operating system in Rust?” got an unexpected answer — it is obvious that it is not yet possible to rewrite the kernel of the operating system, but programs running in user space are already being rewritten. An unstoppable process has begun, and this will open a new history page for the future for all operating systems.
App of the Year: FaceApp
Despite the fact that FaceApp was officially released two years ago, this application received a second life in July of 2019. Then, all kinds of users, including celebrities and public figures, began to publish artificially aged selfies on their social networks, simulating the appearance of the user as if he or she were old.
This was made possible thanks to neural networks at the heart of FaceApp — artificial intelligence applied a special filter to the photo, adding wrinkles and gray hair.
The popularity of FaceApp on the Internet did not go past cybersecurity experts, who warned users against uploading their images to the service of unknown origin. Later, US authorities learned that the developer of the “aging” app was a company based in St. Petersburg, and the FBI called FaceApp as well as other Russian platforms the “potential counterintelligence threat”. However, this did not affect the popularity of FaceApp.
This was the year 2019 for developers. Have something to add? Feel free to share your insights in the comments below.