Thanks for the response! Sounds like we will have to agree to disagree. I’ve gained a lot more experience with Nest.js since I’ve written this article. I’m a little hurt that you think I enjoy making more work for myself and that I want to turn JavaScript into Java. I’ve actually spent the past 4 years of my career trying to run as far as I can from Java, I agree that Java lends itself to being over engineered.
The code that inspired this post has now been in prod for almost 2 years and is responsible for securely handling millions of dollars of transactions a day for my company. It has been passed down to 3 different teams and each team has had a smooth handoff. Along the way it has undergone penetration testing by third parties and 3 architecture reviews. I’m convinced the reason the code survived all of that is because of nest.js and the functionality nest provides. Technically you can do the same things nest does with vanilla js but I don’t think that would have been practical in a large enterprise where very large sums of cash are on the line.
On the ugly point, JavaScript can be incredibly beautiful but it tends to carry a reputation for being ugly I don’t think I’m alone in this opinion. That’s a stereotype but I’ve run into it a ton in work. It is less verbose so young developers take advantage of that to write complex code in the fewest characters possible not bothering to ask the question of should they actually be doing that. I don’t think that’s a JavaScript only problem but I do think JavaScript lends itself to that problem more than a verbose language.
I do agree with your point that nest would be overkill for all personal, small or medium codebases though. I would limit it to being used in high stakes projects where the extra complexity is fine being exchanged for better readability and security.