Philosophy

Unix is my IDE – mkaz.blog

Unix shell programming: the next 50 years

srcanddiscussion

The good

  • Universal language for interoperability
  • Works with anything and is a medium between anything
  • Incredibly expressive (and often efficient) EDSL for stream processing
  • Interactive environment for interacting with the computer

bad

  • insane specification that isn't implemented correctly in anyshell, not even worth diving into
  • too arbitrary - it has infinite flexibility and that prevents it fromdoing anything
  • too dynamic - everything in a shell script is dependent on globalstate, which prevents any form of optimization or program change
  • performance cannot scale because it cannot be optimized

Future

Smoosh
fully formalize and implement the posix shell, showing differencesbetween specifications across semantics

PaSH/POSH
annotation languages as a high level specification interface forinteractive programs, can be used as abstract models for commandbehaviors! This allows for better system specification that can actuallybe enforced (thinking of tools like Alloy here!)

static reasoning
previous bullets name annotation languages that give us informationabout the shell - why not dynamically rewrite and inspect every shellcommand?

Utilities

fuck corrects your last consolecommand. Cool, but obscure unix tools · Kristof Kovacs✈️aas a whole list ofthem. Worth poking around to see what might be useful - in the future!werc - A sane web anti-framework Why I UseSuckless Tools -XeGitHub - casey/just: 🤖 Just a commandrunner GitHub - sharkdp/hexyl: Acommand-line hex viewer

Alternatives

Oil shell is a new Unix shellalternative that can be compiled and deployed as a native executable.Nushell approaches the shellenvironment with structured data.

Configs

Be careful editing bashscripts:\`bash\` tracks the byte position in the file during execution and scanslines accordingly. This example shows a user editing a line that hasdangerous consequences in the file - and even though some dangerous lineis still commented out, the byte offset of everything in the filechanges, so the dangerous piece of code is executed. Insane. It's okayto load your program into memory before running it - really.

Revisions
DateHash
2023-02-22
Navigation
Previouscss
Nextprogramming-languages
Uppages