My favorite language for a time was Awk. I felt kind of burned out with C and the amount of work I had to do to code a one-time program to process some text files.
I discovered awk by accident when I ordered some Unix software tools from Thompson Automation. I wanted my PC DOS to resemble Unix in a time before I could acquire an IBM RS/6000 at work. Awk came as an extra.
I read the Kernighan AWK book and was hooked on the paradigm, doing all sorts of crazy things with it. It was a welcome diversion from the usual IBM C/C++ with STL nonsense I had to contend with.
AWK in other OS contexts was just not as cool as the Thompson DOS one. Often, I had trouble finding the compile error in my code.
My favorite AWK script was when I made a mini IDE. It was basically a frontend to Vim called vm, where I could be in the base directory of a project and type in a partial filename, which would display a numbered list of matching files, usually Java code. Entering the number would pull up the file in Vim.
Under the covers, it also created a copy of the original file with a different file type. If I made changes to it, then it kept the copy as a baseline. At the end of a session, I could pull up a list of changed files, and it would either launch Vim in file compare mode or just diff the original copy to the changed copy, so I could record the changes in my notebook for later use at my desk.
This was a closed lab environment where you could bring code on CD media in but couldn’t take anything back out. Available IDE tools may or may not be present, and you had to adapt to the environment.
My script significantly enhanced my productivity and reduced my anxiety levels because I knew it recorded my changes and enabled me to hack my code freely to achieve a working version.
Later on, I converted it to Python because it started to get a bit unwieldy, and Python brought some order to it again as I added features to facilitate network deployment and other things.