-
-
Notifications
You must be signed in to change notification settings - Fork 163
Oil Blog Planning
Blog planning:
-
Leadup: syntactic puns. List a bunch of examples.
-
Recap:
- shell the good parts.
- Shell the bad parts (everyone agreed on this.)
-
There is no more room to add features to shell: bash 4.4. The Literal Anti-Pattern.
-
Why add tables to Oil? Because the output of "ls" and "ps" are both tables.
-
Why add ADTs to Oil? Because we want to actually parse things rather than relying on regexes and macro processing. Sometimes that approach is good enough, but sometimes it isn't.
- Related: Oil and the R Language
- Why Awk? Because once you add hash tables and regexes to shell, which bash/zsh have already done, then it's almost an Awk already. The only difference is the implicit outer loop of awk (for each file, for each line, for each field).
- Why Make? Because 90% of the lines in a Makefile are either variable assignments or literal shell.
-
Interesting facts about other language implementations:
- Clang AST, TypeScript external visitors with "switch", TableGen language in LLVM, sh/awk/C code gen in most shells.
-
Breaking abstractions -- the
git log | python
pipeline is like the Go-style of unicode handling with utf-8. You don't always have to parse, operate, serialize. Sometimes you can just massage the input. -
Remote evaluation.
ssh user@host find -type f -a -executable
sends an expression over the wire, just like SQL does. Orsh
,awk
, etc.