“We were introduced to the Unix philosophy of software development:
- Make each program do one thing well.
To do a new job, build afresh rather than complicate old programs by adding new “features”. - Write programs to handle text streams, because that is a universal interface.
- Treat a tool’s output as an API.
In much the same way that you treat a class interface as an API; changing it might break others’ usage of your software! A stable API makes for long-lived software. Write programs to work together.”