Wednesday, May 29, 2019

Top Trending Technologies Expected to Acquire a Huge Market in 2019

Change is the main steady. This applies in your professional life also. Up-scaling yourself is a need these days, the reason is truly basic, and technology is developing in all respects rapidly. Here is some one of the trending technologies, which is expected to acquire a huge market in 2019.

1) Artificial Intelligence (AI):

Artificial intelligence (AI) causes it workable for machines to learn from fact, change in accordance with new data sources and perform human-like errands. Most AI precedents that you find out about today – from chess-playing computers to self-driving vehicles – depend intensely on profound learning and normal language processing. Utilizing these advancements, computers can be prepared to achieve explicit undertakings by handling a lot of information and perceiving designs in the information.

Why is Artificial Intelligence is Important?
  • AI automates repetitive learning and discovery through data.
  • AI adds intelligence to existing products.
  • AI adapts through progressive learning algorithms
  • AI analyzes more and deeper data.
  • AI achieves incredible accuracy.
  • AI gets the most out of data.



2) Blockchain:
  • This is the tech that forces bitcoins, the totally different parallel currency   that has assumed control over the world.
  • Strangely, blockchain as an innovation has sweeping potential in everything from healthcare to financial world to land to law enforcement.



3) Cloud Computing:

Cloud computing is that the conveyance of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet ("the cloud") to offer quicker advancement, adaptable assets, and economies of scale.

Uses of Cloud computing - 
  • Create new apps and services
  • Store, back up, and recover data
  • Stream audio and video
  • Deliver software on demand
  • Test and build applications
  • Embed intelligence


4) Angular and React:

  • Angular and React are JavaScript based Frameworks for developing modern web applications.
  • Using React and Angular one can make a profoundly secluded web application. So, you don't have to experience a lot of changes in your code base for including another feature.
  • Angular and React likewise enables you to make a local mobile application with a similar JS, CSS and HTML knowledge.
  • Its best part is Open source library with highly active community support.


5) Big Data:

Big data alludes to issues that are related with handling and storing various sorts of data. The greater part of the organizations today, depends on big data analytics to increase enormous insight about their:
  • customer,
  • product research,
  • Marketing initiatives and many more.

Hadoop and Spark are the two most popular frameworks for solving Big Data problems.


So, we seen that the technologies is changing rapidly and Arna Softech have passion for technology. We trust that it is an absolute necessity following new trends and innovations in the software world.


Wednesday, May 22, 2019

Content Marketers Should Know More About Search




In contrast to content marketing, SEO is an extremely new discipline. It has been around for only a couple decades, and it rapidly turned into the primary digital focus for many marketers.
However, SEO can't exist without content. Presently, with SEO developing so rapidly, there are still numerous misguided judgments and misunderstanding around it. Those misinterpretations may affect the content marketing process in a not so positive manner.

Let’s clear things up a bit:

1. SEO Has Become Much More Integrated and Different

Many SEOs would ignore very important digital marketing perspective, including user experience, brand building, etc. The main reason for existing was to get a page ranked in search engines.
Nowadays it's finally different: SEO is only one component of achievement. It's next to difficult to accomplish high rankings without building authority and brand awareness, or without ensuring users will have a better experience using the website. Google has taken the majority of that in the record: they monitor how users interact with a site, how fulfilled they are, and how rapidly they find answers when landing on a page from search results.
Most companies are offering full-package internet marketing services that include video production, social media marketing and usability. Some companies even go beyond that by giving “integrated marketing services”. 

2. SEO Is No Longer Focused on Exact-Match Strings

Remember the days when writers were given one phase and compelled to use it a specific number of times in content?
Well, those days are joyfully finished.

Search engines have moved past supposed "keyword strings". They would now be able to get ideas, entities and topics. After updating in algorithm, now Google understands all kinds of phrases that can satisfy the initial query of the user and focuses on the quality of the results rather than matching the exact match strings. Quality and depth of content have turned out to be considerably more significant than the exact keyword you put on the page. When you start working on content, make sure you understand related subtopics and subcategories that need to be included in your site or article.

3. Search Gives Us Lots of Cues

