flâneur — a map of the web's best reading

5 Years in the Making | Expression language

expr-lang.org · 843 words · saved by 1 readers

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