So, it's not for me, especially given the examples. As usual with these kinds of things (fish, zsh, etc) this really has everything to do with taste, especially since bash has such a difficult syntax...at least for those who aren't used to it. Even to this day, years later, I have to look up bits and pieces here and again if I don't use some of the ${}-type substitutions frequently.
Author of Elvish here, glad to see it's on the homepage again :) AMA.
I'm impressed/jealous of engineering folks who can build nice, clean, elegant web sites for their projects. Do you all just know enough web design stuff to do this on your own? Or did you hire someone?
Cute choice of website elv.sh using the top level domain for Saint Helena [1], which even mentions
> For the .sh file extension type, see shell script.
I was expecting a programming language that was based on Tolkien's Elvish languages of Quenya or Sindarin (the way that some programming languages have been based on non-English languages) and although this isn't the case, I see in the list of modules for Elvish that someone has written a command to give the current date in Sindarin, so there's that.
Wow, this looks awesome and carefully designed! It even has an official VSCode plugin with a language server[0]. Well done, author!
[0] https://marketplace.visualstudio.com/items?itemName=elves.el...
So many better shells! I stay with bash because it's the standard, but it sure would be nice if everyone could switch at the same time.
I don't see infix math though, which is one thing I'd really like to have in a shell, although maybe that better done with a one letter alias to Python or the like.
This closure syntax, with the vertical bars around the parameter:
peach {|h| ssh root@$h[name] $h[cmd] } $hosts
Does it harken back to some popular language? I first encountered it in nushell but now that I've seen it in elvish I'm wondering where it came from.Really nice shell! I'm giving it a shot. I appreciate that it's got a coherent design, a minimal footprint, and is easy to get up and running with. Might start migrating some of my test scripts from Bash to this given how clunky lists and looping are in Bash.
Elvish: what Sean Connery calls the King of Rock and Roll
Looked around a bit and didn't see anything about forks, does it have a wrapper for it? It's not clear from the introductory material how the background jobs work, if they can be IPC:d and foregrounded and so on.
It's one of the things that keeps me reaching for picolisp, the 'fork convenience function is quite nice for doing interactive parallel 'batching'.
So I should change my shell, have it deployed everywhere, and learn a new language so that I can change:
for x in *.jpg; do
gm convert $x ${x#.jpg}.png
done
to for x [*.jpg] {
gm convert $x (str:trim suffix $x .jpg).png
}
Is there a "checklist" for writing your own shell? Or a comprehensive guide?
This looks very cool, and I've been having a lot of inspiration to write my own shell, but I want to make it vaguely compatible with my system.
POSIX compatibility might be overkill for the start.
Marketing slogan for the conference T-shirts: "Elvish is not dead" ?-)
You're welcome.
I really like the design of that webpage.
I like Elvish. It's clean, consistent and stable. Writing a shell script in Elvish is so much more productive and simpler than, say, bash. There are are also fewer pitfalls and tricks you need to master.
The Elvish shell language doesn't change much which is nice nowadays. The Elvish executable has also got a built-in lsp which is another nice touch.
Finally it is a "proper" shell because it has job control (which other new age shells like nushell don't).
P.S. I like nushell too which has got more features, is more powerful but is still evolving. Maybe in a couple of more years it will stablize like Elvish already has. There are lots of similarities between Nushell and Elvish scripting language. I would recommend either of them.