Problem #2: Structureless JavaScript, Structureless Node.js
Unlike traditional object-oriented oriented languages like Java and C# that contain structure, JavaScript has always been the wild west. Whereas Java and C# would have Oracle and Microsoft give "best practices" and guidelines to their developers, JavaScript’s version of “best practices” has always been the community itself.
Because JavaScript was malleable, because there were so many web designers, you would see different schools of thought on how to use it… I think that's actually an advantage… we're not telling you there's the one way to write it, here's the one true object-oriented paradigm, here's the only way you should ever make a reusable abstraction. it's not unmixed… it's hard for beginners, and people reinvent certain wheels... If I had done something more rigid, I think the odds are, it pretty much would have failed.
-Brendan Eich, Creator of the JavaScript Language
Just like how Brendan Eich envisioned JavaScript to be malleable, Node.js followed suit. The developers (and designers) who came from that originally malleable background began to write code on the server side. The backend and the server - what was once a playground for only the Java, C#, and C programmer became the playground for the average JavaScript developer. What was once a very object-oriented playground became a "not-so-structured jungle". What would have been built at the enterprise or commercial level with a robust language like Java or C#, would now be built entirely in Node.js.
This produced many problems as the habits of the old-school web developer who came from that jQuery and pre-2010 JavaScript background were now working in large scale applications written in JavaScript. Because everywhere you go, you would see JavaScript on the server side - you would see messy codebases that were not maintainable, not scalable, and not robust enough to work with on a long term basis.
Last updated