Thinking about syntax

Unexpectedly learning from a small side project.

Learning a new tool is frequently worthwhile for more reasons than a direct benefit toward development speed or efficiency. Whether that tool is a language, library, or text editor, it can expose you to new ways of thinking.

Although I very much enjoy learning new tools, I don’t have many compelling opportunities to make them — my daily work as a front-end software engineer consists of developing websites and web applications, integrating and building from preexisting libraries and tooling.

A few days ago, I starting working on a syntax theme for the Atom text editor. It’s not a technically difficult project by any means, but it opened my eyes to a few things I don’t usually think about when developing application software. For instance, I doubt I had actively considered before that JavaScript’s typeof is an operator rather than a keyword.

That’s a concrete example, but in an abstract sense, looking at code as a collection of tokens and thinking about how those interact is something I typically do subconsciously. Working on this theme has encouraged me to actively look at code in a different way than usual.

Another note I’ve taken from this is the benefit of working with tools I’m comfortable modifying. Atom is written in on a web-based platform, so writing a plugin or extension is perfectly natural to me.

I look forward to improving this syntax theme, and I’ll have an eye out for other opportunities to explore the world of tools in the future.