Hacker News new | past | comments | ask | show | jobs | submit login

Reminds me of a similar article [1]

Once you get a hang of how shell constructs like pipes, redirections, globs, variable/command substitutions, etc, the various cli text processing tools like grep, sed, awk, perl, sort, tr, pr, paste, etc are worth to learn at least the basics. They have been through years of use and heavily optimized for performance. Just today, a friend of mine called to ask how to improve a Python script's performance for 5-10 MB text file. After confirming he isn't using any other special modules, I advised to check if the performance improves by implementing it using awk.

If anyone's interested in examples based tutorials on cli text processing tools, check out my github repo [2]

[1] https://blog.jpalardy.com/posts/why-learn-awk/

[2] https://github.com/learnbyexample/Command-line-text-processi...




The GNU Project hosts this essay, "The UNIX Shell As a Fourth Generation Language":

https://www.gnu.org/software/nosql/4gl.txt

The concept of language "generations" is mostly lost now, much like how we stopped inventing names for how densely we pack transistors onto silicon once we'd gotten to VLSI (Very Large Scale Integration); the point of the essay is that the shell complete with a userspace is a programming language in itself, and one which is much more programmable and extensible than, say, getting all of your data into a database and using SQL to manipulate it. It's a programmable environment, as opposed to a data silo, where the only tools you have are the ones the silo's implementer deigned to provide.


There is a short talk by Eben Moglen [0] which is only 10 minutes long but jam packed with wisdom. One part which changed the way I think about using computers is how he describes GUI interfaces: as a "point and grunt" or "caveman" interface. Using UNIX, on the other hand, is to use language to communicate with the computer and comes with all the benefits that we have when using it to interact with people.

[0] https://youtu.be/uKxzK9xtSXM




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: