> The Killer Feature: |> with Auto-Tracing. No other language has this combination
Of the languages listed, Elixir, Python and Rust can all achieve this combination. Elixir has a pipe operator built-in, and Python and Rust have operator overloading, so you could overload the bitwise | operator (or any other operator you want) to act as a pipeline operator. And Rust and Elixir have macros, and Python has decorators, which can be used to automatically add logging/tracing to functions.
It's not automatic for all functions, though having to be explicit/selective about what is logged/traced is generally considered a good thing. It's rare that real-world software wants to log/trace literally everything, since it's not only costly (and slow) but also a PII risk.
Rust is really not built for pipelining. It is extremely cumbersome to do even moderately sized chains of maps, filters, etc.
Python's scoping and mutability make it an extremely poor language for pipelining.
In Rust, wouldn't implementing BitOr for Fn/FnOnce/FnMut violate the orphan rule?