why?
Because bash feels clunky to write and work with for anything non-trivial, especially compared to other scripting languages.
Why not another scripting language (no compile necessary)?
Because bash and sh are installed nearly everywhere. Any other scripting language means the user is required to have that installed, and that is far less likely to be the case.
If I could write my scripts in a nice syntax, but be sure my users will be able to use it effortlessly by distributing to them compiled versions, then that would make both of our lives easier!
Thoughts? Are there any languges that do this?
Unfortunately shell script is not as portable as you might be anticipating. Different distro run different shells, with different settings, and also different tools. Think BSD grep vs GNU grep.
I've seen multi distro scripts that are also able to bootstrap their own assets for each distro/architecture. Don't see why you wouldn't be able to check that considering
/etc/os-release
exists in pretty much every unix like environment.And having it run on a specific shell type could also be an option.