Is Node.js still relevant in 2019? AngularJS, ReactJS & VueJS demistified.

Sasicronj
19 min readMar 16, 2021

Everyone’s familiar with JavaScript the most popular programming language used as a client-side development tool in 95 percent of websites.

But what about server-side programming?

Well, with the introduction of Node.JS, JavaScript has become an all-purpose full stack development language.

While Angular, React and Vue are Front-end Frameworks / Libraries, Node is the one and only Javascript based Back-end framework.

So, let’s discuss what Node.JS is and then explore its advantages and disadvantages.

Node.JS is an open-source runtime environment for JavaScript.

It’s based on Chrome v8, an engine for chromium browsers.

Node.JS allows your programs written in JavaScript to be executed on the server.

First written in 2009 to create dynamic web pages before they’re sent to a browser.

It soon became one of the most used tools in back-end web development.

Node is a part of popular MEAN and MERN, JavaScript centered technology stacks that cover the entire web development pipeline.

There are many frameworks built for Node including such popular ones like Express JS, Meteor, Sails, and others.

To source modules and ready-made packages you can use NPM, an extensive package base that helps build with MEAN and MERN stacks.

So, there are multiple reasons why NodeJS became a standard for enterprise companies like Netflix, Uber and eBay.

In 2015, a number of companies including IBM, Microsoft, PayPal, Fidelity and SAP organized a Node.JS Foundation.

It’s an independent community aimed at facilitating the development of Node.JS core tools.

Regardless of active corporate involvement, Node.JS is an open-source project that gathered a vast community of developers providing ready-made solutions and guides for each issue on Github.

With a growing community, you’ll always have pathways to the solutions of your specific problems.

Few programming languages can boast such a rich packaged ecosystem as Node.JS.

Thousands of libraries and tools for JavaScript development are gathered on npm, a default Node.JS package manager and marketplace.

With the constant support of the Node.JS community, NPM focuses on encouraging users to add new packages.

So, you have countless, ready-made solutions for specific issues.

Since Node.JS inherits many JavaScript features, including its libraries, Front-end developers will likely learn it pretty quick.

Also, considering the community support and the overall popularity, JavaScript has a fast learning curve for beginner developers.

To determine whether Node.JS fits your needs, let’s look first at its pros and then we’ll consider the cons.

Pros of Node.JS:

  1. Node.JS has opened the doors to JavaScript full stack development, inheriting the merits of JavaScript programming as well as allowing engineers to use its libraries and features.
  2. Lightweight JavaScript achieves high performance with fewer lines of code when compared to Java or C.
  3. Also, the frontend and backend are easier to keep in sync, because of a single language used on both sides of the application.
  4. Developer-wise, it also became possible to share and reuse code. With the help of node modules, which are basically independent chunks of code, developers can use prebuilt modules or reuse their own.
  5. Node.JS is highly scalable and lightweight, and that’s why it’s a heavy favorite for microservice architectures ( In a nutshell, microservice architecture means breaking down the application into isolated and independent services. It makes it easier to update and maintain the architecture as your services are decoupled and you can add new or fix existing architecture without dealing with other parts of the application). Node.JS fits well for designing such architectures with the help of Node modules which represent building blocks of Node.JS functions.
  6. Node.JS is considered fast thanks mostly to Chrome’s v8 engine. It is used to compile JavaScript into machine code instead of using an interpreter. JavaScript community notes constant improvements in the engine, as Google continues to invest heavily in it.
  7. While its event-based nature makes Node.JS highly efficient for real-time apps that require constant data updates, the non-blocking input-output model solves performance issues. The performance is enhanced by concurrent request processing which uses a single thread event loop.
  8. A non-blocking Input-output model allows for processing several requests at a time. This makes Node.JS highly efficient for processing multiple requests with less CPU usage.

