5 ms·
I've always been a bit surprised by the lack of innovation in *nix shells. Despite huge advancements in technology, bash is pretty much the same as it was ~25
by Osiris 13y ago
I've always been a bit surprised by the lack of innovation in *nix shells. Despite huge advancements in technology, bash is pretty much the same as it was ~25 years ago. Personally, I use fish shell everywhere I can, including on my Mac and Linux servers. Bash scripting works, but this idea looks to make scripting a much simpler and more straight-forward task.
- midas007 13y agoHave you tried zsh?
- xiaq 13y agozsh is not innovative. It's overgrown.
- midas007 13y agoDefine innovative. One major goal of any shell is to get nasty shit done as fast as possible. Conventions accreted over time and breaking those too much diminishes the viability of an alternative project. rush Ruby Shell [1] might qualify, but it has the problem of any "innovative" shell: different special syntax and doing something so different that the transition curve is too steep for most people. Zsh is kind of weird because it feels academic with the option of having every feature imaginable AND not having hashes or signatures with releases. The good thing about zsh is that most of it isn't loaded by default. It has modules. It has lots of neat options lacking in other shells such as case-correction and interactive completion. That's all kinds of innovative. Bash is the mysql of shells. It's pervasive so there's loads of pressure not to innovate. I would like to see shells' community get more like node by having minimal, focused packages of added functionality that each do one thing well, because having to declare the same primitive functions to do something DRY and useful is a pain. [1] https://adam.heroku.com/past/2008/2/19/rush_the_ruby_shell/ https://adam.heroku.com/past/2008/2/19/rush_the_ruby_shell/
- xiaq 13y agoIf you are interested, I'm working on (another) experimental Unix shell: https://github.com/xiaq/das https://github.com/xiaq/das It's still in the stage of design (even the name is not actually decided!), but I've implemented a few components here and there, most notably syntax highlighting, tab completions for file names, running external programs and pipelines for external programs. I will announce it when I personally use it day to day. :)
- reirob 13y agoI agree with you. It is really interesting to see that in the scripting/programming language domain there is really an ongoing movement whereas on the shell side nothing big happened and POSIX only is just incrementally changing or there are alternatives with mostly cosmetic/ergonomic changes only (e.g. fish). I guess it has to do with the fact that the set of nix commands is the library, every shell has to support the process calling mechanism and conventions like environment variables and every shell must really provide concise syntax for files, streams, IPC, environment variables and jobs - which in "normal" programming languages is less of use. This bugged me so much that I tried to find if there have been any alternatives for nix shells that are completely different from the POSIX shells - and the only ones that I found interesting are ES and SCSH: https://news.ycombinator.com/item?id=6979170 https://news.ycombinator.com/item?id=6979170 My preference is for ES. However there seems to not be much of community around. I would really love to see a bit of love for these projects.