# UNIX Primitivism
I have been whittling away at my computing environment for some time.
The basic idea being to use only what is required in terms of
functionality.
This firstly lead to a downscaling from the large resource hungry
graphical applications to CLI equivalents. They didn't replace all of
the functionality of the originals, but included the functionality I
actually used.
My window manager too was replaced with ratpoison. I had begun my
transition to tiling window management under i3wm and now, committed
to that choice and keyboard centric navigation, ratpoison seemed like
a natural progression.
Once that was done, and all the associated packages and their
dependencies were removed, disk space and memory usage were reduced
quite considerably allowing me to use lower specification hardware.
Then of course I had to consider my own development tool choices. My
text editor for a long time has been vim and text editing is a core
process for me. Of all the programs I use this is the one I would
have most difficulty replacing. Perl had also been my go-to language
for most of my personal projects.
## Programming languages
Programming languages are like toothpaste, especially scripting
languages. Many varieties and flavours exist, but they largely
perform the same task. It would be nice to have just one capable
scripting language and compiled language. Sadly most systems these
days are a melting pot of whatever has been in vogue over the past
couple of decades. This makes for an awful lot of dependency baggage.
I have abandoned my use of Perl and instead been restricting myself
to POSIX shell[0], awk, and trying to write portable code. Which is
not as easy as it sounds. Recently I discovered gensub(), which I
had used quite extensively, was not part of the POSIX awk
specification.
## Base utilities
The POSIX standard tool set[1] provides the fundamentals for an
extensible and portable computing environment. I think today people
are largely oblivious that many of these programs exist and even if
they are aware of some. They don't ever bother to learn their
capabilities and so never use them.
There are entire books written about some of them, like ed[2] and
awk[3], that give you a true insight into their capabilities.
## Summary
There is a lot of included functionality in any linux/unix base
system. Adherence to standards like POSIX and the Single UNIX
Specification[4] make for interoperability and portability.
The Art of UNIX programming[5] paints a wonderful picture of the
early UNIX community, their methods, philosophy and collaborative
spirit. I know I am not alone in my quest for a similar environment.
** Make POSIX great again! **
## References
[0](
https://www.grymoire.com/Unix/Sh.html)
[1](
https://en.wikipedia.org/wiki/List_of_POSIX_commands)
[2](
gopher://gopher.icu/9/files/edtut.pdf)
[3](
gopher://gopher.petergarner.net/9/Cybertech/The_AWK_Programming_Language.pdf)
[4](
https://en.wikipedia.org/wiki/Single_UNIX_Specification)
[5](
gopher://port70.de/9/books/unix/taoup.pdf)