Зі старих часів мав багато скриптів для маніпуляції текстів з grep/sed/awk/sort і хоч такі скрипти писати швидко, якщо потрібно зробити щось нелінійне одразу складність підлітає в рази.
Почав використовувати пітона, але стикнувся з проблемою швидкодії і майже непридатною системою паралелізації (через GIL). Тож зараз починаю використовувати groovy
1) скриптова мова, за компактністю схожа на пітон
2) значно швидша: звичайні регулярні вирази і рядкові функції разів в 5
3) розуміє мову і класи Java
4) як наслідок купа готових високоякісних бібліотек
5) є мовою gradle, що спрощує будування багатоплатформових проектів
Приклад реверсивного сортування (тобто сортування з кінця рядка) однією командою (3,3 млн рядків).
простий (приблизний) командний аналог
rev | sort | rev
real 0m41.518s
user 0m31.278s
sys 0m22.562s
в groovy
groovy -e ' println System.in.readLines().sort{ it.reverse() }.join("\n")'
real 0m23.223s
user 0m33.037s
sys 0m0.898s
тобто процесорний час затрачений майже той самий, але якщо є декілька ядер то groovy працює швидше!
Також якщо сортувати треба лише за якоюсь частиною рядка то в groovy це елементарно, а в командному рядку починаються стрибки.