Skip to content
andychu edited this page Jan 19, 2017 · 39 revisions

Here are the goals of the oil project, roughly in chronological order.

  • Design a new shell language with an easy upgrade path from bash, the most popular shell in the world. So far we've written a very compatible bash parser, so that bash code can be auto-converted to oil.
  • The language has a different syntax, but a superset of bash semantics.
  • Treat the shell as a real programming language. Use case: writing completion functions. Completion functions in bash are fairly difficult have a bad API involving globals.
    • selected influences: Python, R, Ruby, Perl 6, Lua (API), ML, C and C++. Power Shell.
  • Combine shell, awk, and make.

Applications

  • System Administration -- Building Linux distributions. Startup scripts, configure and build scripts.
  • Distributed Computing -- Building containers, specifying remote jobs. Feedback and Monitoring.
  • Scientific Computing -- heterogeneous "big data" and small data pipelines. The language should scale down as well as scale up, i.e. low startup latency for small jobs.
  • Interactive Computing -- a general purpose REPL.

Longer Term Goals

  • A toolkit for little languages -- lexing, parsing, AST representation, etc.
  • Metaprogramming
Clone this wiki locally