Allow me to give some context and explain. Also, keep in mind that everything in this article will be opinions from my personal experiences working with other developers, so this article will be brief.
Javascript is known for its fast development and its unicorn title, using Javascript we can quickly build useful applications and deploy them for everyone to use.
Developers and Javascript
What I’ve noticed is that a lot of developers (the ones I’ve worked with) despise javascript despite its proven capabilities. As someone who particularly enjoys working with Javascript myself, it can be demotivating to share ideas and projects with other developers, knowing that I’m constantly looked down on because of my choice of tools. Being surrounded by people that openly bash your interests all the time can make you feel like less of a developer, less skilled, less capable, and less valuable.
This, though, is experience from a perspective of a software engineering student. I haven’t yet had much exposure to the industry, so if you’re reading this and you work with javascript professionally feel free to comment your thoughts on this.
Language similarities
In computer science, programming languages fall into one of two categories, namely low-level and high-level. At the low level, we have languages like Assembly, C, Machine code, etc. These are languages that provide little or no abstraction from a computer’s instruction set architecture, really hardcore stuff! Then we have languages like Python, Javascript, PHP, etc. And then we have languages that kinda sit somewhere in between the two categories, they aren’t as low-level as the low-level languages, but they are also not as high-level as the high-level languages, pretty weird right? These are languages like Java, Go, C#, etc… they are very useful and widely known as the “heavy hitters”, they mostly run large enterprise applications and are capable of handling large amounts of data with relative ease.
Javascript is usually compared to Python because the languages are both dynamically typed by design.
Javascript is similar to Python
Javascript then, being a high-level dynamically typed unicorn is similar to Python not technically, but in how quick we can go from concept to demonstration. One of the reasons most people start programming with Python (apart from the nice syntax) is that the language doesn’t want to chase you away with all the “heavy lifting” setup, jargon, and funny syntax, it allows you to focus on solving the problem at hand! Therefore making it quicker to build something useful.
Javascript shares this “behavior” with Python. The syntax, however, isn’t really like Python syntax, sorry!… Javascript is like the kid who wants to do all the cool things the big guys can do, but he can sometimes cut corners and break a few rules to get there, its left to the developer then, to tame him and show him the “right way” of doing things, but he will always get you to the promised land.
“Any application that can be written in JavaScript, will eventually be written in JavaScript.”
— Jeff Atwood
Javascript is not similar to Python
Python is largely used in scientific computing and machine learning, these are people at the forefront of computer science or science in general, they’re solving crucial problems and paving way for generations of humankind. Although Javascript is quick to get going with, it isn’t the go-to language for science, even though it helps NASA astronauts live in space.
I keep saying the term “unicorn”, what do I mean by that? Well, Javascript got the title unicorn because of its ability to run on the client and server side, which means we can build large-scale applications front, to back! Crazy stuff!! Developers typically use Typescript for backend development but nonetheless, it's Javascript!
Javascript rules the web
I don’t know how capable Pyscript is, but I understand that everything that runs on the browser eventually compiles down to HTML, CSS, and Javascript regardless of what it was written in during development.
I’m not a Javascript evangelist, I just enjoy building things with the language and I’ve dedicated a large portion of my time to learning and understanding the language in as much depth as I possibly can. My reason for liking Javascript may or may not convince you to start learning the language if you haven’t already, the point of this article is to express my thoughts on the criticism around the language and those who choose to use it (i.e myself). I do plan to publish a javascript-focused “kinda in-depth” article in the near future.
I think this is one of those things that you kinda have to live with, programming is mostly preference, and every developer will be biased to the tools they prefer using, it's just unfortunate that the tools I prefer are openly hated by people that are always around me.
I’m not a developer
There’s a misconception that Javascript is a front-end language, and that is usually because a lot of people’s exposure to the language is from manipulating web pages, and so a large number of people conclude that Javascript is good for that and only that, people are simply unaware of the fact that there are mobile and desktop apps built entirely in Javascript, I understand this. The descriptions and roles of a designer and developer are clearly different, despite this, when you write code that is concerned with the front end of an application, there will always be developers who look at you as a designer, not a developer.
Design is a massive field with people who can turn pixels into billion-dollar empires, people who understand human psychology and can predict and influence human behavior, if anything, these are the real magicians of our time.
There’s a clear distinction between design and development. I do agree though, that the job of front-end developers is not as hectic as that of some backend roles like microservices or machine learning for example. Front-end developers act as an interface between designers and backend developers unless they have to design by themselves as well, in which case they become an interface between users and the backend/data.
The Javascript community is full of amazing people, truth is, without the community, I wouldn’t know what I know about Javascript and programming and general, the fact that we live in a world where there are people who dedicate their time, effort, and in some cases money to share their knowledge with the world still blows my mind. Up to the point of admission to a software engineering school, I’ve been self-teaching Javascript and web development, it's been a journey and I’m ready for the opportunities and adventures ahead (that's another article topic I plan to get into).
If you write Javascript code every day, it’d be nice to hear from you! If you think Javascript sucks, that's fine too, let me know in the comments!