Search has developed. Google has become to be more brilliant at distinguishing search intent and giving their users precisely what they need. They have turned out to be better at distinguishing peoples' struggles and serving the best answer within search results. They have figured out how to discover inquiries behind questions and show their users more options for researching a topic.
The fact that all of that comes up in search results makes it workable for writers to become familiar with any point they are writing for. The key is to figure out how to see and interpret those cues to make progressively valuable and better-optimized content.
Let’s see how it gives cues:

1) When searching, look at all kinds of search results that come up.
·       Is there a video carousel? If you found videos search result that means Google has found users engage with videos more, so maybe you need to put video for that particular keyword.
·      Are there image results? It means Google has seen its users look for visual content when searching.
·       Are there shopping results? This signal of high commercial intent, so your article may not do so well here.

2) When searching, check out “People Also Ask” results.
Google's "People Also Ask" boxes show prominent inquiries based on your query. These give a goldmine of content motivation. Click on some of those questions to see more questions.

3) When searching, pay attention to Google’s Featured Snippets.
Google has gone far at figuring out how to see any web copy and extracting useful information.
·        Define concepts
·        Focus on facts and numbers (e.g. if you are describing a tool, explain its pricing)
·        Use subheadings (especially if you are using questions from the step above)

Nowadays, rather than compelling artificial copy, Google improves your content by instructing you to research more, structure better and use a more varied vocabulary.


Wednesday, April 3, 2019

How to Build Apps Faster using Redis Cache in Node.js


NodeJs core is the speed with respect to execution of async tasks, however there are ways to improve the response time further by using Redis Cache. I would try to get into concept of Caching and approach to implementation.

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

What is Caching?

Caching is the process of storing data in a temporary data store where data is kept for later use. This temporary data store is called Cache.

A cache as a data store is easier for the client (or server) to reach, as opposed to a permanent data store that might be located on a different service, which takes more time and resources to reach (a database or an external API endpoint).

First step in application optimization is implementation of caching. Caching involves storing data in a high performance store (many times temporarily) so such data can be retrieved faster at a later time. Redis is an efficient key-value data store that has become a preferred choice for caching. Redis holds edge over other options because of the number of data structures it supports — such as strings, hashes, lists, sets, and so on. This provides lot of flexibility! 

Plumbing Node.JS and Redis

Let’s first install the Redis to understand the impact of using it as an in-memory data structure for caching on a node server. On InstallationRedis server is started, it runs on default port 6379.

Here, we will fetch the country codes from the existing application that seldom changes and cache them on the node server. To use Redis for caching, we will need Redis module (Redis client) in the Node.JS application that will help in connecting with the Redis server.

The Redis client would help in storing and obtaining the data from the Redis cache.

When the data request is made by the Node.JS app, the products API before moving to the Node server to obtain the data, at first check the data in the Redis. In case, the data is available in the Redis, then it’s fetched from the memory and sent as a response to the request. Otherwise, products API move to the “some_other_domain” to fetch the data and from where the response is firstly cached in the Redis and then send as a response to the request.
This way the response time get drastically reduced.


In Node.JS app, when 1000 records are fetched from the legacy application, it took 8 seconds.

When the requested data is cached on Redis and again requested, the response time reduced to 50 milliseconds.

Furthermore, if database result sets are cached in Redis, then APIs performance would also increase. The cache can be automatically cleared by setting its expiration time with the ‘setex’ method.

Epilogue

Leveraging the power Redis, the Node.JS applications can create a major breakthrough for enterprises. The strong caching layer of Redis is making the apps respond quickly.


Aforementioned instance elaborated the impact of Redis on Node.JS app that needs no explanation.

Although Redis has a memory limit where the data equivalent to the drive capacity can be stored. Also, Redis is worth to use when access to loads of data is barely needed, but in case, frequent access is needed, then it proves to be quite expensive.

Redis is a magic bullet that must be used with Node.JS app strategically depending upon the type of data and access you need.

Example:
We will make a comparison of 2 pieces of code from Node.js. The following is when we try to retrieve data from the Google Book API, without put Redis on the endpoint.

