Like the article briefly mentions at the end, I'm really a fan of Webpack's approach to configuration -- exporting the configuration from an executable script. It gets around most of the problems outlined here (numbers, comments, multiline strings...) while keeping all the JSON niceties. It no longer becomes cross-language, but seems like exporting a config object from an executable is a good alternative.

I agree. Webpack's approach is great, but only for JS projects.

For Scala (or any other JVM environment) I use https://github.com/lightbend/config. It doesn't get better than that.