May 16, 2006 — jao

The developers of scsh, the Scheme shell, have just released version 0.6.7 of their awesome Scheme implementation. Scsh is, in my opinion, simply the best scripting language around, by a long stretch. It was initially implemented by Olin Shivers on top of scheme48, as a result of his problems with traditional shell languages: he wrote a detailed rationale on the design principles behind scsh that is full of insight and a must read. In addition, this page is full of writings by Olin and other minds behind s48/scsh (like Michael Sperber or Martin Gasbichler) with interesting details on many aspects of scsh’s implementation.

During the last years, scsh has become, slowly but surely, my default scripting tool (emacs’ eshell is also fine, but, you know, elisp is not scheme), my only nit being its lack of a shell prompt powerful enough to fully replace zsh or bash. But, lo and behold, it seems the writing may be on the wall for my bash/zsh’s days: a beauty called Commander S is well underway. Commander S is an interactive frontend for scsh, based on the ncurses library, described in the workshop paper Commander S – The shell as a browser, by Gasbichler and Knauel. In the author’s words:

Commander S is a new approach to interactive Unix shells based on interpretation of command output and cursor-oriented terminal programs. The user can easily refer to the output of previous commands when composing new command lines or use interactive viewers to further explore the command results. Commander S is extensible by plug-ins for parsing command output and for viewing command results interactively. The included job control avoids garbling of the terminal by informing the user in a separate widget and running background processes in separate terminals. Commander S is also an interactive front-end to scsh, the Scheme Shell, and it closely integrates Scheme evaluation with command execution.

Although it’s not yet released, the brave and bold among you can already give it a try from its CVS repository.

(I wish i had time for Conjure: one of the features i had in mind was some sort of interactive build tasks inspector, and Commander S’s plug-ins look like an excellent implementation vehicle for such a thing. You’re not looking for a nifty scheme project, are you?)

Tags: conjure, scheme, scsh