Pixie https://github.com/pixie-lang/pixie looks like it should address that nicely.
It's just another lisp, right? Common lisp already fixes it (or never broke it in the first place):
> cat test.lisp
(prin1 "hello, world")
> time clisp test.lisp
"hello, world"
real 0m0.019s
user 0m0.011s
sys 0m0.008s
> cat test.clj
(print "hello, world\n")
> time clojure test.clj
hello, world
real 0m0.929s
user 0m1.283s
sys 0m0.046sthanks -- i didnt realize #1 was the case, & good point about the pipeline loop... I guess since I just use the CLI utils in different ecosystems it doesn't really occur to me how they are written, nor do I really care.
But I understand on principle, for example I work on JVM & hate when ppl bring in random code that make it hard to test across the whole system. Seamless integration of all tools & unified protocols are nice.
For any single long-running application that doesn't spawn more processes, of course it doesn't matter - but most performance issues only matter for some set of applications.
I think it's such a common concern because 1) people often start out writing CLI utils as they learn their way around a language, 2) people would love to see Clojure be better for this use case, and 3) it's one of the few things to complain about.