Even though I'm a backend developer, my main programming language is JavaScript, and the reason is simple:
JavaScript, like English, has many inconsistencies, historical quirks, and flaws, but it is EVERYWHERE.
Atwood's law: "Any application that can be written in JavaScript, will eventually be written in JavaScript".
There is a JavaScript runtime environment on almost every phone and computer—your browser.
You can’t run away from it - One of my friends hates English and uses it only because he needs it for his PhD. Same with JS. It’s everywhere.
Personal Opinion: I didn’t struggle much because of my choice of main programming language. Other issues are more challenging.
*Why Use JavaScript on the Backend? *
- Unified Language Stack (Full-Stack Development) - You don’t need another programming language. No Context Switching.
- An asynchronous, single thread, Non-Blocking I/O Model
- Asynchronous means that tasks can run independently of the main program flow
- A single-threaded system means the program can only execute one task at a time
- Input/Output: Great for I/O tasks like Network requests, Data queries, API calls
- Asynchronous means that tasks can run independently of the main program flow
- Scale applications horizontally AKA Use multiple servers
- Fast Execution Speed
When to avoid it:
- Scale applications vertically AKA CPU-intensive processes.
Tip: Match your language choice to your goals
Don’t use Javascript to develop an AAA video game
- Technically, you could achieve this using worker threads or child processes, but this is not Node's default or ideal use case.
Next topic: Monolits vs Microservices. Stay Tuned!
Top comments (3)
I like the concept of comparing a computer language to a spoken language, and I agree Javascript is the English of programming languages.
I would suggest that COBOL is the Latin of programming languages. Latin, a dead language that no one has ever heard spoken, yet some people still insist on using it.
Completely Agree!
javascript is everywhere.