Cons of Node.JS:

  1. As we mentioned, Node.JS uses a non-blocking input-output model for processing requests. So it’s considered single threaded by nature.
  2. Node.JS is capable of processing several simple tasks for instance, read database query — without blocking the main thread. Whenever there is a heavy-computation request, Node.JS would set up a block on other requests on the thread, causing and overall delay. And that’s considered a major drawback. In the latest updates, threading was introduced as an experimental feature designed to process heavy computations. Using a worker thread module, developers are now able to spawn additional threads for parallel processing to carry requests that block the event loop. Considering this, Node.JS may become suitable for processing CPU-bound tasks and used for machine learning based calculations in the near future.
  3. NPM registry seems to be quantity, not quality driven. While core products prove to be stable and well-tested, the rest of the NPM registry is poorly structured and badly documented. Of course, that’s not uncommon for open source projects.
  4. The last point worth mentioning is the lack of experienced JavaScript developers that work with backend. While JavaScript developers are the major group on the market, statistics show that a typical Node.JS developer has two years of experience with Node half of their working time.

Wrapping up, Node.JS is a powerful and lightweight tool for full stack web development.

Most likely you would use it when building microservice architectures or even cross-platform desktop programs with an electron framework.

As with any tool, it has its weaknesses, like performance bottleneck for CPU heavy operations.

But the project is strongly supported by the community and enterprise giants are investing in its development.

So when choosing a backend tool and comparing such options as Python-based Django, PHP Symfony, or Ruby on Rails, also consider Node.js.

Front-end Frameworks, ReactJS vs AngularJS vs VueJS Comparison and statistics.

So how do I want to compare these three frameworks and libraries?

First I want to have a look at the key characteristics of each because that is super important. You got to know what you’re working with and the key characteristics determine whether you like a library or framework or you don’t.

I’ll then also have a look at their popularity.

This might matter to you if you’re looking for a job working with this library or framework or in general if you want to get a feeling for where the industry is moving.

Last but not least, I’ll have a look at performance.

Because performance obviously matters.

I want to dive into the performance of these three alternatives and I want to see if there is a clear winner regarding performance.

So let’s start with the key characteristics and for that let’s have a look at ReactJS, Angular & Vue in detail.

And let’s start with ReactJS.

ReactJS:

Now ReactJS is a library.

Yes it’s a library which you use to build components.

And it’s extremely popular and used by many big or very large companies like Netflix or Facebook which basically developed and maintains React.

And as I said it’s a library which you use to build components, now library has one implication.

It means it focuses on one or very few things.

It’s not a complete suit of tools and that will become important once we start comparing it to Angular or Vue.

Components are basically reusable UI elements.

HTML by default has some components like an input field button but they’re pretty basic.

They don’t have much styling and it definitely lacks more complex components like date pickers.

Now with ReactJS you build such components and you do that with JavaScript.

Everything is JavaScript in ReactJS world.

You build your entire application where these components with JavaScript and you then basically drop that into a page so that JavaScript can do its thing and render some HTML elements and some CSS.

Styles maybe that make up UI element. yen but you as a developer

you work with JavaScript only and you be precise you work with something calle JSX.

JSX is basically HTML in JavaScript.

It’s a special syntax that looks a bit like HTML but it’s not entirely HTML which leads to some things like for example that you can’t use class for assigning a CSS class.

Its class name instead.

But in general it’s okay. I’m personally not the biggest fan of this “everything is in JavaScript” approach but it has its advantages. There are people who really love this approach and overall it’s just how ReactJS works.

Now besides that everything is JavaScript thing.

The other important characteristic is the fact that it’s a library and it focuses on the component creation.

This implies that for more complex applications, more complex single page applications for example you need to add routing and that is not included in ReactJS.

Instead there is a pretty popular library React Router and it’s the same for state management by the way there we got Redux and these are actively maintained but they’re not from the ReactJS core team.

And you have to get into them they well simply are additional things you have to learn and that is something you might or might not like.

It’s the general theme of ReactJS is really just about creating components and nothing else now another important thing to know about ReactJS is that it’s developed and maintained by Facebook and that of course is a very large company which actively uses ReactJS in many or pretty much all its applications.

Therefore obviously ReactJS is actively maintained, gets updates regularly, gets new features or enhancements regularly.

And that of course it’s pretty good, though it has one possible downside of course you might need to update your app from time to time.

