Path: csiph.com!news.swapon.de!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.forth Subject: Re: Question about checking the stack Date: Mon, 30 Nov 2015 13:00:18 -0800 Organization: A noiseless patient Spider Lines: 34 Message-ID: <87wpszcie5.fsf@jester.gateway.pace.com> References: <87io4qh7fm.fsf@nightsong.com> <87k2p5g4n0.fsf@nightsong.com> <8737vtfrk9.fsf@nightsong.com> <47ydnYNjvc2dHcvLnZ2dnUU7-Yv46u6z@supernews.com> <87y4dldyuu.fsf@nightsong.com> <2015Nov26.155107@mips.complang.tuwien.ac.at> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="336122d0c69f3217006549c7be1ec101"; logging-data="31763"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/z509V2+byogOthVFFk03q" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:zCnlYwWZzHJ9bS3COuyyOnelvTY= sha1:ObtAtuRP/YJYcHsQTLUORr0U//g= Xref: csiph.com comp.lang.forth:43981 anton@mips.complang.tuwien.ac.at (Anton Ertl) writes: > My favourite quote of Bjarne Stroustroup (creator of C++) is: > |As programmers learned C with Classes or C++, they lost the ability to > |quickly find the ``silly errors'' that creep into C programs through > |the lack of checking. RMS used to say that when he automated some task with software and then lost the ability to do it manually, that told him that the task must have been a significant cognitive load, so automating it improved his productivity by freeing up that much of his mental capacity for other things. He's told this story multiple times regarding the automatic parenthesis balancing in Emacs. He apparently lost the ability to count parentheses while coding Lisp, once he programmed Emacs to do it. > |Thus, as the frequency of run-time errors caused by uncaught argument > |type errors goes down, their seriousness and the time needed to find > |them goes up. We could say that C++ is badly designed because it makes such errors infrequent rather than impossible. I know I've made those errors in C++ code and been surprised and annoyed that the compiler didn't catch them. I do find myself using C++ in preference to C these days. I don't know if I've gotten worse at finding the errors while coding, though it's possible. > Conversely, when people program in a language with less checking, they > test earlier and more, as Elizabeth Rather has written, and take other > precautions, such as more factoring, which makes testing easier. You're saying that when the language does less checking, developers spend more time guarding against and testing for errors that a differently designed language could find instantly and automatically. Is that supposed to weigh in favor of the automatic checks, or against them?