3 ms·
This blog post contains mostly a small list of design principles. But those ideas are from ESR's book "The Art of UNIX Programming", where they are expanded up
by makecheck 17y ago
This blog post contains mostly a small list of design principles. But those ideas are from ESR's book "The Art of UNIX Programming", where they are expanded upon in great detail, with excellent examples.
I am someone who practices the Unix philosophy on a regular basis, and cringes when I see how twisted and inelegant Windows has become (even on the programming side). I consider this book a must-read for people who know only Windows. It is also an interesting book for those who know Unix already.
- kqr2 17y agoThe blog post attributes the list of design principles to Mike Gancarz's "Unix Philosophy" (1994) whereas ESR's book "The Art of UNIX Programming" was published in 2003. I'm sure those ideas had been floating around in the community for a long while but was written down more formally in those books.
- nailer 17y ago'Text as the universal interface' clashes quite badly with separating content from presentation. This means you're forever relying on regex's to rip data out of other applications, and relying on those other applications not to change their output. Compare finding processes starting within the last hour on Unix and Windows: ps | grep 'regex representing the current amount of columns output by ps where start time is less than 2 hours' Windows (ps is an alias for get-process): ps | where COLUMN <= value The latter is much more robust. As Powershell gets more cmdlets it's going to become increasingly useful. That said, I prefer Unix for other reasons.
- cagey 17y agoBut are these 'additional cmdlets' going to be available in a default O.S. install? If not, will they be automatically brought in by Windows Updater?
- makecheck 17y agoTrue, though "ps" isn't the best example, as it's one of the least portable commands I've ever seen. :) Its output is not even consistent from one Unix variant to another. I kind of hope most Unix variants follow the /proc filesystem model of Linux. It basically cleans up these kinds of queries considerably.