JavaScript is not so bad, as everyone said

A lot of times, I heard how developers from different companies, which are writing in Python, C++, Java and other programming languages, say that JavaScript is crap. This bothered me for a while, so, at some point, I wrote this article to share my thoughts with you about JavaScript and it’s bad and, maybe, good parts.

Though, first, I would like to introduce myself a little, so you can decide, if it’s worth it to listen to me or if I’m just another blind JavaScript evangelist that knows none other language (choose your).

Boring part of the article

If you’re following me up on a Medium, you have noticed a few articles I wrote about NodeJS and its internals. If not, here are some of them: How does NodeJS work, how V8 optimizes JavaScript code, optimization tricks in V8 and tracing deoptimizations in NodeJS. Also, I’m the author of high performance renderer API for a terminal (terminal-canvas). Based on terminal-canvas, I’ve created a presentation engine that allows you to create presentations via shapes\geometry\animations and show them right in your terminal — Kittik. I have 5+ years of experience with JavaScript and got through each of stages, starting from horrible code and finishing with elegant solutions.

JavaScript is easy to learn

Is that good or bad? Hm… both.

On one hand, you can make a working proof of a concept in a language easy to learn in a few days. Though, it will be an unmaintainable bulk of code in one file, without tests, that will make your eyes bleed.

On the other hand, JavaScript is not as easy to learn as everyone thinks. We can achieve a good knowledge of JavaScript only after years of developing monstrous applications in different sectors and reading a lot of documentation\articles\references and specifications about JavaScript itself.

This problem with the learning curve of JavaScript leads to another problem.

Anyone can write in JavaScript

But most of that code is terrible. I’ve seen a lot of projects, modules, front-end and back-end applications during my career. Almost all of them are written awfully. While looking at it, I felt a strong urge to break the arms of whoever was related to writing that code.

Trainee developers, juniors, students, which are only at the beginning of their career, are choosing JavaScript as a main language for educational purposes. Or the company they started to work in choosing the language for them. As a result, JavaScript becomes a language that anyone can pick up, but it will usually be inexperienced people.

This leads to another problem.

Most people associate JavaScript with these inexperienced people

And that’s why, in my humble opinion, everyone says that JavaScript is a piece of shit. They never get to see the well-written JavaScript code. We can say the same about Python, C++ and any damn programming language. If code is written awfully, it’s not important which language was used — the code is awful, not the language itself.

Let me draw an analogy with another situation. Imagine that you never written in Python; you don’t have experience with it. Also, you’ve never seen well-written Python code. So, you don’t have experience and enough knowledge to write a good maintainable code. You wrote some code, released some project, everything is working, you’re happy.

Now, I’m as a JavaScript developer and want to switch to Python. And as a main point of my decision, I looked into your code. Turns out it’s awful. What are my thoughts? Is Python awful programming language? Is Python a piece of shit? Will it be better if I stay with JavaScript?

No! Python is not an awful programming language. JavaScript is not an awful programming language.

Summary

I have little else to say. I just had to get this off my chest. I’ve had enough discussions about JavaScript being terrible lately.

People keep talking about languages being bad when they should really focus on the developers using those languages.

Be smarter, don’t judge by what you saw or heard. Judge by what you and others do. Thanks for reading!


Eugene Obrezkov, Senior JavaScript developer at Dev-Pro, Kharkov, Ukraine.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.