Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!feeder2.ecngs.de!ecngs!feeder.ecngs.de!Xl.tags.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!local2.nntp.ams.giganews.com!nntp.bt.com!news.bt.com.POSTED!not-for-mail NNTP-Posting-Date: Sat, 09 Jun 2012 05:13:59 -0500 From: "Chris Uppal" Newsgroups: comp.programming References: Subject: Re: If "rigid rules" are the wrong way... Date: Sat, 9 Jun 2012 11:05:20 +0100 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 X-RFC2646: Format=Flowed; Original Message-ID: Lines: 46 X-Usenet-Provider: http://www.giganews.com X-AuthenticatedUsername: NoAuthUser X-Trace: sv3-QaK182fRUV7WJNobeke13OIlXGvMSY3D/ZNn5tfea58ZaTJ3RFGWGWtdDpLmlq0QTYloxNOheL7rFcl!wBnYQwiRKfcvuc1QvS0o9JCCmmnlHGfSCjKttaczptPe3uvTz7vGdm5INwb0FWcagTptFUai9jQ= X-Complaints-To: abuse@btinternet.com X-DMCA-Complaints-To: abuse@btinternet.com X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 3491 Xref: csiph.com comp.programming:1762 mike3 wrote: > However, you have to first know what perfection _IS_ to do that. How > do you > know what good code IS first? How can you gauge the "goodness" or > "badness" > of your own code? Very fair question. To which I don't have an equally good answer. However... Adding to Patricia's suggested answers, I'll say that you don't need to know what perfection is before starting -- in fact I assume that you (and I) never do find out what perfection is. In a sense that's what we are learning as we go along. More precisely, you start off able to see that your code is *as you undertand it then* not ideal. That is, that you see flaws in it according to your current best standards and possibly incomplete understanding. You try to learn how to do better according to those standards (ruthlessly criticising your code according to the standards that you suspect /are/ still naive). As you progress you will discover not only ways to approach your current ideals, but also new ideals that are more general, more insightful, or whatever. Of course there is a risk that you'll end up going down a wrong path, following your own ideas into a quagmire ("going up your own bum"). There are two things which should protect against going weird like that: One is that you are a person, and in fact a programmer, which means that you are, in a lot of very essential ways, similar to the other people who will work with your code. That means that your judgements of what is good communication will be pretty strongly correlated with what actually works for them /as/ communication. The second is this: if you were working alone, and no one would ever see your code, then it wouldn't /matter/ if you had developed standards that were idiosyncratic to the point of wierdness! But in reality you will be working with other people's code, so you always have a check against eccentricity. "Is what I'm doing different because it is /better/ (in some way that I can justify), or is it just wierd ?" You can't be better without being different, but only eccentrics (and fashion designers) think that different is better ;-) -- chris