BSDCan2018 - 1.54
BSDCan 2018
The Technical BSD Conference
Speakers | |
---|---|
Michael MacInnis |
Schedule | |
---|---|
Day | Talks #1 - 8 June - 2018-06-08 |
Room | DMS 1110 |
Start time | 14:45 |
Duration | 01:00 |
Info | |
ID | 931 |
Event type | Lecture |
Track | Hacking |
Language used for presentation | English |
Oh, a new Unix shell
Oh is an attempt to reduce the Unix shell's strangeness while retaining its fundamental characteristics. Oh is familiar and recognizable as a Unix shell but with:
- A more consistent and extensible syntax;
- Richer data types, including first-class pipes, objects, and methods; and
- Support for concurrent, higher-order and modular programming.
You love your shell. You’ve been using it for ages and are extremely efficient with it but there are times when its little quirks are enough to drive you mad. Maybe it's:
- Word splitting turning a file name with spaces into multiple file names that may or may not exist;
- An undefined variable sending rm on a mission to delete all the files in the root directory;
- Having to resort to various workarounds just to write a function that returns a string; or
- Wishing there was some option for importing a module other than sourcing a file and dumping everything into the current context.
You know that because the Unix shell "must satisfy both the interactive and programming aspects of command execution, it is a strange language, shaped as much by history as by design", but the Unix shell feels overly strange.
Oh is an attempt to reduce the Unix shell's strangeness while retaining its fundamental characteristics. Oh is familiar and recognizable as a Unix shell but with:
- A more consistent and extensible syntax;
- Richer data types, including first-class pipes, objects, and methods; and
- Support for concurrent, higher-order and modular programming.
Oh is MIT-licensed, open-source software and is available on Github
The author currently uses oh as his login, and primary interactive, shell on a machine running FreeBSD.