I actually like Clojure more but even with GraalVM AOT it still tends to take significantly more memory than even naive Rust code (e.g. using Clone everywhere). If you’re looking willing to spend time abusing the borrow checker you can often get memory usage down to like 5% of what you’d get out of Java stuff.