3 ms·
I find rc shell to be much more logical than a normal sh, but nowadays it's only used by a few people, so for the new users there is little sense of learning it
by zserge 11y ago
I find rc shell to be much more logical than a normal sh, but nowadays it's only used by a few people, so for the new users there is little sense of learning it - most people haven't even heard of rc!
I think that are two ways to change this situation:
1) For normal CLI users - let's pick the most up-to-date implementation (tobold's rc, es, inferno's sh, suckless' rc...) or write one from scratch if that would be easier. Then think about writing plugins for git, for colorful prompts, for autocomplete, for common development tasks etc. Since rc language is easier and cleaner than bash - writing plugins and extensions for it should be easier. Of course, many blog posts must be written showing how superior it can be comparing to bash in some cases and how easier it is to learn. Once the resulting rc gets into every linux distro and mac and there will be known repositories like ohmyzsh - people may start switching from bash to rc, not from bash to zsh.
2) For embedded systems - from my experience sh scripting is normally done not for the desktop, but for tiny embedded systems, where busybox is a definite winner - maybe an alternative can be made by using rc shell and Plan 9 set of utilities? So we get a single static binary (again, rewrite rc in Go?) and a small set of tools, that might even work on windows. I think it could be smaller, like toybox, but with a usable shell interpreter.
Since most implementations of rc are now unmaintained (correct if I'm wrong) - probably it would be better to rerite it in some modern language (Go, Rust, maybe C++), cover with tests and start promoting it. If so - I would be happy to join the development (I started it once, ended up with just yacc-generated AST parser, but I though it might become a huge project that nobody is interested in, so I suspended the development).
- codemac 11y agohttps://github.com/rakitzis/rc https://github.com/rakitzis/rc is the official location of byron's rc, and is now actively maintained by Toby Goodwin. Please don't reinvent the wheel - rc compiles down to a correct nice little binary without a bug I've run into in the while I've been running it (since I've worked with byron). And busybox is nothing to hold up, what it lacks in disk usage it also lacks in correctness.
- zserge 11y agoThanks for the link! I like how the sources look (much cleaner than the original plan9 rc), I like the way the addons work with this rc implementation and in general the project makes good impression. Sad that it doesn't have many stars on github, and doesn't have a nice readme yet (I see it is about to be added in the developer branch). I find doubtful the support of multiple readline-like libraries (and no linenoise though) though. I would rather prefer to have one, but fully supported (with custom completion etc like in zsh). I still need to check how this feature could be added.
- rlonstein 11y ago> I find doubtful the support of multiple readline-like > libraries (and no linenoise though) though. I would > rather prefer to have one, but fully supported (with I myself wanted linenoise, so I took it as a minor challenge and put up a pull-request with the feature. The multiple line edit versions is a feature since there are many non-Linux systems out there where readline was not present, supplanted by the native one, or was a pain in the neck to build. A small, statically-linked shell with rational syntax is very nice.