mirror of
https://github.com/foo-dogsquared/wiki.git
synced 2025-01-30 22:57:59 +00:00
507f9b5ba1
- Code Staging in GNU Guix - Unix shell programming: the next 50 years
1.6 KiB
1.6 KiB
Unix shell programming: the next 50 years
- Unix shell is a long-standing tool with its cruft and history built over the past decades;
-
the goodies
- ease of composition gluing tools together easily
- mostly found on Unix systems
- capabilities for data streaming
- interactivity and automation
-
the blockers
- too dynamic with its environment that
- ease of composition of tools made of different programming languages with different properties made it difficult for research
- there's no single shell environment; the current ecosystem is made of multiple implementation of the POSIX shell which is made of ~300pp describing the language, arbitrary behaviors, and extraneous tools to go along with it
-
the solvable blockers
- no easy way to handle errors; it can mean the life or death of a system with a misspelling
- not-so-good framework for asynchronous jobs; performance is acceptable for single-threaded systems but not for multi-threaded ones; that said, it does exist once you've made yourself familiar with it
- redudant computation; several tools like roam:GNU Make does address it but not fully
- not exactly fitting with the modern deployment systems
-
some projects to look forward to
- Jash
- Smoosh
- Posh and Pash