
Top 10 things I like about NodeJS
Today I've watched Ryan Dahl the creator of NodeJS talk about 10 things he regrets about NodeJS. Although I agree with some points he mentioned, yet I always think technology selection is very hard, and usually you get challenged by trade-offs all the time.
That's why I've decided to list Top-Ten Things I like about NodeJS as of 2018!
1: Same language for both client-side and server-side
If JavaScript is your choice, then you do not need an additional technology or language. React/Angular/Vue or any framework
2: Non-Blocking I/O
- Asynchronous and Event-driven
- Extremely fast and built on V8.
- Single-threaded event-loop architecture. However, Multiple threading is coming to Node 10 behind a feature flag
- Concurrent processing.
3: Cross-platform
Unlike C# for example. Really cross-platform.
4: Widely used at many scales
Enterprises, Startups and SMEs or your next hobby project!That means NodeJS is not a hype and have a high adoption rate. You'll definitely find a job as a JavaScript Engineer.
5: Battery Included
For API projects, thinking about using GO because it's very powerful! Well, think again as you can do the same with NodeJS; maybe in more lines but mostly the same results.
6: More Frameworks, More Threads, More you name it
As slim as NodeJS server can be compared to python for example, but you It's vastly growing technology with the
7: NPM
Rich packages ecosystem growing every day.
8: Learning curve, be my guest
JavaScript + Server-side operations basics. As in reading from and writing to a file, working with Streams and computation, ...etc
9: My benchmark say!
Most of the comparisons you'll find on the web compares PHP and Python (Frameworks) to NodeJS. That's not an apple to apple comparison, and that's the reason behind why I don't find such benchmarks. No abstract benchmark can fit in Production use-cases for all businesses.
10: low-level? Challenge accepted!
NodeJS uses V8 engine, which is written in C++, as the default JavaScript engine. Generally, JavaScript considered an interpreted language, but modern JavaScript engines no longer just interpret JavaScript, they compile it. Node.js also depends on the Libuv library, which is written in C language, checkout the Libuv project repository.
You can actually find all the libraries Node.js depends on from their official source code on GitHub. If you navigate to deps directory, you will be able to find V8 (v8) and Libuv (uv) libraries which contain a clone of their original projects on GitHub.
Additionally, you can get more advanced and write your own C++ Addon and require in your application with N-API. I didn't yet experiment with it before, but looking forward to 😉. There are some useful stuff in Scott Frees's blog.
Make sure to check Ryan's video as well, it's full of design insights
Conclusion
That was my Top Ten Things I like about Node. Honestly, I believe we should avoid ignoring problems and starting over unless it's very necessary! I'll try to contribute and keep NodeJS better and keep adding more to this list 😉
UPDATE Beside the cool list above, make sure to check the curated list of awesome NodeJS.
Thank you for reading! Let me know what do you like or hate 😜 about NodeJS!!