Dōji Devlog #0: ???

Welcome to the first devlog entry of Dōji, a simple scripting language that I'm building!

Most of my knowledge of programming languages and interpreters comes from the amazing Crafting Interpreters book by Robert Nystrom, but that doesn't (yet?) cover a bunch of features that most modern languages have.

So I'm building Dōji to learn about these missing features. This includes

Dōji will mostly look like JavaScript, with some simplifications, different keywords and added pattern matching. Here's a snippet of the syntax:

let {
  Debug,
  Fiber,
} = import("std");

let my_first_fiber = Fiber.new(fn () {
  Debug.print("Hello from my first fiber!");
});

let my_second_fiber = Fiber.new(fn () {
  Debug.print("Hello from my second fiber!");
});

my_first_fiber.resume();
my_second_fiber.resume();

Debug.info(my_first_fiber.is_done());
// => true

Oh, and the name Dōji is just "concurrent" in Japanese. I’ve learned that translating random words to Japanese is an easy way to create (mostly) unique and very pronounceable names.

You can check out the code for the project here. That's all for now, onwards to the next devlog entry!

Hello, world!

I wanted to write more frequently, but in smaller chunks, and I think the microblog format suits me the best (at least for now). This site aims to capture my "stream of consciousness", which usually includes content about compilers, programming languages and web development, but also probably some life update stuff along the way.

Right now, this site supports basic Markdown with headings, links, bold and italic text, quotes, and code. I’ll aim to support images and other embeds in the future!