Node.Js without Redis :

  1. ‘usestrict';
  2. //Define all dependencies needed
  3. constexpress=require('express');
  4. constresponseTime=require('response-time')
  5. constaxios=require('axios');
  6. //Load Express Framework
  7. var app =express();
  8. //Create a middleware that adds a X-Response-Time header to responses.
  9. app.use(responseTime());
  10. constgetBook= (req, res) => {
  11. letisbn=req.query.isbn;
  12. leturl=`https://www.googleapis.com/books/v1/volumes?q=isbn:${isbn}`;
  13. axios.get(url)
  14.     .then(response=> {
  15. let book =response.data.items
  16. res.send(book);
  17.     })
  18.     .catch(err=> {
  19. res.send('The book you are looking for is not found !!!');
  20.     });
  21. };
  22. app.get('/book', getBook);
  23. app.listen(3000, function() {
  24. console.log('Your node is running on port 3000 !!!')
  25. });

Node.Js with Redis :

  1. 'use strict';
  2. //Define all dependencies needed
  3. constexpress=require('express');
  4. constresponseTime=require('response-time')
  5. constaxios=require('axios');
  6. constRedis=require('Redis');
  7. constclient=Redis.createClient();
  8. //Load Express Framework
  9. var app =express();
  10. //Create a middleware that adds a X-Response-Time header to responses.
  11. app.use(responseTime());
  12. constgetBook= (req, res) => {
  13. letisbn=req.query.isbn;
  14. leturl=`https://www.googleapis.com/books/v1/volumes?q=isbn:${isbn}`;
  15. returnaxios.get(url)
  16.     .then(response=> {
  17. let book =response.data.items;
  18. // Set the string-key:isbn in our cache. With he contents of the cache : title
  19. // Set cache expiration to 1 hour (60 minutes)
  20. client.setex(isbn, 3600, JSON.stringify(book));
  21. res.send(book);
  22.     })
  23.     .catch(err=> {
  24. res.send('The book you are looking for is not found !!!');
  25.     });
  26. };
  27. constgetCache= (req, res) => {
  28. letisbn=req.query.isbn;
  29. //Check the cache data from the server Redis
  30. client.get(isbn, (err, result) => {
  31. if (result) {
  32. res.send(result);
  33.     } else {
  34. getBook(req, res);
  35.     }
  36.   });
  37. }
  38. app.get('/book', getCache);
  39. app.listen(3000, function() {
  40. console.log('Your node is running on port 3000 !!!')
  41. });


You can see, the above code explains that Redis will store the cache data of with unique key value that we have specified, using this function:

client.setex (isbn, 3600, JSON.stringify(book));

And take the cache data using the function below:

client.get(isbn, (err, result) => {
     if (result) {
res.send (result);
     } else {
getBook (req, res);
     }
   });
This is the result of testing of both codes. If we don’t use Redis as cache, it takes at least 908.545 ms



Very different, when node js use Redis. Look at this, it is very fast, it only takes 0.621 ms to retrieve data at the same endpoint



Conclusion:

I know there are still many ways to improve and speed up performance on Node.js and only one way above, I think not enough to make your Node.js run perfectly. Please let me know another way, by filling in the comments.

Monday, February 18, 2019

.NET Core 3 Desktop Improvements


.NET Core 3.0, the next major version of .NET Core that adds support for building desktop applications using WinForms, WPF, and Entity Framework 6.

.NET Core 3 continues to be open source and runs on Windows, Linux, Mac, in containers, and in the cloud. In the case of WPF/WinForms/etc you'll be able to create apps for Windows that include (if you like) their own copy of .NET Core for a clean side-by-side install and even faster apps at run time. The Windows UI XAML Library (WinUI) is also being open sourced AND you can use these controls in any Windows UI framework.

.NET Core 3.0 addresses three scenarios our .NET Framework developer community has asked for, including:
  • Side-by-side versions of .NET that support WinForms and WPF
  • Embed .NET directly into an application
  • Take advantage of .NET Core features


WinForms and WPF: Do you want your existing WPF and WinForms apps to take advantage of all the features of .NET Core 3.0?

Today there can only be one version of .NET Framework on a machine. This means that when we update .NET Framework on patch Tuesday or via updates to Windows there is a risk that a security fix, bug fix, or new API can break applications on the machine. With .NET Core, we solve this problem by allowing multiple versions of .NET Core on the same machine. Applications can be locked to one of the versions and can be moved to use a different version when ready and tested.

Embed .NET directly into an application: As there can be only one version of .Net framework on machine, if developers want to take advantage of latest framework or latest functionality it is important to install newer machine version. .NET Core allows taking advantage of the latest version, functionality, and APIs without having to wait for the framework to be installed.

