I like the way the various approaches are presented here, though the author briefly mentions a factor which I feel like really short circuits the entire discussion: error messages. Most people readily agree that recursive descent parsers can provide the best possible error messages, which if you're writing a compiler in 2020 seems like it trumps all other considerations (especially considering you can also get the best possible performance via recursive descent).
The static typing of LR is nice, but trading off user experience for developer experience seems like a bad deal.
The static typing of LR is nice, but trading off user experience for developer experience seems like a bad deal.