Jake Worth

50 Days of Code

October 31, 20181 min read

Recently, I hit Day 50 of the ‘100 Days of Code’ challenge. I’ve been focused on language design, and I’d like to pause and reflect on that experience.

I started by building a language written in Ruby called Awesome. I’d been eager to explore language design for most of this year, and this was a great introduction. Next, I moved into my current project, a language written in Go called Monkey. Monkey has been a much more challenging (I’m learning Go on fly) and satisfying endeavor. I’d like to thank Marc-André Cournoyer and Thorsten Ball for the incredible books that guide this journey.

Language design fascinates me. In my daily work, I live in frontend JavaScript code. Paraphrasing Steve Jobs, it’s a high floor of the technology skyscraper. From that vantage point, crawling through a collection of tokens is exhilarating. It’s not quite low-level, but it feels that way to me.

I love how simple logic slowly builds into something mind-breaking even to most programmers. I love how small decisions inform the user experience. I enjoy thinking about design tradeoffs that people have grappled with since the beginning of programming.

I hope that these projects help me write better code. I’ve gained a lot of empathy for language creators and maintainers; never again will I listen uncritically to the “this language is bad and here’s why” school of thought. It’s almost always a bad argument.

This challenge has been fun, even on the days when it’s hard. I’m committed to hitting Day 100, and I anticipate spending most of that effort on Monkey. There’s much to learn.

Each week, I write an email about React. It's a collection of quotes, news, conference talks, and documentation curated be me to help you get up to speed on this exploding ecosystem. Join my subscribers today by subscribing to React Explained.

Jake Worth

I'm Jake Worth, a web developer. Home About Now Newsletter