Sounds like what you want is more along the lines of the Ion shell[1], rather than Elvish. It's written in Rust, and the performance well exceeds Dash (written in C), despite having a lot of features that Dash is unable to do efficiently. Go's just not a good a language for writing a shell, especially once you get into job control and signal handling, or if you care about performance.
Some of the great features you won't find in Bash or Zsh are the string and array methods[2], first class arrays[3], slicing syntax[4], tuple assignments[5], optionally type-checked assignments[6], ability to use functions within pipelines, typed function parameters, a much simpler syntax, and more. Many of the best ideas from Fish, Oil, Elvish, Bash, Zsh and other shells have been implemented or are in the process of being implemented.
Some of the great features you won't find in Bash or Zsh are the string and array methods[2], first class arrays[3], slicing syntax[4], tuple assignments[5], optionally type-checked assignments[6], ability to use functions within pipelines, typed function parameters, a much simpler syntax, and more. Many of the best ideas from Fish, Oil, Elvish, Bash, Zsh and other shells have been implemented or are in the process of being implemented.
- [1] https://github.com/redox-os/ion/
- [2] https://doc.redox-os.org/ion-manual/ch05-05-method.html
- [3] https://doc.redox-os.org/ion-manual/ch04-02-arrays.html
- [4] https://doc.redox-os.org/ion-manual/ch06-00-slicing.html
- [5] https://doc.redox-os.org/ion-manual/ch04-00-variables.html#M...
- [6] https://doc.redox-os.org/ion-manual/ch04-00-variables.html#T...