6 votes

Michael MacInnis: Oh a new Unix shell - BSDCan 2018


  1. MacDolanFarms

    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 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.

    2 votes
  2. drg
    If anyone wants to go directly to their GitHub (personally I dislike videos), here it is.

    If anyone wants to go directly to their GitHub (personally I dislike videos), here it is.

    2 votes