Though the updates that ReactJS publishes always are pretty easy to incorporate, they very rarely are breaking changes and if there are, you have plenty of time to adjust, so this really is a good thing.

Now last but not least here it’s primarily used for web apps but the cool thing about ReactJS is you can also build mobile apps with it, with the help of react native or starting with version 4, although with the ionic framework.

So you can take your ReactJS knowledge add some new knowledge which you’ll have to learn and start building mobile apps and that’s pretty cool without knowing Android or Swift.

So thats ReactJS.

ReactJS is not the only thing we got of course.

We also got AngularJS.

What are the key characteristics of AngularJS?

AngularJS is extremely popular cue and its also used by many large companies for example by Google who developed it but of course by other companies.

AngularJS unlike ReactJS is not just about creating components though it has components too and all the follows a component driven approach.

But AngularJS is a complete framework or even platform you could say.

A rich set of tools that help you with developing modern web applications.

So unlike ReactJS it’s not just about creating components which you drop into your pages but instead it’s really also about adding routing, having a state management solution built in, having form validation built in etc.

So all these tools you need for very large applications ship as part of AngularJS developed by the AngularJS team so you don’t need to rely on third-party vendors there.

Additionally it uses native web api as you could say.

It uses HTML templates for the components.

No JSX, really HTML.

It uses CSS which is easy to add also.

So it uses these native features you could say, though it does use typescript as a language instead of native JavaScript.

Typescript isn’t too hard to learn to be honest but it is something you have to be aware of you’re not using native JavaScript when writing AngularJS apps, typescript it is instead.

And typescript is just a superset to JavaScript.

It compiles to JavaScript.

You have some additional features which is pretty cool.

But which you have to learn therefore in the end it’s not too far away from JavaScript though so I think it’s pretty okay to learn that but something to be aware of.

Now as I said the cool thing about AngularJS’s that it includes routing state management and all these things which helps you scale your app or build

really big apps because all the core features you need then are included wanna turn your application in a progressive web app well there is an official package for that.

And this really is the theme of AngularJS you get packages for all the core features you might want to add to your app and this of course gives you as a developer a lot of power to add such features easily now.

As I already mentioned it’s developed and maintained by Google which is pretty good it’s a big company, probably not going anywhere especially since it uses AngularJS internally andtherefore we got a strong background for AngularJS 2.

You can primarily use it for building web applications but just like ReactJS you can also build native mobile apps with AngularJS here with the help of ionic.

Ionic was always focusing on it and you also got native script which is following a similar approach as react native is.

But well it’s just a number alternative and it embraces AngularJS so that is also an option you got here.

So what are the key characteristics of VueJS then?

VueJS is a bit like a mix of ReactJS and AngularJS.

VueJS has nice features from both ReactJS and AngularJS.

And in my personal opinion it merges them pretty well yielding although it’s the best of both worlds you could say.

VueJS is also extremely popular amongst developers but unfortunately not used by many large companies.

Though it’s slowly picking up and it is not getting adopted by more and more companies and smaller companies are already using it.

It is popular it just doesn’t have the big company behind it as ReactJS or AngularJS have it.

It’s a complete framework like AngularJS though a bit reduced less features than AngularJS has.

It has more than ReactJS.

It’s not just a library for building components though.

Just as in the other two alternatives you work with components in VueJS too.

They’re all about building these UI elements but in VueJS you also got routing and state management provided by the core VueJS team.

And that of course makes moving towards larger applications maybe a bit easier since you can’t rely on these packages always being available.

Since they nicely integrate with VueJS you can rely on VueJS getting updated and these third-party packages immediately being updated too!

So that’s pretty cool to have.

It has less package just like AngularJS does, for example it has no official form validation library.

There are community packages of course, but these bring the general disadvantages such packages always have.

You have to rely on the people creating and maintaining them well to continue maintaining them.

VueJS uses native Web API.

Yes it uses HTML & it uses CSS.

It is pretty similar to AngularJS.

Especially from a syntax perspective when we talk about its template maybe AngularJS 1 or partly AngularJS 1 at least.

