JavaScript News and Updates of February 2021
Tags: news, javascript, webdev, html
Published: 2021-02-26 10:51:30

Hello everybody! February comes to an end and it is time to take a look at new interesting pieces of news and updates that have arrived from the JavaScript land over the last month of winter.

This time, we will highlight major updates of the Vite build tool, WebdriverIO test framework, and npm package manager, secrets of how the V8 JavaScript engine becomes even faster, and key improvements introduced in Grid and TreeGrid UI components of the popular DHTMLX Suite library. In the second part of this article, you will find useful materials intended for filling up your store of JavaScript knowledge with new insights.

Here we go!

## New Tools and Updates


#### Introducing WebdriverIO v7

![WebdriverIO version 7](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tzukx3a3ebi51b0d6w5b.jpg)

WebdriverIO is a progressive automation test framework for Node.js. Backed by Selenium, this framework is especially helpful when it is necessary to perform automation testing on native mobile and web apps. In February, WebdriverIO reached its 7-th iteration. The main peculiarity of this major release is that the codebase was fully rewritten in TypeScript. One more important change is an improved Google Lighthouse integration, providing more testing capabilities. The framework now also has a new PWA check command and updated documentation. If you are interested in getting a more comprehensive overview of this major update, check the [release article] (https://webdriver.io/blog/2021/02/09/webdriverio-v7-released/).

#### Vite 2.0 is Here

![Vite build tool](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hagk4x92bnakqtae5fq3.jpg)

Vite is a promising build tool based on new advancements in the JavaScript ecosystem. Designed and promoted by Evan You, the mastermind behind Vue.js, this relatively new technology aims to become a viable alternative to well-established JavaScript bundlers such as webpack, Parcel, Rollup. The new version of Vite (v2.0) includes many significant improvements that are expected to ensure a great frontend development experience.

Initially, Vite was created for building Vue-based applications, but now it can be used with other popular JS frameworks. Web developers can take advantage of the fully modified architecture and API. The process of dependencies pre-bundling gets much faster with the help of esbuild. Starting from v2.0, Vite also enhances the developer’s capabilities for handling CSS and provides experimental SSR (server-side rendering) support. Find more details in this [article] (https://dev.to/yyx990803/announcing-vite-2-0-2f0a).

#### Long-awaited npm 7 Becomes Generally Available

![npm v7](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kh0xngfbsek75z9zikqy.png)

This month, the npm development team has announced that the npm CLI is now generally available in version 7. The most notable features of this release are support for Workspaces, a new lockfile format, and automatically installing peer dependencies. Compared to the previous major version, npm 7.0 received significant performance enhancements. The new version is also optimized for handling conflicts in a better way. Several breaking changes have also been introduced to make npm more developer-friendly. Learn more interesting stuff about this release in the [npm blog] (https://github.blog/2021-02-02-npm-7-is-now-generally-available/).

#### What’s new in DHTMLX Suite 7.1

![DHTMLX Suite 7.1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ny9xrwr74kzkfpx6kldj.jpg)

DHTMLX Suite is a comprehensive JavaScript library that enables developers to build interactive and highly performant web apps with a modern design much faster. It comes with a package of feature-rich [UI widgets] (https://dhtmlx.com/docs/products/dhtmlxSuite/) that can be easily customized to the needs of any web project. Recently, this library has become even more powerful thanks to the update to version 7.1.

In this minor release, the development team mainly focused on providing new useful functionalities for commonly used Suite widgets, namely Grid and TreeGrid. From now on, these components support various number formats, making it more convenient to work with numerical values of any kind. It has become possible to show multiline text in data tables based on DHTMLX Grid and TreeGrid, and introduce changes in this text on the fly. Utilizing newly added templates, developers now can also create custom tooltips for clarifying grid data. If you want to learn more details about these and other new capabilities that are now available in DHTMLX Suite, read the [release article] (https://dhtmlx.com/blog/number-formatting-multiline-content-tooltip-templates-7-1/).

#### V8 JavaScript Engine Goes Faster and Faster

![V8 JavaScript Engine](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gajs67m6ahz3bfc96xvv.jpg)

V8 is probably the first thing that comes to mind when talking about JavaScript engines. This great technology is not just about the execution of JavaScript code in browsers, as it is also a key element of Node.js and Deno runtime environments. The engine is known for its performance, but the V8 team continues working hard to make it even faster. Recently, technical specialists of the project shared interesting insights on how V8 becomes more performant thanks to the use of the super keyword for accessing properties and faster JavaScript calls. Visit the [V8 blog] (https://v8.dev/blog) to get the full picture.

## Useful Tips and Articles
#### Choosing the Right JavaScript Tool for Building Data Tables
The architecture of modern business web apps commonly requires the ability to present complex data in an Excel-like format with strong interaction capabilities. How to achieve that objective with the least efforts? Developers can take advantage of ready-made JavaScript data tables (or simply grids) instead of doing everything from scratch. Such tools allow you not only to speed up the development process but also provide a lot of useful features out-of-the-box. Check out the [overview] (https://dzone.com/articles/overview-of-javascript-data-tables) of popular JavaScript tools for implementing data tables in web projects.

#### How to Manage Source Code with Git more Efficiently
Nowadays, it is hard to imagine any web development project without the use of a version control system (VCS). This tool allows multiple developers to simultaneously write code within one project, synchronize their efforts, and keep track of all changes introduced in the source code. Git is the most widely used version control system, but not all developers know how to make the most of it. 

Git is not limited to commit, push, and pull commands, but many coders decide not to dig deeper into Git’s capabilities and they are losing something good. Git has some less known but very useful features. This [article] (https://www.smashingmagazine.com/2021/02/getting-the-most-out-of-git/) offers useful information about four less-known but powerful Git tools that can improve the quality of your codebase.

#### Using Pure Functions in JavaScript
Have you ever tried using functional programming elements such as pure functions while developing web applications with JavaScript? If the answer is “No”, you should seriously consider giving them a try in your project. Many web developers prefer using pure functions, as they help to make your code more readable, testable, and performant. These functions are also notable for not causing any side effects. Sounds intriguing? This [article] (https://blog.alyssaholland.me/pure-functions-in-javascript) will help you to clearly understand key concepts of pure functions, their differences from impure functions, and how to construct them.

#### How to Improve Debugging Experience in Angular
Angular is one of the most mature JavaScript frameworks with a powerful ecosystem and long-term support from Google. However, many developers frequently complain that Angular is too complex and hard to debug. Debugging is essential to building any application. Therefore, the Angular development team attaches great importance to improving developers’ debugging experience and helping them to solve coding issues faster. Several new initiatives have been launched for these purposes. They include standardized error codes, error guides, and debugging videos. This [article] (https://blog.angular.io/angular-debugging-guides-dfe0ef915036) provides more details on the topic.

#### Use Cases of APIs, WebSockets, and WebHooks in Application Development
The architecture of any modern application consists of numerous components and web developers have to find a reliable mechanism that will ensure trouble-free communication between them. There are three main techniques that are used for communicating and synchronizing data across various parts of an app: APIs, WebSockets, and WebHooks. Although all the three serve primarily for the same purpose, it is necessary to grasp their differences and the most appropriate use case scenarios for each of them. The subject is fully covered in this [article] (https://blog.bitsrc.io/apis-vs-websockets-vs-webhooks-what-to-choose-5942b73aeb9b).

#### Useful Tips on Avoiding npm Substitution Attacks
When building a web application, web developers can hardly get along without using a package manager, and npm is probably the most widely used of them. This useful tool allows seamlessly handling packaged modules of code and interacting with other developers. But the main advantage of npm (as well as other package managers) is the ability to effectively manage dependencies within your project. However, this strength can also be the cause of some security threats such as substitution attacks or supply chain attacks.

The thing is that it has become a common practice to use a lot of open-source or third-party code for building apps with advanced functionalities in a shorter time. In such cases, there is always the risk that dependencies of public libraries used in your project may have some vulnerabilities. If such vulnerabilities become a part of your codebase, they will make it susceptible to malicious attacks. This [material] (https://github.blog/2021-02-12-avoiding-npm-substitution-attacks/) contains useful information on how to prevent supply chain attacks when using npm.


Thank you for reading. And see you in March to continue discovering new things about JavaScript and frontend web development.