> ... Go and node.js are popular and both do asynchronous stuff effortlessly (even though they are single threaded typically)
I know that I'm being very pedantic here, but Go is not a "typically single threaded" language. Go has as fine control over it's threads (goroutines) as C does over it's threads. Go is very capable of true parallellism.
I wrote this (at work) to update versions in our projects from one place, and even partial versions. Saves me some headache and mental space every time. I know there are competitors but none I found was just simple, everything else was bloated with Git-integration or regex search instead.
I know that I'm being very pedantic here, but Go is not a "typically single threaded" language. Go has as fine control over it's threads (goroutines) as C does over it's threads. Go is very capable of true parallellism.