So it’s similar to AngularJS regarding that but it has some ideas from ReactJS as well.

And it really merges that in a nice way.

I personally like its syntax a lot and I think most developers do.

I said routing in state management are coming from the core team they are provided by them, other features are provided by the community only putting only in quotation marks here because that’s not necessarily a bad thing it’s good that we have an active ecosystem it just means you have to rely on them.

Now, one of the biggest disadvantages I’d say or perceived disadvantage to be precise is that it’s not backed by a big company but by a single developer.

Evan You, who is a former Google employee.

In the meantime, especially a pretty big core team has been established.

So it’s not just one guy working on VueJS anymore.

Instead it is a core team but of course Evan You still is the leading person in the team probably the person driving the development of VueJS.

It’s just something you have to be aware of.

There is no major company backing this.

Though this can also be an advantage of course because it could mean greater independence.

There are big projects which heavily back VueJS indeed.

We got this strong community pushing VueJS and basically backing VueJS you could say.

It’s for example also entirely funded or mainly funded by donations from contributions.

You can support it. You can pay money to support the development of VueJS which is a great thing.

Last but not least it is although primarily used for web apps but just as with the other two alternatives you can use it to build native mobile apps.

It’s worth mentioning Ionic 4 here.

Which will be usable with any framework or library or native script.

VueJS which is a native script implementation.

Building up on VueJS, allows you to build mobile apps as well.

So these were the key characteristics.

How easy is it to get started?

That obviously is super important if you are relatively new to web development in general or to one of these frameworks which you want to learn.

How easy is it to get started with ReactJS?

So ReactJS, it is easy to get started, say JSX is optional.

Though JSX can be a bit strange to get into.

But the good thing is that you can start working with ReactJS, without a complex build workflow.

You can’t just add or import to a page and start adding code.

We also can drop it into existing pages or views, so if you have an existing multi-page application you can drop ReactJS into it and start working with it on some of these pages which is really great.

Now potential disadvantages depending on how you feel about that is JSX.

I still feel like our people love it and I can understand that but you have to get used to i.e “everything is JavaScript” approach.

You don’t write native HTML code and that is something you have to get accommodated to.

Now we also have to understand that for single page applications you will have to add routing state management for invalidation all of that by picking third party community managed modules.

There is no official guide on how to proceed regarding that or there is no official solution for that although there are of course best practices and so on but it is something you have to dive into on your own.

How easy is it to get started with AngularJS?

AngularJS is easy to get started regarding the fact that we use HTML and CSS so the technologies we already know.

We also have all the core features baked into the platform so if you’re getting started and you want to build a huge single page application you got all these key features added to AngularJS, added to its official documentation, so it’s not too hard to get started with that.

There also is the AngularJS CLI helping you get started with AngularJS projects.

It’s set up ready to get started with project for you automatically.

But the downside is that we have to learn typescript you can learn it on the job to be honest.

Some of the AngularJS features like Dependency Injection are pretty cool but all it’s a bit more complex so you you have to invest a bit more to learn these I’d say.

So it might have a steeper learning curve when we think about topics or features like this.

Last but not least, I mentioned it you have to have CLI to get started by the way you also have one for ReactJS.

But unlike for ReactJS you really need it for AngularJS and ReactJS you can dump it into a page and get started.

For AngularJS you need a complex project set up and build workflow.

For example to compile the typescript code or for example to optimize all your code you really need that here and that of course can be seen as a disadvantage because there is no drop in getting started mode.

How easy is it to get started with VueJS?

Now for VueJS we also use HTML and CSS which is great. Technologies we know and love.

We can’t drop it into existing pages and views and that of course makes getting started super easy.

We don’t need to set up a complex project setup or work flow.

Though if you do need it it has a CLI two command-line interface.

It’s also using a very intuitive syntax in my opinion and it has a great documentation.

All these solutions have good documentation.

VueJS has an exceptionally good one I’d say and it also has some core features like routing and so on provided by the core team which makes learning these a bit easier than, for example with ReactJS now down set is some key features like form validation are not included.

