| CARVIEW |
Es:
a shell with higher-order functions

es
Es is an extensible shell. The language was derived from the Plan 9 shell, rc, and was influenced by functional programming languages, such as Scheme, and the Tcl embeddable programming language. This implementation is derived from Byron Rakitzis's implementation of rc, and was written by Paul Haahr & Byron Rakitzis.
Why?
Es is an extensible Unix shell with first class functions, lexical scope, exceptions, and rich return values (i.e., functions can return values other than just numbers). Es's extensibility comes from the ability to modify and extend the shell's builtin services, such as path searching and redirection. Like the Plan 9 shell rc, it is great for both interactive use and for scripting, particularly since its quoting rules are much less baroque than the C or Bourne shells. -- Paul Haahr
Want to know more? Check out:
- Haahr & Rakitzis's paper Es: a shell with higher-order functions (PDF)
- the manual page (PDF)
- the Example code
- the GitHub discussions
- the official (old) mailing list archives
- the official (old) ftp site
Resurrection?
Es had its heyday from '93-'96; the mailing list was apparently last active in 2002. Nevertheless, for those who've only used a Bourne-shell derivative, es is a breath of fresh air. This site is simply me (James Haggerty) trying to unofficially pull together all of the patches and information and keep es functioning on modern Unices.
See also...
Es has had a few efforts to continue development; these include:
- Frederic Koehler's C++ version, with language changes
- Olaf Rogalsky's job control version
- Kevin Lipe's OSX changes
- Burton Samograd's Google code project
Copyright
Es is in the public domain. We hold no copyrights or patents on the source code, and do not place any restrictions on its distribution. We would appreciate it if any distributions do credit the authors.
Enjoy!
Paul Haahr & Byron Rakitzis
Maintenance by:
- Soren Dayton (0.9beta1)
- James Haggerty (post 0.9beta1)