Deutsch English Français Italiano |
<vtrgod$122ge$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: =?UTF-8?Q?Arne_Vajh=C3=B8j?= <arne@vajhoej.dk> Newsgroups: comp.os.vms Subject: Re: Clair Grant on VMS code base Date: Thu, 17 Apr 2025 14:19:58 -0400 Organization: A noiseless patient Spider Lines: 147 Message-ID: <vtrgod$122ge$2@dont-email.me> References: <vsh5m5$3is6e$1@dont-email.me> <vtj025$18n4d$1@dont-email.me> <vtj2tu$1cfo8$1@dont-email.me> <67fee5b8$0$708$14726298@news.sunsite.dk> <vtplin$9us$2@reader1.panix.com> <m6ca1qF8fe6U1@mid.individual.net> <vtqtdq$lmr6$1@dont-email.me> <6800fa70$0$709$14726298@news.sunsite.dk> <m6cgatF8fe6U3@mid.individual.net> <vtrcb8$122ge$1@dont-email.me> <m6ctpuF8fe6U5@mid.individual.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 17 Apr 2025 20:19:58 +0200 (CEST) Injection-Info: dont-email.me; posting-host="93a9aa36a2f13cfcd6229df4a1054f91"; logging-data="1116686"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX181AnLyM25XBW80EbV+TePSikNBTyKkB2k=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:xYvToJUEA2h8YwGqEVFIKEGyG7c= Content-Language: en-US In-Reply-To: <m6ctpuF8fe6U5@mid.individual.net> On 4/17/2025 1:58 PM, bill wrote: > On 4/17/2025 1:04 PM, Arne Vajhøj wrote: >> On 4/17/2025 10:08 AM, bill wrote: >>> On 4/17/2025 8:56 AM, Arne Vajhøj wrote: >>>> On 4/17/2025 8:50 AM, Simon Clubley wrote: >>>>> On 2025-04-17, bill <bill.gunshannon@gmail.com> wrote: >>>>>> On 4/16/2025 9:29 PM, Dan Cross wrote: >>>>>>> Most modern code-counting tools _are_ language aware. Whether >>>>>>> they do a better or worse job for each given language may be a >>>>>>> matter of debate, but most at least recognize different >>>>>>> languages and have some knowledge of their semantics. >>>>>>> >>>>>> I wonder how they would handle BASIC? :-) >>>>>> >>>>>> 10 FOR X = 1 TO 10 >>>>>> 20 PRINT X >>>>>> 30 NEXT X >>>>>> >>>>>> 10 FOR X = 1 TO 10:PRINT X:NEXT X >>>>>> >>>>>> Is the snippet above one line of code or three? >>>>> >>>>> 3 lines of code. >>>> >>>> Other replies cover what the tools actually does. >>>> >>>> If we discuss what is the "right" answer, then I would >>>> actually say 2. >>>> >>>> for i := 1 to 10 do writeln(i) >>>> >>>> for i := 1 to 10 do >>>> writeln(i) >>>> >>>> for i := 1 to 10 do begin >>>> writeln(i) >>>> end; >>>> >>>> for i := 1 to 10 do >>>> begin >>>> writeln(i) >>>> end; >>>> >>>> for(i = 1; i <= 10; i++) printf("%d\n", i); >>>> >>>> for(i = 1; i <= 10; i++) >>>> printf("%d\n", i); >>>> >>>> for(i = 1; i <= 10; i++) { >>>> printf("%d\n", i); >>>> } >>>> >>>> for(i = 1; i <= 10; i++) >>>> { >>>> printf("%d\n", i); >>>> } >>>> >>>> I would say 2 for all. >>>> >>>> And unless Basic next has some subtle functionality I am not >>>> aware of then I would say 2 for Basic as well. >>> >>> Interesting concept. But the NEXT is a requirement of the >>> language, does take time to type and if it is left out does >>> require debugging to fix the problem. So, if we are counting >>> lines in some attempt to determine the cost of writing and >>> maintaining the program it seems it would have to count as >>> a line. >> >> Programming is more about thinking than about typing. >> >> The thinking part is about adding two constructs: >> - having i iterate from 1 to 10 => Basic FOR loop >> - printing a line with i => Basic PRINT statement >> >> The specific language syntax requirement and the developers >> formatting preference is not a thinking problem (unless >> the developer does not know the language well, but >> that is a more general problem). >> >> Which is why I consider it two. >> >> But all this goes back to my original point. Counting >> non-blank and non-comment lines is simple while trying to >> count "right" end up in having to make dozens maybe >> hundreds of decisions on how to count various constructs >> in various languages. Several posts back I brought up >> fluent style - not an easy one to count in my opinion. >> >> If we instead of those few lines you provided took an entire >> application and asked everybody here to count, then I would not >> be surprised if everybody came up with a different number. >> >> Which is why I have been talking about "right" answer and not >> right answer. > > Once again, Arne, it seems in the end we actually agree. > LoC is probably not easily extracted accurately. And > the actual value of that information is minimal if of any > value at all. Counting non-blank and non-comment lines is easy. For a small piece of code it can vary greatly with coding style used. But if you look at large code bases written by many different developers then the coding style averages out. Let us say that you have files with one million file lines in. Counting non-blank and non-comment lines return 761951. Asking 100 people to count "right" number of lines give 100 different answers between 733887 and 745231. Counting non-blank and non-comment lines gives an objective result and is valid as a proxy for the code size. Is it useful to have such a value for estimation? Honestly I doubt it. It is not obvious to me that estimating LOC (or FP) is more accurate than estimating effort. I am not a big fan of COCOMO and the like. Is it useful to analyze what determines effort? I think so. Let us say that you have two approaches (could be programming language, development methodology or something else) and you based on historic data can estimate effort for the two as: effort = 2.5 * KLOC**1.2 effort = 3.5 * KLOC**1.1 Guess what - the optimal approach depend on the size of the project. > All that really matters is: > Does the program work? > Does it do what it was intended to do? > Does it do it without errors? There are some people that care about how much it cost to produce. :-) Arne