So if you need these you have to add them manually and you have to learn them, therefore they’re not necessarily following the same philosophy as the core VueJS packages.

So these are the key characteristics in my opinion on them and things you have to consider you have to learn.

I always suggest that you dive into all of them at least briefly so that you get an idea of how they work.

How popular are these solutions?

Well here’s ReactJS.

ReactJS is pretty popular if we measure the monthly npm downloads.

Or is it we don’t know let’s compare it.

So here’s AngularJS and we can see ReactJS is quite a bit more popular than AngularJS at least if we just look at these downloads.

Now that is not the only measure to be honest but it gives us some indication that ReactJS seems to be getting used a bit more.

We all have to keep in mind that ReactJS a bit more mature and older than AngularJS because I’m talking about AngularJS 2+.

This is excluding AngularJS 1.

If we would add it AngularJS would be much closer to ReactJS.

But AngularJS 2+ is getting downloaded a bit less, VueJS even less.

Now VueJS, although is rising, so it’s not like it’s on a declining a puff.

Still is highly liked in developer circles.

If you look at GitHub stars, VueJS is super popular, but regarding npm downloads, it’s the weakest framework.

Though all three are on a good level and definitely worth learning, don’t get me wrong.

Now performance.

Let’s have a look at a nice page that can help you with that.

Run your own JS benchmark.

Now this is a Github repository where you can download a benchmark which you can run on your machine.

It basically allows you to compare multiple frameworks.

And you can all do that without running it on your machine directly on the github repository

Now here I compared AngularJS 6 VueJS 2.5 and ReactJS 16.1.

These are not the latest versions as of now but they are the latest major versions.

So if we had big performance changes they are definitely included here.

Now it can be deceiving to just look at this.

We can see something yellow or reddish and we immediately say ok that has a bad performance.

Now benchmarks are always tricky to code to look at.

They are not necessarily measure what your application needs.

They’re of course highly theoretical and whilst they give us some idea about performance.

It’s always performance for these given tests and therefore we’re not necessarily talking about a slow framework.

Additionally we have to keep in mind that all these results here you see the milliseconds latencies are pretty faster.

There is no super long taking test like which takes half a second or a second.

So I can already say all free alternatives offer pretty good performance and it might differ on your machine and your exact requirements in your web app which of these really is slower or better in the end.

They’re all pretty darn fast and there are production applications running with all three of these and they’re all running fast.

I’d say one thing to note though already startup metrics because there is something interesting AngularJS is worse than the other two and that is something which is related to the fact that AngularJS still ships with a pretty big code base.

So if you deploy your AngularJS app it’s pretty big definitely bigger than a react or Vue.

Now this will drastically become better in future versions where AngularJS will internally use a different renderer leading to a smaller codebase so with AngularJS 7 and higher we should see improvements there.

We’re not talking about seconds here either.

But it is something to keep in mind that right now the code base you get with AngularJS is a bit better.

For some applications like internal enterprise applications these milliseconds here might not matter.

For some applications that might and then right now before the improvements I just mentioned ReactJS and VueJS might be better.

But with that I can only encourage you to have a look at this on your own and in general there is no clear winner.

This is really something I have to tell you all three frameworks and libraries are great you can build the same type of apps with all of them.

There is no clear winner.

There is no better worse one.

They follow different philosophies and approaches.

And as I mentioned I can only encourage you to at least briefly dive into each of them.

Get an idea of how the code looks and then dive into one deeper or two if you have the time.

I want you to learn one or two of them in a more focused way.

I can only encourage you to dive into these frameworks and libraries because they allow you to create great applications and they’re all free and awesome in the end.

They have their differences and it’s up to you to pick your personal favorite.

You can also hire our dedicated team at CronJ to do the heavy lifting for you while you can focus on your business.

Be it a software developer, programmer, coder, or a consultant, CronJ has it all. CronJ has been a trustworthy company for startups, small companies, and large enterprises. Hire the web of experienced React developers for your esteemed project today. ReactJS Development Services

Contact us now or email contact@cronj.com.

--

--