What is JavaScript

What is JavaScript good for?

JavaScript is a high level programming language. Similar to HTML and CSS, JavaScript is a core web technology used in the vast majority of websites on the internet.

There are JavaScript runtimes for backend environments such as NodeJS and Deno. This allows developers to program both frontend client-side web applications and backend server-side applications using the same language and in some cases a shared code base. For this reason, many JavaScript developers can be described as fullstack developers.

JavaScript is a dynamic language. This can make it very easy to prototype new solutions, but it can be a challenge for developers coming from a typed background or on large applications as a code base scales. There are however multiple approaches and tools that greatly mitigate against this issue, such as TypeScript and effective use of JSDocs.

JavaScript should not be confused with Java, it is neither a form of Java, nor associated with Java. They are two completely different high level programming languages.

JavaScript is one of the most popular programming languages and arguably has the richest ecosystem in terms of common libraries and frameworks.

Many languages use a thread-based system for handling concurrent processes. JavaScript however uses an event loop system, and touts itself as being non-blocking. This can make runtimes such as NodeJS and Deno more performance as web server languages than clunkier thread-based frameworks.

What is JavaScript not so good for?

If you are serious about wanting to be a game developer, you would be better off learning a language such as C++ or C#. It is possible to create simple games with JavaScript as there are numerous game engines such as Phaser and renderer/animation tools such as ThreeJS and Pixie, but these do not come close to Unreal Engine or Unity.

JavaScript and NodeJS have a few machine learning packages such as TensorFlow. However the majority of AI developers wanting to use a high level languages opt for python. Support for JavaScript is often limited and documentation can be very difficult to find.

JavaScript is not a low-level programming language, if you want to do small embedded development or something like writing operating system kernels, use a language such as C++, Rust or Zig.