Shells are Two Things. The Python scripting example reminds me of a blog post written by Mathias Fußenegger who uses Haskell in interpreted mode as one of his scripting engine (see Why Haskell became my favorite scripting language), even if this totally unrelated to the points raised by Fernando Borretti.