5 Years in the Making | Expression language
It's been 5 years since I started working on Expr. It's been a long journey, and I'm excited to share some of the highlights with you. Introduction Five years back, at Aviasales, we were transitioning our search engine from Python to Go. Our task was to revamp our business rule engine, but we were stuck without the right language to script these complex rules. I stumbled upon govaluate, but it was like finding a boat with holes – abandoned and not seaworthy for our needs. The Birth of a New Language That's when I rolled up my sleeves. We needed a language that wasn't just about doing the job; it needed finesse – features like all() and none() predicates that you now see in Expr. So, I started from scratch, with a simple idea and ANTLR, a parser generator, as my initial tools. This first language version was basic – turning input into an AST and walking through this tree to get results. It was a humble start but it worked, and it worked well. Evolving with Need As we stretched the capab
It's been 5 years since I started working on Expr. It's been a long journey, and I'm excited to share some of the highlights with you. Introduction Five years back, at Aviasales , we were transitioning our search engine from Python to Go. Our task was to revamp our business rule engine, but we were stuck without the right language to script these complex rules. I stumbled upon govaluate, but it was like finding a boat with holes – abandoned and not seaworthy for our needs. The Birth of a New Language & ast . BinaryNode { Operator : "+" , Left : & ast . IntegerNode { 1 } , Right : & ast . Binar
related reading
- Frequently Asked Questions (FAQ) - The Go Programming Languagego.dev
- Learn X in Y Minutes: Scenic Programming Language Tourslearnxinyminutes.com
- Four Days of Go – Evan Millerevanmiller.org
- Parsing Expressions · Crafting Interpreterscraftinginterpreters.com
- Go at Google: Language Design in the Service of Software Engineering - The Go Programming Languagego.dev
- Go | CodeCraftersapp.codecrafters.io
- </> htmx ~ Working With AI: A Concrete Examplehtmx.org
- Introduction · Crafting Interpreterscraftinginterpreters.com
- Astra for Coding: Why Are We Doing This Again?lucumr.pocoo.org
- How Compiler Explorer Works in 2025 — Matt Godbolt’s blogxania.org
- How Python Grew From a Language to a Community - The New Stackthenewstack.io
- The language strangeness budgetsteveklabnik.com