Looking back three years working with Node.js

Currently…

Node.js is improving day by days as the high-throughput, fast server side framework. Companies like Facebook, Paypal, Uber, LinkedIn using Node.js (or it eco-systems) to build their product and whatever product they have build is working more expected, so can we say future is bright?

Node.js is so attractive

Node.js was originally written in 2009. After 7 years, Node.js have more than 300.000 node modules. At more times, Maven Central (Java) have lower than 160.000 modules. At this view, we can see Node.js had developed so fast. When I have a difficult problem. Almost, I can see some modules help me solve that problem.

Due to Non-blocking IO mechanism. Node.js is fast in network communication or database interaction. With the development of Micro-service. Node.js used to make Gateway to authenticate or authorization in many product.

Simple example architect with Node.js

When we have Node.js, Javascript is appear in Back-end and Front-end. So, Front-end developer want to be a full-stack developer he should use Node.js. That is fastest way to be a full-stack developer. Nowadays, many startups build around the world everyday. They need have a real product faster than competitor. Use a full-stack developer they can have lower cost, one developer responsible for one module from back-end to front-end, so dependence between back-end and front-end will not exist.

Looking developer survey result. JavaScript and Full-stack developer is very crowded. Almost all of them known Node.js. That is a good information. You know Node.js, you are look in the same direction with many developer.

http://stackoverflow.com/research/developer-survey-2016

So hot but not the future with me…

After three years work with Node.js, I saw some problems, I sill work with Node.js, but Node.js is not my first priority. I hope Node.js can change faster to consistent with the trend.

Problem from inside of Node.js

  • Management of Node.js. Node.js had published from 2009, but now some API still changing. Node module is too much. Many module is not standard and similar. It will make developer being confused. Many module is interdependence and nobody is quality censorship. If one module not working correctly many modules is the same fate.
  • Easy to learn and hard to expert. You can get one week to know and write code JavaScript, you need more than one month to know and write code Java. But road to be expert in JavaScript is so far. You have to work more to know about callback, callback-hell, event-loop, pass by reference and pass by value in JavaScript, not get callback at all…
  • Fault-tolerant in Node.js. Many programmer complain about this problem. It doesn’t give you all of the tools necessary to make systems reliable and fault-tolerant.
  • Single-threaded. Node.js has more than proven itself capable of handling
    multiple events concurrently such as server connections. Nowadays, each server have many thread. If you need to solve a complex business like read multiple file. Node.js is too slow to do that job.
  • Performance. Due to JavaScript’s dynamically-typed nature, Node.js can not reach the raw performance of CPU.

The development of other programming language.

When Node.js is created, C and C++ is good for computer but not good for developer. Python and Ruby are good for developer but not good for computer. Java is good but it hard to learn. At that time, Node.js is easy for developer. Startup and full-stack are trend in USA. So they choose Node.js. But, after one or two years their product run with Node.js they saw some problem and they are moving to other programming language. Some of my friend around the world has changed their business logic to use Java or Python. And programming language created everyday. Some of them had run faster Node.js and easy for developer like Go.

According to the picture above, Node.js(JavaScript) don’t have any chance to pass up with another language like Java, C#, Erlang or Go.

Summary…

Node.js is the best choice to build a fast product use MEAN (Mongodb, Express.js, Angular.js, Node.js). With the disadvantages mentioned above, It can work well in a small range.But when that product is bigger, millions of user and have more complex business programmer should think more about another programming language.

That’s some of my comments about Node.js. I hope in next version run on multiple thread and have fault-tolerant. This only my idea about Node.js, If you have any opinion or something to talk with me or something wrong in this post, please comment to let me know. It will make me improve my knowledge. I’m always willing to listen to your opinion

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.