Elvish – An experimental Unix shell in Go
Huh, wow.  I was recently thinking about and prototyping a shell seemingly very similar to this.  Explicit goals I have in common include:<p>- Focus on the lispy parts of sh - prefix functions everywhere and a simple, regular syntax.  Not that anything with FD redirections as a primitive can get anywhere near S-expressions' simplicity, but shell is naturally more regular than most programming languages (even if bash goes out of its way to be complex).<p>- Be a real programming language that doesn't make you reach for awk or perl (separate, incompatible environments) to do moderately complex things sanely.<p>- Emphasize using pipelines rather than 'backwards' function application to naturally string together operations.<p>- Emphasize lambdas.<p>- Typed (i.e. non-string) pipes.<p>- Syntax highlighting.<p>- Nonzero-exit modeled as exceptions.  (I think elvish is doing this, but I haven't reviewed the code in detail.)<p>Things I want but don't see in the readme include:<p>- A story for passing typed data around between processes (potentially in different languages) rather than just builtins.  I'm not sure exactly what the story should be, but it should exist.<p>- A somewhat more succinct 
syntax, with metaprogramming kept in mind.<p>- A JIT, eventually.<p>There seems to be a lot more in the first category than the second... give up?  But elvish isn't anywhere near done, and I want to do things all my own way for once.  I'll keep going, and post my project on HN if it gets anywhere. :)<p>But to the OP, congratulations on elvish.  Hope it gets finished and seriously takes off.