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
Explore this link on the map →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
- Go at Google: Language Design in the Service of Software Engineering - The Go Programming Languagego.dev
- Go | CodeCraftersapp.codecrafters.io
- How Python Grew From a Language to a Community - The New Stackthenewstack.io
- Introduction · Crafting Interpreterscraftinginterpreters.com
- NilAway: Practical Nil Panic Detection for Gouber.com
- How Compiler Explorer Works in 2025 — Matt Godbolt’s blogxania.org
- GitHub - fatih/vim-go: Go development plugin for Vim · GitHubgithub.com
- Langfuselangfuse.com
- Rethinking Visual Programming with Go · divan's blogdivan.dev