Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!wuarchive!usc!ucsd!ames!coherent!dplatt From: dplatt@coherent.com (Dave Platt) Newsgroups: comp.misc Subject: Re: Wanted: easter eggs Message-ID: <66168@coherent.coherent.com> Date: 7 Aug 90 17:40:52 GMT References: <9007081641.AA25236@volitans.MorningStar.Com> <101150008@hpcvlx.cv. <26bcf4e8-214.21comp.misc-1@oldcolo.UUCP> Reply-To: dplatt@coherent.com (Dave Platt) Organization: Coherent Thought Inc., Palo Alto CA Lines: 63 In article <26bcf4e8-214.21comp.misc-1@oldcolo.UUCP> markh@oldcolo.UUCP (Mark Hampson) writes: > I think it is quite amazing that so many programmers are anarchists. > It would seem to me that people who must work in such an orderly fashion > would be straight-laced and fly right types. The diversity of systems > that have Easter Eggs planted in them is limited only by the number of > systems available. Ah, indeed... there lies one of the wonderful paradoxes which makes life in this business so much fun (potentially). It's true that programming requires a careful attention to detail... computers themselves have utterly no sense of humor and are extremely unforgiving. If this were the _only_ level on which programmers operated, then I'd expect that the population of programmers would self-select for the kind of straight-laced, fly-right, anal-retentive people you're envisioning... sort of like the Monty Python view of "chartered public accountancy." Fortunately (for crazies like me), there's another aspect to programming which makes things rather more lively. A large part of programming (or program design) deals with things on another level... a level of high-order abstractions, data structures, interrelations, and so forth. In order to see the "whole picture" of a programming system's design and implementation, a person must be able to go from the "castles in the air" level down to the "size of the grains of sand in the mortar" level. [This analogy isn't my own... but I can't for the life of me remember who first phrased it. Knuth??] Anyhow... in order to be able to handle this broad range of abstraction- to-concrete-implementation, a person must possess quite a bit of flexibility, a willingness to try things and [if they don't work] throw them away, a good helping of enthusiasm, and a strong respect for one's one fallability... a good sense of humor _really_ helps. A programmer without a good sense of humor, and the ability to say "Oh, what the >bleep<", will often have a very rough time of things. Most good programmers are crafts[wo]men, as much as engineers... and develop a strong sense of workmanship and pride in their tasks. Remember how the original Macintosh development team had their signatures etched into the mold for the Mac cabinet, so that they were "signing" each Macintosh as it came off the production line? That's not an uncommon sort of attitude. Also, many programmers are of a somewhat "nerdy" bent... we're better at dealing with things (computers) than with people. Programmers tend to be more comfortable with other programmers than with mundanes. Now... take people who have a strong sense of pride in their work, enthusiasm for what they're doing, strong senses of humor, and an in-group attitude. Put them in an environment where they _must_ be accurate and painstakingly careful in the forms of their work. Add the fact that their employers usually require the product to have a "professional" appearance (i.e. no sense of humor). What do you get? Well, frequently, you get a situation in which the programmers' senses of humor are under pressure from below (the humorless computer) and from above (the humorless management). So, naturally enough, the humor squirts out sideways... in the form of "Easter eggs", in-jokes buried in the code, and so forth. Sometimes it's subtle; sometimes it's as obvious as a whoopie cushion in church. It's usually there in one form or another!