Take advantage of .NET Core features: .NET Core is the fast-moving, open source version of .NET. Its side-by-side nature enables us to quickly introduce new innovative APIs and BCL (Base Class Library) improvements without the risk of breaking compatibility. Now WinForms and WPF applications on Windows can take advantage of the latest .NET Core features, which also includes more fundamental fixes for an even better high-DPI support.

ASP.NET Core will continue to move forward in parallel and will have a release with .NET Core 3.0 with commitment to web and cloud applications, as well as providing support to Windows desktop applications as another supported workload for .NET Core.

.Net Core and Desktop application:
  • Improving performance and runtime updates for excellent user experience
  • Quickly test a new version of .NET Core for just one app on a machine
  • Enable machine-global and application-local deployment
  • .NET Core CLI tools support and SDK-style projects in Visual Studio


.Net Core 3 and Desktop Application:
  • New desktop applications, it is the best to start with .NET Core 3.
  • Focus is towards effortless and straightforward move, any application that is in active development should consider .NET Core 3
  • Desktop applications will need to target .NET Core 3 and recompile.
  • Project files will need to be updated to target .NET Core 3.
  • Dependencies will not need to retarget and recompile. There will be additional benefits if you update dependencies.


The advance versions allow developers to explore exciting new features to build desktop applications and make it more advanced. .NET Core will allow exploring new horizons and areas like Desktop, IoT and Machine Learning and making it easier and easier to share code between all the .NET’s with .NET Standard. If you are looking to hire a Web developer or .NET Developer, Our .Net developers are well proficient with the latest technologies and use the latest versions and standards to give your site an extra edge. 

Tuesday, January 29, 2019

What is headless CMS-Why is so popular?


What is headless CMS- Why is so popular?
Traditional cms v/s headless cms

The “head” in “headless CMS” refers to the frontend. A headless content management system consists primarily of an API as well as the backend technology required to store and deliver content. The headless approach allows developers to provide content as a service, abbreviated as CaaS, which simply means that content storage and delivery are handled by separate software. A headless CMS can make the following tasks less of a headache:

  • Modelling, creating and authoring content
  • Organizing content repositories
  • Improving workflow and collaboration

The “head” of a traditional content management system (CMS) refers to its front-end components, such as the front-end framework and templating system. These tools deliver and display the content on the desired platform. So, just as chopping off Ned Stark’s head opened up a possibility of storylines on “Game of Thrones,” chopping of the head of a CMS opens up the possibilities for content delivery.

A headless CMS removes those front-end components. This leaves raw and unpublished content at a development team’s disposal. Since they are not tied down by one default front-end system to deliver that content, developers can build as many heads as they’d like to display content. With a little magic from an API, this content is delivered to a variety of platforms, from websites, to apps, to smart watches and more. A traditional CMS already has a front-end delivery layer built in. That means content is only displayed onto one platform.

Common features of a headless CMS
  • API functionality
  • Content model creation
  • Asset management
  • Multi-language publishing
  • Benefits of a headless CMS


As discussed the biggest benefit of a headless CMS — the fact that developers can build multiple heads to which content is delivered. It’s the main component that sets this type of content management solution apart from a traditional CMS. But that’s not the only feature that makes this software worth looking into.

Simple implementation

With a traditional CMS, you would need to reimplement the tool each time you wanted to upload content to a different platform. As a headless CMS does not include a frontend delivery system, there is no need to reimplement.

User-friendly

A traditional CMS is built upon a website and there is a lot of code and content required to make that happen. You only need a little code to get a headless CMS up and running, which makes it far easier to use than a traditional CMS.

​According to Forbes, “It’s also a lot quicker for business teams to create new functionality. For example, if a marketing department wishes to create a new series of product mini-sites, it can go straight into the CMS and start creating the content immediately.”

Quicker deployment

As previously mentioned, a beneficial feature of a headless CMS is the fact that it allows you to streamline various tasks. One of which is the fact that content creators and developers can work in tandem with a headless CMS. With this ability, you can get your content up and running quicker than you could with a traditional CMS, since a traditional CMS requires the system to be fully developed before content is created.

Reasons why headless CMS is popular

