Path: csiph.com!feeder.erje.net!2.us.feeder.erje.net!nntp.club.cc.cmu.edu!micro-heart-of-gold.mit.edu!newsswitch.lcs.mit.edu!nntp.TheWorld.com!newsfeed-00-ls.mathworks.com!panix!not-for-mail From: Lewis Perin Newsgroups: comp.lang.javascript Subject: Re: JSlint finds for loops intolerable Date: Sun, 28 Aug 2016 18:49:26 -0400 Organization: PANIX Public Access Internet and UNIX, NYC Lines: 29 Message-ID: References: NNTP-Posting-Host: panix1.panix.com Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: reader2.panix.com 1472424567 20748 166.84.1.1 (28 Aug 2016 22:49:27 GMT) X-Complaints-To: abuse@panix.com NNTP-Posting-Date: Sun, 28 Aug 2016 22:49:27 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (berkeley-unix) Cancel-Lock: sha1:rxXvqLmZgRhDMhR/OEdPpI3u5vk= Xref: csiph.com comp.lang.javascript:31199 ram@zedat.fu-berlin.de (Stefan Ram) writes: >Lewis Perin writes: >>I'm generally sympathetic to the idea that one criterion for judging >>programs is how easy they are to reason about. But there's often a >>glibness about this when it isn't clear who is doing the reasoning: a >>person or a computer program? > > »[P]rograms must be written for people to read, > and only incidentally for machines to execute.« > > SICP > > "Any fool can write code that a computer can understand. > Good programmers write code that humans can understand." > > Martin Fowler Sure, and you could quote Knuth on literate programming. I agree with all of this. Apparently I should have elaborated on what I meant by “reasoning about a program.” I meant to include under that rubric not just correctly executing the source code, but also understanding what the source code was trying to do and satisfying oneself (proving) that the code achieves that goal under all circumstances. /Lew --- Lew Perin / perin@acm.org http://babelcarp.org