I'd like to give a shoutout to jq for (non-JSON) text processing, and also as an almost-replacement for awk:
echo "foo bar" | jq -Rr 'split(" ")[0]' # prints foo
I say 'almost', because jq right now can't invoke sub processes from within, unlike awk and bash. But otherwise, it's a fully fledged, functional, language.