Let’s be quite clear about this: JavaScript was originally designed to be a light, breezy, off-the-cuff scripting language for the web browser. So, of course, it’s very usable to write quick solutions to relatively small problems.

Now, scale your problem to the enterprise and scale your application to tens of thousands of LOC, particularly on the server side where Node.js currently rocks. You’ll find that JavaScript’s lack of discipline will cause all sorts of problems. We’re not talking about school assignments or modest-size, front-end UI applications. We’re talking about project management and life cycle costs. We’re talking about the maintainability of large code bases. We’re talking about team management and collaboration. Sooner or later, your web application, which started off as small and manageable, may grow beyond your imagination. What happens then?

You either take software engineering seriously from the outset, or you pay for it in the long term. JavaScript is excellent for small web apps. If that’s all you want, then go for it. But let’s not pretend that JavaScript can compete with Java, C#, C++, Python, etc., for proper software engineering.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store