jeff@unh.UUCP (Jeffrey E. F. Friedl) (12/23/88)
Just a thought or two (or three...) on coding styles and such.... It seems to me that the idea of having a super-duper source-formatter as a "solution" to the problem of having to work with code written in a horrible style (i.e. any style not your own) is missing the mark (whatever "the mark" is). I think that it helps ease a symptom without curing the disease. Here are a few points I'd like to make: - One problem with using a formatter was cited in an earlier posting and I agree with it completely: leave style to programmers -- they (should) know what they're doing more than any program. Sometimes, creative indentation/etc can be used to make more clear a particularly odd section of code. - I would think, for most people, the style they use now is predominately influenced by the style they used when they learned C (or their first structured language). This is the case with me for many stylistic points. For example, I prefer to put the "{" of a new block on a line by itself at the same indentation level as the for/while/whatever to which it belongs. I can give lots of reasons why it's better than putting it at the end of the for/while/whatever line. On the other hand, if I had learned to program "the other way", I'd give reasons supporting that. Many of the arguments would be the same in either case (i.e. "It looks more natural"). What it comes down to is that what is natural _to me_ is more natural _for me_. - I feel very comfortable with my style, but I'm not afraid to change. If one can show me why a different style is better on some particular point, and if those reasons are enough to overpower both my reasons for doing it the way I currently do and those feelings of what is "natural", then I'll change. This happened numerous times when I began programming years ago. It still happens now, but less frequently. - A formatter would be difficult [(-:] to run on published (books, mags, etc) code. - I would guess that most people can read and understand code written in their own style more readily than code written in some other style. This is most certainly the case with me. However, for most stylistic concerns, there are usually several "common" practices. Once I realize that the code I'm reading is different from mine, but uses other common practices, I have little problem following the code (I should say, few problems resulting from the style.) The hard stuff is when looking at really wild stuff such as student code. Sometimes I think that they think indentation is a function of rand(). - "My style" is made mostly of various selections from the "common" practices on the many points of style. If they happen to be the same ones you have chosen, then you'd love my style. If not, maybe not. The thing is that the average competent C programmer should be able to read it without much difficulty. If not, then I'm the one who's not being "average". If I found that 51% of mature programmers hated my style and found it difficult to read, then I'd change. As a mature programmer (I may be begging the question here [(-:]) with a responsibility to my profession, I can/should learn to be understood. At first it wouldn't be natural, but with time most any sane style can become "natural". I don't think that "the problem" will ever be "solved". Like I said above, people like what they learn. What is needed is a book on style that everyone agrees is wonderful and that every new C programmer learns and loves. Once we all die out, they'll all have a common style. Excuse the pun, but I don't think we'll live to see the day. What could be done is (oh boy, Yet Another Bright Idea): a questionnaire could be made addressing various points of style. From responses, one could publish _Style_Today_, a book citing what _is_ used today. Not why, or what should be used, but what _is_. Then we could all see where we stand and go from there (or stay where we are -- whatever). *jeff* ------------------------------------------------------------------------------ Jeffrey Eric Francis Friedl Box 2173 Babcock House ..!{uunet,decvax}!unh!jeff Durham, New Hampshire 03824 If you have a C.S. job opening in/near Kobe, Japan, tell me! I'll take it!
eric@snark.UUCP (Eric S. Raymond) (12/25/88)
In article <847@unh.uucp>, jeff@unh.UUCP (Jeffrey E. F. Friedl) writes: > What could be done is (oh boy, Yet Another Bright Idea): a questionnaire > could be made addressing various points of style. From responses, one > could publish _Style_Today_, a book citing what _is_ used today. Not why, > or what should be used, but what _is_. Then we could all see where we stand > and go from there (or stay where we are -- whatever). I'm sort of working towards this; see article <eWl9H#2cdgbS=eric@snark.UUCP>. I'm trying to encourage a structured, value-neutral discussion of why people make particular layout choices so we can build a sort of decision tree or graph representing the space of possible layout rules. I want to do this because I think a look at the next level up (the formation of the unconscious metarules that steer you to a given spot on the graph) might yield really interesting information about the 'microlevel' of how human beings do code. -- Eric S. Raymond (the mad mastermind of TMN-Netnews) Email: eric@snark.uu.net CompuServe: [72037,2306] Post: 22 S. Warren Avenue, Malvern, PA 19355 Phone: (215)-296-5718