…Fast, high-performance, resource-efficient, flexible, open source, providing real-time effective communication, having huge community of supporters, fans and modules and last, but not least: making developers happier and enhancing their productivity…
This description gives answer to the question “What is Node.js?” on behalf of the users who work with it. In fact, Node.js represents the “box”, as its “contents” is the source of all advantages – the JavaScript programming language.
Node.js is a server platform for executing JavaScript code
Node.js (or just Node) is a server application which provides cross-platform JavaScript runtime environment, but it is not a programming language. Node.js enables the execution of JavaScript server-side as usually this happens in the browser. When a certain application is built with Node.js this means it has been developed with JavaScript and executed by Node.js.
And any developer who loves JavaScript programming will feel in his own way with Node.js 🙂
Usually the JavaScript programming language is used for front-end development in websites to add interactive features to static HTML content. JavaScript for the front-end of the website/application is executed in the browser through a special JavaScript interpreter/JavaScript engine.
In 2009 such a JavaScript engine was placed and used server-side. Development was originally written by Ryan Dahl as the project was named Node.js. Node.js’ driving force is Google’s JavaScript V8 engine. Dahl demonstrated the project at the inaugural European JSConf on November 8, 2009. At that event he presented the mechanism of his project – a working process, driven by callback events and a non-blocking programming method for asynchronous I/O.
⇒ Node.js + React.js – Google Trends popularity research from 2009 to 2018
Development of Node.js Applications and JavaScript Technologies
You can use Node.js by installing it on a server or on your PC. Usually Node.js is installed server-side so that the applications developed for it can be accessible on the web, for example, on a private virtual server. Node.js can work with all types of server technologies such as Apache, Nginx and the different types of databases NoSQL (MongoDB, Redis), SQL (MySQL) and many more. There is a wide range of tools and technologies to be used with Node.js.
⇒ https://w3techs.com/technologies/overview/web_server/all
Node.js is used for front-end, back-end and full-stack web development:
- Front End JavaScript technologies: Front-End development concerns everything users view in a browser or application. It is responsible for the appearance, design and overall UX. Few technologies are mainly used in this field of web development: HTML, CSS and JavaScript. Some of the most popular JS technologies (JS frameworks and JS libraries) used for user interface development are: React, Angular, Vue, Ember and Backbone.
A very popular application currently is an example of how the React.js technology can be used – the new WordPress editor Gutenberg as it has been fully developed by using React.js JavaScript.📊 Angular, React and several other JS frameworks are among the top ranked web frameworks on GitHub and Stack Overflow.
⇒ http://hotframeworks.com📊Back-end technologies are difficult to detect since some statistics use the method for scanning the website source code. For this reason in the most popular JS technologies ranking there is abundance of technologies which allow source code detection (front-end). jQuery occupies the first place in w3techs.com rankings, as it’s followed by Bootstrap, Modernizr and Underscore.
⇒ https://w3techs.com/technologies/overview/javascript_library/all - Back End JavaScript technologies: Back-End development concerns the server-side of the application as well as the communication with the database and end users. It gives answer to the question “How does the website/application work?” For back-end JavaScript development mainly the Node.js server platform as well as the JS frameworks Express.js and Socket.io are used.
- Full Stack JavaScript technologies: a combination of the back-end and front-end development. Frameworks used: Meteor, Rendr, Derby.js and others.
The most common combination of Node.js and other server-side back-end as well as front-end technologies used for web development are: MEAN – MongoDB, Express.js, Angular.js, Node.js as well as MERN – MongoDB, Express.js, React.js, Node.js. Those are packages of full-stack technologies.
Node.js can often be used for high speed-real-time applications. Large companies use Node.js as they integrate it in a certain big application or service. Some of the Node.js users are: PayPal, Pinterest, Netflix, Mozilla, Amazon, Symantec, Github, Coursera, Flickr, WordPress, LinkedIn, Ebay, Nasa, Airbnb, Trello, Yahoo, Shutterstock and many more.
⇒ https://blog.github.com/#popular-repository-topics
⇒ https://insights.stackoverflow.com/survey/2018#technology-programming-scripting-and-markup-languages
⇒ https://insights.stackoverflow.com/survey/2018#technology-frameworks-libraries-and-tools
Node.js is a suitable solution for applications with intensive I/O bound, but not suitable for apps with intensive CPU bound. This is due to the fact that heavy CPU usage can block the Node.js processes.
NPM – Node Package Manager
NPM is a JavaScript Package Manager. Packages might be single files, JavaScript libraries or far more complicated library collections such as full-stack JavaScript frameworks like Express.js and others.
NPM enables you to install and manage packages for a certain Node.js project. Currently there are over 700.000 packages in the NPM repository.
The NPM Мanager consists of a cli (command line interface) client and online database of packages, called NPM Registry. The NPM cli tool is installed on the server where Node.js is also accessible. Then a package from the NPM Registry can be installed with a single command in the console. For example installing Express.js is performed by using:
Those packages containing a JavaScript code facilitate Node.js project development.
⇒ http://www.modulecounts.com
Node.js Hosting
You can use Node.js for all services offered by SuperHosting.BG.
- Shared Hosting: Node.js can be used upon ordering the SuperHosting plan. You will be able to upload a Node.js application right after the hosting service has been activated and the account is created. You can launch a Node.js application with minimum efforts and actions and choose one of Node.js’ latest versions. cPanel enables you to easily create a special Node.js virtual environment, as you can manage this environment through an intuitive graphic interface. There you can change the environment settings, the Node.js version you use, enable, disable and remove applications. MySQL (MariaDB), PostgreSQL or SQLite are among the most widely used relational databases which you can use for your application.
- Virtual Server: Upon the virtual server service you can install all necessary server applications and perform all system settings by yourself. Node.js shall be installed and configured. You will also have to install the technologies that work together with Node.js. This service may require some more time before it is possible to run Node.js. You might need the help of a sysadmin or in-depth knowledge in server administration to be able to support and manage this. With this service you will be enabled to use all types of server applications and technologies such as non-relational databases such as MongoDB and others.
- Managed VPS: This is a managed virtual server that combines the best of both worlds – easy management and technical support provided as for shared hosting together with the independence of a virtual server. Upon the Managed VPS service we perform the system administration activities. Node.js is supported for all Managed VPS servers as it is included in the Pro, Mega and Business hosting plans.
You can get more interesting information about the world of JavaScript technologies right from the source – the people who are involved in the development of JavaScript applications, at the conference js.talks (“Bulgaria”).