1. Re-implement Bash and similar shells in a modern programming environment with an eye to extensibility
2. Make good debugging tools because this is now easier because (1).
3. Create a new language that extends Bash, similar to how ES6 extends ES5, for a gentle migration of large shell scripts to a safer language
What, other than static parsing, should this endgame language offer? Where does it fall, on the gamut from Bash to Haskell? We already have quite a few languages that offer a souped-up scripting experience.
When my bash programs become too long, I usually reach for Ruby, which has convenient back-ticks syntax for shelling out, and many convenience methods on its built-in types for mashing strings and such. But like Bash, too much ruby eventually becomes an unmaintainable mess without strict standards enforcement. What will Oil offer for me, over Ruby?
Here's how I'd order existing languages on a scale from Bash to Haskell:
1. Bash with `set -e`
2. Perl
3. TCL (has declared arguments, after all...)
4. Ruby
5. Python
6. Golang
7. Java
8. C++
9. Ocaml
10. Haskell