A headless CMS isn’t always the best choice, so you have to consider your circumstances carefully. We recommend using a headless CMS in the following cases:

  • Websites/web apps that use JavaScript frameworks such as React, Angular or VueJs
  • Native mobile apps
  • Any environment in which you need to publish content across multiple platforms all at once
  • When using a static site generator.


I hope these thoughts will help your team match the appropriate type of CMS to each project.



Wednesday, January 16, 2019

HTML5 Features You Should Try -2019


HTML 5 is the latest specification of the HTML language and represents a major break with previous markup practices. The purpose of the many profound compared to the language was to standardize the new ways in which developers were using it, as well as to encourage a single set of best practices with regarding to web development. The core feature of HTML 5 is semantic (meaningful) markup, which makes it more suitable for a web developer.
HTML5 is special because it makes the Internet better. It seeks to improve the way the web works and performs, making it easier for developers to create terrific sites and making it more efficient for users to experience those sites regardless of the browser or platform they are using. HTML5 promises to make the Internet more functional and interactive. It seeks to transform a World Wide Web of relatively flat, static pages into one filled with web applications — as compelling as desktop versions — running in browsers.
Put another way, HTML5 represents the progression of the core language that underlies the Internet. It is the common link that web browsers and web servers share as they work together to render pages and applications across platforms like desktop, laptop, tablet, or smartphone. For any web developer or designer, HTML5 tools prove to be a great help when it comes to step up their workflow and perform repetitive tasks. These tools are blessed with all the richness and power that help webmasters to augment the value of their work and improve the usability of their web designs.
HTML5 has been around for a while now, it introduces lots of new and exciting new JavaScript and HTML APIs for both mobile and desktop, so in this post you will discover some HTML5 features that will enhance your web apps and will save you a lot of time.
DNS Prefetching
DNS hostname resolution is one of the issues that can make any website slow. Modern browsers start to be very smart when it comes to DNS resolution, they try to resolve domain names then cache them before the user tries to follow any link on the webpage.
With the dns-prefetch feature you are allowed to manually control this operation by telling the browser which domain names to resolve :
  1. <link rel="dns-prefetch" href="//fonts.googleapis.com">

  2. <link rel="dns-prefetch" href="//google-analytics.com">

  3. <link rel="dns-prefetch" href="//www.google-analytics.com">

  4. <link rel="dns-prefetch" href="//platform.twitter.com">
Link Prefetching
Link prefetching allows developers to specify pages or assets they want to silently preload once the page load, like loading the first search results :
  1. <link rel="prefetch" href="http://arnasoftech.com/hire-dedicated-developers" />

  2. <link rel="prefetch" href="http://deker.me/assets/images/avatar.png" />
Also you can use the prerendering feature which will make your website even faster, the browser will fetch and render the entire next page on the background and show it only when the user click on the link :
  1. <link rel="prerender" href="http://arnasoftech.com/hire-dedicated-developers" />
Download Attribute
The HTML5 download attribute allows developers to force a file to download rather than go to that specific page, you no longer need to rely on server side code to do that :
  1. <a href="download_pdf.php?id=15" download="myfile.pdf">Download PDF</a>
Regular Expressions
I know you'll fall in love with this feature, no more js or a server side code to check if the user's input is a valid email or url adress, with the pattern attribute you can use regular expressions directly :
  1. <input type="email" pattern="[^ @]*@[^ @]*" value="">
Datalist Element
Datalist element is a litle big addition, no more use of jQuery plugins for autocomplete inputs combined with a server side code that hit the database on each user keystroke :
<form action="form.php" method="post">
<input list="cars" name="cars" >
<datalist id="cars">
   <option value="Volvo">
   <option value="BMW">
   <option value="Bugatti">
   <option value="Cadillac">
   <option value="Chevrolet">
   <option value="Chrysler">
</datalist>
<input type="submit" />
</form>
I hope this will help you save time and enhance you coding skills, let me know your thoughts in the comments below. Arna Softech is a premier web app development solutions company. Our focus always remains on how we can achieve the objectives laid out in the most well-organized and user friendly manner.

Sunday, December 16, 2018

Node.js for Web App Development




Node.js is an open source, cross-platform built on Chrome’s JavaScript runtime for fast and scalable server-side and networking applications. Being an interface to the V8 JavaScript runtime, it enables event-driven programming to the web servers through super-fast JavaScript interpreter that runs in the Chrome browser.

