Ruby 3.0

With tentative release date scheduled for Christmas 2020, Ruby 3.0 is expected to include updates that will make programming even more joyful for developers. These include: - performance optimization, - concurrency changes, - static analysis, - backward compatibility, etc.

Let’s take a look at them in a more detailed way.

Performance optimization

Ruby 3.0 will bring about an upgrade in terms of memory usage when compared to the recently released Ruby 2.7. Issues with memory usage often happen during creation of new objects that are later swept away. These objects leave empty space, but the memory remains used as if they were still there.

Garbage Compactor (GC) solves this issue thanks to key features including object separation (some objects are pinned, others moved to the heap) and auto compaction which lets compacting happen with no special commands needed.

Another new thing that developers are hoping for with the release of Ruby 3.0 is the Medium Internal Representation JIT Compiler, said to be “lightweight and convenient to work with”.

Concurrency changes

Concurrency issues will be solved by Falcon Rack webserver, Async, Static type checker (this one is uncertain) and parallel computation allowing for performing multiple tasks.

Other updates in Ruby 3.0

Static analysis will provide the devs with an additional check-up to their code, making it clearer and more laconic than ever before. Backward compatibility will make switching from previous versions to the new one a breeze.

Rails 6

Yes, Ruby on Rails is no longer considered the “next big thing” of web development, but a decade and a half since its first release, it’s still here, powering both MVPs and RoR 6 with features like: Action Text, Action Mailbox, parallel tests, multi database support etc. To make things easier for developers who want to take advantage of the framework’s update, we have already published a few Ruby on Rails 6 tutorials and are planning to continue working on them.

Prograils has been extremely successful powering companies from all over the world, especially Denmark, with Rails web development for nearly a decade. The big projects such as Elvium or Sapu.dk constitute enough proof that RoR is still in demand and helps people achieve their business goals.

Vue.js 3

Vue.js is a progressive framework for building user interfaces. Its core library is focused on the view layer only, so it’s easy to pick up and integrate it with other libraries and projects.

Composition API

The major feature coming with Vue.js 3.0 is called Composition API. It can already be used in Vue 2, thanks to a special plugin.

Composition API is a set of APIs allowing for flexible composition of component logic. It comes with an alternative syntax for writing larger components, better code reuse and the use of Typescript.

As its creators underline, Composition API is not a new default way of coding components in Vue.js, but an alternate one.

In result of Composition API’s use, code is said to be more readable which also ends up with a better developer experience.

Other new features in Vue.js 3.0 include: configuration API change, fragments, suspense multiple models and portals.

Django 3.0

Python-based web development framework Django has hit its 3.0 version in December 2019, so is very likely to see more and more adoption in 2020.

The main update for Django 3 is the async native support. As the web is slowly moving towards use cases that emphasise high concurrency and parallelizable queries, a remedy for the framework’s inefficient threading is more than needed.

Until now, the ‘asyncio’ library served as a ready solution for concurrent code, but it has flaws at its core. The alternatives at hand are not complete. Another pain point of the Python/Django community is lack of proper documentation, tutorials and tools. This is promised to change thanks to Django 3.0.

The new version is also said to bring very few changes to models, views, templates and layouts and was designed so that neither speed nor performance of the framework are affected in a bad way.

Besides Async, Django 3.0 supports Maria DB 10.1 and higher. Also, it lets developers define model field choices by custom enumeration.

Web Components

A suite of technologies allowing developers to create reusable custom elements with functionalities set apart from the rest of the code, Web Components lets these elements be used in web apps without fear of code collisions.

How well are Web Components adopted by web browsers? The suite is by default supported by Firefox, Chrome & Opera. Safari supports fewer of WC features, while Edge is working on its implementation.

Voice search optimization

Already back in 2016, 20% of total searches in Google were done via voice search. With recent (and rising) popularity of tools like Google Assistant we can only estimate the number to have already increased, and expect that it will grow still in 2020.

Let’s take a look at the most important pros of voice search:

  • it’s quick,
  • it’s precise,
  • it reads the answers for you, so you don’t have to scroll through large chunks of text.

Voice search optimization of websites will definitely benefit from the knowledge of SEO, but there are a few differences you need to take into account.

First of all, voice search heavily relies on natural language. In result, voice search queries have the form of questions and are usually longer than 5 words.

Writing content with the intent of optimizing it for voice search, you will not need to stuff it with the same keyword in every paragraph. Also, you have to remember that the voice assistant will fetch the most relevant and accurate search result.

Let’s face the truth: in most cases, voice assistants will read Google’s featured snippets, so it’s worth to aim at positioning yourself in this section of SERPs.

As voice search optimization is most probably going to decide upon your website’s SEO success, factors like long-tail keywords, page loading speed, natural/conversational writing style, answer length (not longer than 30 words), your domain’s authority and the number of words on page will no doubt deserve your attention.

WebAssembly (WASM)

WebAssembly (abbreviated WASM) is a new type of code invented as a compilation target for low-level source languages like C/C++. In short, it allows code written in languages other than JavaScript to be run in a browser with an almost native speed. WebAssembly code is also meant to be readable, debuggable and secure.

The use cases, WASM creators had in mind when designing it feature, among others, the following types of web apps:

  • image & video editing,
  • games,
  • peer-to-peer applications,
  • music streaming,
  • image recognition platforms.

Recently, ebay has introduced WebAssembly to the realm of e-commerce, by leveraging it in its barcode reader for web, a functionality that had been so far available only on mobile.

Bearing in mind that WASM modules can be imported into a web application even without its prior knowledge, we can only expect its adoption to grow in 2020.

Wrapping up

It’s hard, if not impossible, to compose a complete list for 2020 trends in such vast business territory as web development. In fact, all such lists are a bit of a guessing game. On the other hand, as developers we base our work on regular research and knowledge of the industry, so even if none of the above factors will dominate, it’s definitely worth to have an eye on them.

See you in 2020!

See also: