My Authors
Read all threads
#Nodejs is a monstrosity, a Mordor of architectural pitfalls, the plastic of programming languages - ubiquitous, toxic, and sadly here to stay.
Like plastic, it started off as useful and has now become ubiquitous & noxious.
1/18
1. There is no arguing NodeJS lowers the barrier to entry for application development. However that's where it should stay, an entry only
2. The lower barrier gives the same set of people from previous point a confidence that is misplaced at best and noxious at its worst.
2/18
3. The ecosystem fosters a culture that everything is a "component". Tell a NodeJS developer that what they are using is a "library" and they trot out their high horse, thumb their noses high in the air, and noisily claim that it is a component and not a library.
3/18
There is a difference between the two, albeit a subtle one. A library is a collection of one or more components and are not interchangeable terms.
4/18
4. The ecosystem is littered with bloat while claiming to reduce application bloat. For every line of app code, the bloat is 100s (if not 1000s ) of lines of bloated components. Quoting a good friend of mine - "You write more code to write less code"
5/18
5. The ecosystem encourages ego-centric, lazy, and/or coddled programming. Point in case is a 2-line component/package called is-even which is a negation of and dependent on is-odd.
6/18
(5a) Ego-centric programming Both these packages are from the same author and he couldn't even be bothered to combine it into a single packages. There are many more examples, but this is a case it can be easily claimed "Hey, I have 2 packages with millions of downloads".
7/18
(5b) Lazy programming: If one were to use is-even, there are 2 packages to be downloaded. It takes more energy to scoff at a 2 line package than to write an if !isOdd().
8/18
(5c) Coddled programming: Elizabeth Warrensque quote "Don't even think about it. Don't write code, there's a package for that". The common rejoinder: If the parameter is not integer type, then is-odd/is-even package does the validation for you?
9/18
(5c contd) So we have a need for the package. "Guess what, have a strongly typed language like Typescript" and then the community scoffs back: Typescript is for wimps
Tragically 'is-odd' has around 500k downloads per week and 'is-even' has around 150k downloads per week
10/18
6. When egos clash, the result is a broken internet; 17 lines of code broke the internet. pad-left kodfabrik.com/journal/i-ve-j…
11/18
7. Anarchy in the ecosystem: snyk.io/blog/why-did-i…
12/18
8. Dependencies "Node dependencies are heavier than black holes" is a refrain that is not far off the mark. I have a server side API with about 15 endpoints. Total size of the code is 415k, but the dependencies downloaded are 400 MB in size.
13/18
(8 continued...) The app code is like Gru on the Grumobile (hint Despicable Me). And then a React/Angular app which has a 1MB code size, and…… VOILA!!! The package download size is almost 1GB and about 900 packages. The ratio of code to package size 1:1024.
14/18
(8 continued) The standard paradoxical rebuttal is "Write more code to write less". SpringFramework has been in existence longer than NodeJS, superior in performance, and more sophisticated in terms of feature richness. Releases are a measly 87MB and the source is 243MB
15/18
9. Scale: If your application is CRUD heavy or CPU intensive, do not use NodeJS. optasy.com/blog/when-shou… Which means serious enterprise-grade software cannot be built with NodeJS. Enterprise SaaS apps like Salesforce, Workday, SAP, Dynamics, etc etc
16/18
Every single app has heavy CRUD and serious CPU processing which Node is not ready. And all these applications use RDBMS as one of their data stores. Abusing my favorite quote "You can write server side with JS, you can also plough a field with a table fork"
17/18
Ending with what I began:
#Nodejs is a monstrosity, a Mordor of architectural pitfalls, the plastic of programming languages - ubiquitous, toxic, and sadly here to stay.
END
18/18
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Kartik

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!