Marlin 0.8 - The Unix Philosophy Is A LiePerhaps I have been using a few too many cliches and not providing enough clear justification and well thought out reasoning for some of the usability suggestions I have been making recently. I have been reassured by various people it is nothing personal and Iain does have an interesting sense of humour but I look at it as a challenge to be more rigourous.
Marlin 0.9 - Pithy Phrases Do Not Make Good Software Design
Do one thing well is the aforementioned Unix Philosophy
and is an important design philosophy and it is worth understanding
even if you choose to dismiss it. Most programmers do make use of this
on various levels by abstracting their code into smaller reusable
modules that do one thing well. The level I am normally talking about
is an individual application having one clear purpose, or else we end
up with every application expanding until it can read email.
Cliches become tired and stale from overuse but they usually start off
as a succinct way to capture the essence of a more complex idea. Every
old-wives tale contains a nugget of truth or a lesson to be learned.
The maxim do one thing well, works successfully with Unix because
command line applications can be combined into more than the sum of
their parts using pipes and redirects. Applications with full graphical
user interfaces cannot be interconnected in quite the same easy way so
it is important to also understand the need to have some way to
integrate all the small parts together. Many programs are vague and
sneaky about what they claim is the one thing they try to do well and
define it so broadly as to be meaningless.
In life it is important not to blindly follow the rules without having an understanding of why they are there and the purprose they serve. Christians understand (or are at least supposed to understand) blind faith is worthless and Jesus himself questioned his fathers plan. I think most cultures understand the dangers of zealotry and fanaticism. The variety of different cultures and viewpoints I encounter in Open Source helps me to regularly challenge my own assumptions and learn to embrace new ideas. If I start falling into the trap of sloppy logic and easy answers no doubt there will be others there to challenge me.