Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bash/Micropython alternatives #1

Open
hugosenari opened this issue Dec 19, 2022 · 4 comments
Open

Bash/Micropython alternatives #1

hugosenari opened this issue Dec 19, 2022 · 4 comments

Comments

@hugosenari
Copy link

I have the same ambition of this project, the only difference was that I have been considering use Nushell instead.

So I would to discuss Micropython alternatives, please not only Nushell, I know there is RFC in Nixpkgs for Oil.

@hugosenari
Copy link
Author

Nushell:

  • JSON/YAML/TOML/... support ✔️
  • Command call ergonomy ✔️
  • Command definition ergonomy ✔️
  • Start Speed on par with bash ✔️
  • Low resources usage 🤷
  • User base ❌ (compared to python)
  • Stability ❌ (<v1)
  • Easy bootstrapping ❌ (there are static builds, but only for x86_64)

Other advantage of nushell would be to pass structured data between command calls, but I am not sure if it's any advantage since every build step is a derivation. It also has its own notion of direnv, I was thinking explore use with nix shell.

Unrelated/Unsolicited info:
On my daily use, I prefer Fish for repl, but Nushell for shell script

@hugosenari
Copy link
Author

Execline:

  • Start Speed on par with bash ✔️
  • Low resources usage ✔️
  • Stability ✔️
  • Easy bootstrapping ✔️
  • User base ❌
  • JSON/YAML/TOML/... support ❌
  • Command call ergonomy ❌
  • Command definition ergonomy ❌

It is supposed to be easy to parsed (I never tried), but its ergonomy hurts for anything more than single command call.

@superherointj
Copy link

superherointj commented Jan 19, 2023

The system core should be efficient and use a very lean shell to not negatively affect closure size (of containers specially). busybox's ash is mostly free (once busybox already includes it). bash uses ~12MB in musl. If ash is used for base core containers size would be around 5MB without any extra effort.

Makes sense to go with a hybrid approach that is efficient at core level and relaxed on a higher level to please users. And optimizations (to ash) would be opt-in.

@hugosenari
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants