-
-
Notifications
You must be signed in to change notification settings - Fork 166
Project Goals
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