Node.js works on a non-blocking I/O model that makes it clean and usable, ideal for the data-intensive real-time applications that have to perform in varied environments. Beating the conventional pattern, Node.js has bought a revolution in the development circle and has become the sought after option for brands like Yahoo, eBay, Walmart etc.

Node.js empowers the organizations to create quick, robust network applications that can tackle parallel connections with increased throughput. It does not slow the working by any chance, but the developers need to be careful while writing the codes and the applications will get onto the right track.

Go With Data Streaming: This feature can be utilized to its fullest with Node.js to create some of the best attributes like processing files at the time of uploading time as this can reduce the overall processing duration when data comes in the form of streams. The same can also be deployed at the time of real-time video or audio recording.

The event-driven architecture caters to both the client-side and the server-side that are written in JavaScript and thus the synchronization process is fast and orderly. The event loop through web socket protocol which works on TCP handles the multi-user function and prevents the overhead of HTTP for web development.

Node.js has released it's version 10 and it's going under the codename “Dubnium”. It been over seven years since Node.js was released and it's their 7th major release.  Now let's jump into what's new in version 10, what's new features introduced and what they have deprecated in their new release! Releases in the Long Term Support line focus on Performance, security, stability, extended support and providing a reliable platform for applications of any scale.

Node.JS version 10 features and improvements

HTTP/2 is a higher performer than it's the previous version of HTTP. The implementation of HTTP/2 has landed in Node.js  v8.4.0(LTS) as an experimental feature. With Node v10 the HTTP 2 module has become a stable addition to the Node core for web applications and the web platform.

N-API is an API that allows developers to build native Add-ons. When JavaScript performance isn't enough for providing the performance boost to the codebase we used Node.JS Add-ons by providing an interface between JavaScript running in Node.js and C/C++ libraries. We can use that interface to build dynamically-linked shared objects in C++ that we can load into a Node.js application through a require() function.Add-ons is same as Node.js modules but offers a performance boost for computationally demanding applications when needed. 

Node.js V8 has been updated to it's version 6.6 in Node.js 10 with guaranteed forward ABI compatibility with V8 6.7. which comes with Chrome 66 and provides the reduction of around 20–40% in both parse and compilation time of JavaScript.Promise and async/await execution has improved significantly, resulting in Hapi v17 realizing a 30% increase in throughput. 

Node.js10 is the first release to include OpenSSL 1.x sets it up for an easy API and ABI stable upgrade after OpenSSL 1.1.1 released. Recent work by OpenSSL and the Core Infrastructure made it possible for Node.js 10 to really take advantage of OpenSSL including the ChaCha20 cipher and Polu1305 authenticator.

The problem is two module systems are not compatible so the Modules Team had to find a proper solution so JavaScript modules could be built on a platform to be used both in Node and in browsers. You could work this around using the module pattern, but it still wasn’t really convenient.

Node.js 10.0.0 has updated its NPM from v5.7 to v6.0. This major version increase in NPM provides an improvement in all areas including the focus on performance, security, and stability offering major performance boost compared to prior versions of NPM. 

New JavaScript language features introduced in node.js v10

1. Function.prototype.toString()

This method returns exact slices of source text which include whitespace and comments.

2. The function trimLeft() and trimRight() becomes aliases for the newly implemented String.prototype.trimStart() and String.prototype.trimEnd() to ensure backward compatibility

3. The catch clause of try statements no longer requires a parameter.

APIs deprecated in Node.js 10

1. Using require() to access several of Node.js own internal dependencies will emit a runtime deprecation.
2. Use of the tls.convertNPNProtocols() method will emit a runtime deprecation warning.
3. Previously deprecated legacy Async_hooks APIs have reached end-of-life and have been removed.4. Previously deprecated internal getters/setters on net.Server has reached end-of-life and has been removed.

Some advantages of using Node JS:
1.      Highly Scalable Server Side Soultion
2.      One language across the development stack.
3.      Best for real time apps like chat and games
4.      NodeJs is an open- source platform, so you can use it for free.
5.      It support multiple scripting language like Ruby, CoffeeScript, and TypeScript.
6.      Perfect for Microservices.

To summarize, Node.js is a cross-platform JavaScript runtime environment for servers and applications. It is built on a single-threaded, non-blocking event loop, the Google Chrome V8 JavaScript engine, and a low-level I/O API.