This is a blog about JavaScript, gamedev, AI, and other interesting aspects of programming. The focus here is not on tutorials which teach how to use various libraries, but rather to explain how and why different concepts work.

Many of the posts will use nothing but the most basic JavaScript syntax. No ES6, no TypeScript, no modules, most of the time not even classes. While all those things are useful, they commonly get in the way of understanding the important bits about core concepts. If all we need is an array and two functions, we will simply use an array and two functions, no unnecessary abstractions. This blog is not about software engineering, software architecture, or best practices for building robust applications. It’s about programming.

Why JavaScript?

JavaScript runs in the browser, making it extremely easy to write code examples that are immediately executable within the developer console. Most of the articles will be written in a way that the reader can try stuff while reading through the article to get a better understanding. I’m also explicitly using barebones ES5 to avoid additional obstacles when running the examples.

I do recognize that there are other options, such as, or using various transpilers within JSBin or whatnot. But all of these steps create an additional barrier for the reader. Being able to copy paste the code into any JavaScript environment, be it a JSBin, the developer console, a Node.js file, or anything else, makes it easier to interact with the concepts that are being explained.

To be completely honest, I don’t think JavaScript is a good language. I don’t even think it is a good teaching language in a regular setting. But because everything here is presented online, it does reach the widest audience and provides the lowest barrier to entry.