Hacker News new | ask | show | jobs
by chubot 2063 days ago
Because you can run your bash scripts with Oil. The tagline is:

It's our upgrade path from bash to a better language and runtime. [1]

It's basically the same as JS -> TypeScript, or PHP -> Hack. It's a saner language (and runtime) that runs existing code.

-----

Shell is good for creating Unix systems because of the tools it provides. Ones that deal with the file system and heterogeneous processes (i.e. stuff you didn't write in different languages).

It's hard to explain, but if you work in that area, you'll very quickly see it. You could also do something like Linux From Scratch [2] and it will be very clear why shell is used.

[1] http://www.oilshell.org/

[2] http://www.linuxfromscratch.org/

1 comments

Seems like a big part of why shells are so much better for certain tasks is because of a failing of more general purpose languages. Working with the filesystem, spawning processes, and orchestrating io streams. Shells could almost be considered DSLs for these things, plus some session / state management.

So I think a good question is this: why can't we make these things equally easy to do in a more general purpose language?

Because on the shell side you want simplicity and on the programming side you want control. Shell pretty much has to default to "foo" meaning "execute command foo from $PATH" or almost every line will have useless overhead. GP language needs to make that explicit or it will be a footgun where you don't know what's a command / variable / function. And that's before we get into how the file descriptors / redirects are handled.

One shell which tries to merge those is ipython with the sh profile https://ipython.readthedocs.io/en/stable/interactive/shell.h...

TCL, Powershell, and Rebol are probably the closest I've seen in this area.