14/10/2018 13:35 BST
I’m really not looking forward to writing this, or am I, anyway but here goes the rant!
What the fanboys want you to know about NodeJS?
- That its fast and highly scalable.
- That its very easy to write code with.
- Maybe for a small to medium application, but what about a very big application?
- That it’s highly accessible.
- That it’s hugely popular and has a good ecosystem.
- They like to point out that there are big companies using NodeJS, such as PayPal, Walmart, NASA and Uber.
- Yet, there is barely any job opening for nodejs in those companies, there mainly job opening for Java Dev, even if there were opening for node, it’s mainly for frontend. 😂😂😂
What they don’t want you to know about NodeJS?
- That the documentation on error handling is well over 80 pages.
- In my humble opinion, a well thought out language should explain how error handling works within one page. Think about cognitive load!! 😱
- The node_modules folder can become a big mess.
- The packages in NPM are like a game of Jenga, pull out one package and the entire ecosystem could go down, it’s has happened before, what make you think that it’s won’t happen again?
- Some packages only contain a few line of code.
- Abuses symbolic links, Windows enforce admin privileges for a reason. (although you can get round that by setting windows to developer mode, but you can only do this in windows 10, MS did this to make the product compatible with solutions like NPM, crazy I know 😆 )
- One really embarrassing bug with npm 5.7.0
- That left me with no confident with npm or node (as npm is the most used package manager of the node ecosystem), I’m sorry but I just can’t really forget that, yes it’s been fixed, but I don’t care, that was too embarrassing, abusing ‘sudo’ command is a very bad idea. Honestly who on earth would run a package manager on a production server? Why couldn’t they do that on a deployment server?
- That you being force into asynchronous programming.
- Usually being force into something you’re not comfortable with is a bad thing.
- Can be very unpredictable!
- Can lead to callback hell!
- Can lead to more difficult error handling!
- Can cause confusion! Not good!!
Do you use NodeJS?
Yes but mainly for frontend, I use Go for the backend, I prefer good error handling and static typing.