I am having headaches.

All of my blog posts don’t go through a private draft and review process. I just write my thoughts in the clearest way possible in one take.

I heard that an episode of The Bear was shot that way and I watched it and it was great.

This is the first time, that I am going to use my blog as my personal space on the internet. Just like Drew DeVault does.

I am learning how to build programming languages. I have no idea how they are built but I am very curious about how they are built.

Same way I am curious about databases, browsers, operating systems and even application routers.

For learning I am using Crafting Interpreters by Bob Nystrom.

There a free version of the book that can be read on the web (which is increasingly becoming my favorite medium for reading things), it has fantastic reviews and the writer actually builds programming languages on a regular basis.

Fun fact: When you get to the section "About Robert Nystrom" on the Crafting Interpreters website, hover over the sentence  "number of hobby languages" then hard refresh the page a couple of times. The link behind that sentence would change. So far I have seen Wren, Magpie, Finch and Vigil.

My only issue at the moment is that I am not familiar with either of the implementation languages:

Java and C.

I have taken it as personal challenge to learn both languages well before coming to the book but I am finding hard to do so.

So far, I have tried only Java since it is first language I would encounter while working with the book.

Java is making my head ache 😫

I want to work through the pain but it is hard to do so. I am finding it hard to grasp concepts in the language. To even understand any at all.

The more I stare at Core Java for the Impatient, the more my head hurts.

I found out about an alternative book written in my darling language Go, Writing An Interpreter In Go.

Now, I like the fact that I would be implementing the language in Go but the book comes at a price.

The author, Thorsten Ball, did well, according to reviews, but he works at Zed whilst Crafting Interpreters author works on the team building Dart so in my opinion that makes Robert a better language builder

And, based on reviews on Reddit it seems Crafting Interpreters would be a better choice since I want to spend quite some time learning programming languages and compiler designs.

As you might have guessed, I am not going to use Writing An Interpreter in Go.

I used Go for pass 9 months. I want to switch but I just wished I would not be switching to Java.

I can decide to translate the code to Go but it would be unnecessary work.

Java is a lot of work too. Too many concepts. It is just hard to fit into my head fast enough.

I guess I would just take it slow. No rush.

In six months, I would have Java, C and Crafting Interpreters sitted well in my head.

That’s what I would do.

I am no longer having headaches.