Challenges and technological innovations of dynamic web programming

Node JS

Created by Ryan Dahl in 2009, Node is a low-level environment that allows server-side execution of JavaScript code. Designed by the V8 runtime engine developed by Google, and mainly used for the use of dynamic web applications such as Netflix or Uber. It is based on an asynchronous architecture that allows non-blocking execution of dynamic functions. This makes Node one of the most popular languages in the development of dynamic web applications and the management of instantaneous data processing.

Origin and design

It was while observing the progress bar of a file loading in Flickr that its director had the idea to develop a simpler method to boost dynamic web applications. Indeed, the browser did not know at what percentage the file was loaded and had to send a request to the web server. When Google's V8 engine came out, he started to take an interest in Javascript, innovating on a more efficient idea. Better security, better tools like database management and data processing.

Principle and operation

From the application, using basic modules like http and IDE, node will rely on a set of libraries and packages that allow to process different data through different routes.

- IDE

WebStorm : Optimized for Javascript and TypeScript development, it has a set of technologies that improve Javascript-related coding methods. It has features like code completion and code quality analysis that allow the developer to facilitate application development.

Visual studio code : One of the most popular IDE developed by Microsoft on November 14, 2015. It has many features for all known programming languages. It has basic features like typing enhancement, automatic error reporting that allows developers to quickly fix errors. It has a set of modules to run different tools related to application servers.

- NPM Package Manager

Default package manager for Javascript and Node js runtime environment. NPM was created in January 2010 by Isaac Z Schlueter. It will allow to add or remove dependencies necessary for the application. In addition, there are main modules such as the router which will allow to process different routes.

- The main Node JS packages

Express : Developed by TJ Holowaychuck and his community on November 16, 2010, it is the standard framework for Node js server development. Its architecture is similar to the Model View Controller (MVC), and it is already used on many websites such as Netflix, Koding, and MySpace.

Async : Utility module, it allows to provide various simple and powerful functions to work with asynchronous Javascript. It further monitors the workflow via queues, allowing the developer to add additional tasks, additional callbacks and handle failures with callbacks.

Socket.io : It enables real-time two-way communication between clients and servers. It is also used to develop interactive and dynamic models of web applications such as chat programs and multiplayer games.

Mongoose : Module designed for MongoDB databases, it provides an object data modeling (ODM) layer. It offers a higher-level API with features such as validation, middleware, and query building while facilitating communication between applications.

React : One of the most popular NPM packages, React is a JavaScript library for developing user interfaces, primarily for single-page applications.

React-Router : Popular routing library for single-page applications built with React. It allows dynamic component matching and rendering such as nested route support and route parameters. Browser history management for navigation and URL synchronization.

React-Native : Javascript framework optimized for building native mobile applications such as IOS and Android platforms, it has features like cross-platform development. Access to native device APIs and features and hot reloading for rapid development and instant UI updates.

Front end frameworks

- React JS

Made by Jordan Walke in the Meta community on May 29, 2013. React is an open source Javascript library whose main purpose is to create single-page web applications. It is about creating state-dependent components by generating pages either from a portion of HTML code. This library mainly manages the interface of the application, or the view in the MVC model, it can also be used with other libraries like Angular JS.

- Angular JS