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.