"If we really want ... to learn how to forgive, perhaps we had better start with something easier than the Gestapo."
Abstractions and metaphors are hugely important in computing. They allow an "ordinary person" (e.g. somebody's grandma) to use a computer without first learning, say, binary numbers or machine code. But as previously noted, abstractions can also be destructive when used incorrectly. In human-computer interface design, an overly opaque (though perhaps elegant) metaphor will degrade a user's understanding of the system, while a transparent and "honest" metaphor will make it easier for the user to learn more later.
This farming off-season (October thru April) I'm attempting a lifestyle experiment of sorts by not seeking formal employment. For the first month I looked for a job (begrudgingly) until I realized guilt was my only motivation to work - guilt over having the freedom not to work. Because guilt is never a good reason to do something, I opted to "follow my heart" instead, spending my days reading, writing, visiting friends, and working only when it felt right. (Shortly after I decided not to get a job, I committed to unpaid thrice-weekly compost runs in the farm truck.) My greatest fears were depression, and feeling like I wasted months of my life - both of which I experienced last winter, and neither of which I've experienced yet this year.
—Psalm 104:27-30 (NIV)
Desires wither the heart.
In Christian life there often exists a tension between Jesus' command "Do not judge", and the call to do right by yourself and others. It's easiest to take an extreme path, to either judge the hell out of everyone (publicly or secretly), or on the contrary avoid all moral considerations. But knowing how to follow conscience and conviction without judging those who behave otherwise proves challenging at every turn.