
Why I replaced regex with plain English
All developers know the relief of finally getting that regex to work. Then a few months later, nobody, including you, can read it. I got tired of it, so I started working on Match: a pattern matching language where you describe what you're looking for in plain English. Designing a language that reads like English seems straightforward, but keeping it organized and consistent was way more work than I anticipated. The more walls I encountered, the more opinionated trade-offs had to be made. Should matching be greedy with backtracking, or greedy with commitment? I chose PEG semantics. First match wins, no backtracking. That one decision eliminates an entire class of security vulnerabilities (ReDoS) and makes every grammar predictable. Should grammars be self-contained or composable? Both: you can write standalone grammars or import rules from modules with use "validators" (email, url). Every choice came down to the same question: what would a developer expect to read six months from now?
Continue reading on Dev.to
Opens in a new tab



