From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: "Jeffrey R. Carter" Newsgroups: comp.lang.ada Subject: Re: Someone loves PHP... Date: Fri, 27 Nov 2015 10:59:17 -0700 Organization: Also freenews.netfront.net; news.tornevall.net; news.eternal-september.org Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Injection-Date: Fri, 27 Nov 2015 17:56:56 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="caa759af2a9c666aec02942f6fe5abd6"; logging-data="8821"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/wLISun8jzrkvVSmS7hMPhVsS+wi/VfXk=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 In-Reply-To: X-Mozilla-News-Host: news://freenews.netfront.net Cancel-Lock: sha1:Lgk2yCZhCuZRzPqqhwTX0TmxJw4= Xref: news.eternal-september.org comp.lang.ada:28564 Date: 2015-11-27T10:59:17-07:00 List-Id: On 11/27/2015 04:01 AM, Nasser M. Abbasi wrote: > > 1) A language must be predictable. > 2) A language must be consistent. > 3) A language must be concise. I don't completely agree. A language must be readable and easy to understand. Conciseness is desirable when it doesn't detract from or enhances those properties, but often it is the opposite. Use clauses are an example of this. They promote conciseness, and when writing such code it seems quite easy to read and understand. But decades of experience have shown that such code is often more difficult to read and understand when I come back to it a few months later than if I had not used use clauses. As a result, I have become mostly use-averse, and have strict guidelines on when to use them. > 4) A language must be reliable. > 5) A language must be debuggable. Again, I don't really agree. A language must minimize opportunities to make errors. Debugging in most languages consists of finding things that don't manifest until run time, and then as incorrect behavior, most of which would be caught by the compiler for a well designed language, and most of the rest would be caught by run-time checks for things not practical to detect at compile time. What remains are usually logic errors, and traditional debugging is not very helpful for those, unless you think of it as debugging your own thought processes. -- Jeff Carter "My legs are gray, my ears are gnarled, my eyes are old and bent." Monty Python's Life of Brian 81