From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,HTML_FONT_LOW_CONTRAST,HTML_MESSAGE, MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [IPv6:2600:3c01:e000:146::1]) by inbox.vuxu.org (Postfix) with ESMTP id EF13E2150A for ; Mon, 20 May 2024 16:24:45 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id DEDB543B29; Tue, 21 May 2024 00:24:40 +1000 (AEST) Received: from mail-oa1-x29.google.com (mail-oa1-x29.google.com [IPv6:2001:4860:4864:20::29]) by minnie.tuhs.org (Postfix) with ESMTPS id 2996D43B28 for ; Tue, 21 May 2024 00:24:34 +1000 (AEST) Received: by mail-oa1-x29.google.com with SMTP id 586e51a60fabf-245435c02e1so1462613fac.0 for ; Mon, 20 May 2024 07:24:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccc.com; s=google; t=1716215073; x=1716819873; darn=tuhs.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=9Ct5LcHvprhRILQFR5HubHg5MfoRt/2Qa2WPIthcdPs=; b=FssUwaF9gHfbmOzAcWdtrJNrO8Si4La2bzzAg4PkUxe0ckMimGuShNLpgNACuYFN/m TuWrjhhphiid8uCwmCTyf5+3ao7h+1aLY4sZyjqf2lsfyJOcrEqJ55/oYnXT+yGo3lKY YjS/a5JHgVDhsA+F+/br8oN9r5wP/r6E0IXuA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716215073; x=1716819873; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=9Ct5LcHvprhRILQFR5HubHg5MfoRt/2Qa2WPIthcdPs=; b=Ky3z2Dol7YApMzx29K2mjWtF76A7pdhmAR8kcNOWgr1NvMiV6hOujhtQc636ijdhNL 8riBpLQ/6gdx3j1+oHHQ104z75PIML6c+xL3+WvccCBOOTzkvMZWBuD4EZnOICVlmY8H pvKRcLbSMLsdN3AzeQcnvQ4ZuyQWoRDSUzsWBnOc7PEgt5SKmStiVYtJ7Gp4feps2rZ5 K6vbuR9vsDSoZdmrrfa9aZHWPDvIVmNJkzySe3KyEtFxlMfpWUQufei3ANPNq7jMrHut pI2uBEw8Afl3hkQCs3w3XaRiMxvccJxhY4WK6MuxDzyByj41nBDyhIv1fNrfd2+cBNm9 /bzw== X-Forwarded-Encrypted: i=1; AJvYcCX2Mmh39MbbL56DtI3yj4P+qexWeFKQ4iN74faWVUdonRB0GiHULf+ky0p+VNcA+lMkAyxFZFmbGV6+YuVv X-Gm-Message-State: AOJu0YyiqqxbREyeXrF03j2O1vqgSkhJN4HlsKavHs09DWYf0bLxis4w Y4aHQwnZrQxufpq23Z6U+uy9eN4CkxJrwVadHgjlJQGYg3owR7brLpuT2NxsJoYPLd2ms95LcP+ 0gBCWV0hLTUj3VGWta3Z2yZRlr1BdFlcS5qkP2BYZzRQgdfKeEg== X-Google-Smtp-Source: AGHT+IGZGAK28KNxexHxsInNk+7q8Ct0iO5LUIxSZmtCp875hjE3Iuh4COqTbJXgC9lgale5TmSF3xvA7yKGAFWhFNE= X-Received: by 2002:a05:6870:c68e:b0:244:b628:e625 with SMTP id 586e51a60fabf-244b628e9d0mr28388867fac.53.1716215073270; Mon, 20 May 2024 07:24:33 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Clem Cole Date: Mon, 20 May 2024 10:23:56 -0400 Message-ID: To: Rob Pike Content-Type: multipart/alternative; boundary="000000000000cd1dc30618e3752c" Message-ID-Hash: PAMGYIAQ7H5NADCRJBL3HQWE4AGQJDA7 X-Message-ID-Hash: PAMGYIAQ7H5NADCRJBL3HQWE4AGQJDA7 X-MailFrom: clemc@ccc.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Douglas McIlroy , TUHS main list X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: The 'usage: ...' message. (Was: On Bloat...) List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --000000000000cd1dc30618e3752c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I was going to keep silent on this one until I realized I disagree with both Doug and Rob here (always a little dangerous). But because of personal experience, I have a pretty strong opinion is not really a win. Note that = I cribbed this email response from an answer I wrote on Quora to the question: *When you are programming and commit a minor error, such as forgetting a semicolon, the compiler throws an error and makes you fix it for yourself. Why doesn=E2=80=99t it just fix it by itself and notify you of the fix inst= ead?* FWIW: The first version of the idea that I now about was DWIM - *Do What I Mean* feature from BBN=E2=80=99s LISP (that eventually made it into InterLI= SP). As the Wikipedia page describes DWIM became known as "Damn Warren's Infernal Machine" [more details in the DWIM section of the jargon file]. As Doug points out, the original Pascal implementation for Unix, pix(1), also supported this idea of fixing your code for you, and as Rob points out, UCB= =E2=80=99s pix(1) took the idea of trying to keep going and make the compile work from the earlier Cornell PL/C compiler for the IBM 360[1], which to quote Wikipedia: =E2=80=9CThe PL/C compiler had the unusual capability of never failing to c= ompile > any program, through the use of extensive automatic correction of many > syntax errors and by converting any remaining syntax errors to output > statements.=E2=80=9D The problem is that people can be lazy, and instead of using " DWIM" as a tool to speed up their development and fix their own errors, they just ignore the errors. In fact, when we were teaching the =E2=80=9CIntro to CS= =E2=80=9D course at UCB in the early 1980s; we actually had students turn in programs that had syntax errors in them because pix(1) had corrected their code -- instea= d of the student fixing his/her code before handing the program into the TA (and then they would complain when they got =E2=80=9Cmarked down=E2=80=9D o= n the assignment =E2=80=94 sigh). IMO: All in all, the experiment failed because many (??most??) people really don=E2=80=99t work that way. Putting a feature like this in an IDE o= r even an editor like emacs might be reasonable since the sources would be modified, but it means you need to like using an IDE. I also ask --> what happens when the computer=E2=80=99s (IDE) guess is different from the progr= ammer's real intent, and since it was =E2=80=98fixed=E2=80=99 behind the curtain, y= ou don=E2=80=99t notice it? Some other people have suggested that DWIM isn=E2=80=99t a little like spel= ling =E2=80=98auto-correct=E2=80=99 or tools like =E2=80=98Grammarly.=E2=80=99 T= he truth is, I have a love/hate relationship with auto-correct, particularly on my mobile devices. I'm dyslexic, so tools like this can be helpful to me sometimes, but I spend a great deal of my time fighting these types of tools because they are so often wrong, particularly with a small screen/keyboard, that it is just =E2=80=9Cnot fun.=E2=80=9D This brings me back to my experience. IMO, auto-correct for programming is like DWIM all over again, and the cure causes more problems than it solves. Clem [1] I should add that after Cornell=E2=80=99s PL/C compiler was introduced,= IBM eventually added a similar feature to its own PL/1, although it was not nearly as extensive as the Cornell solution. I=E2=80=99m sure you can find = people who liked it, but in both cases, I personally never found it that useful. > =E1=90=A7 --000000000000cd1dc30618e3752c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I was going to ke= ep silent on this one until I realized I disagree with both Doug and Rob he= re (always a little dangerous). But because of personal experience, I have = a pretty strong opinion is not really a win.=C2=A0 Note that I c= ribbed this email response from an answer I wrote on Quora to the question:= =C2=A0

When you are programming and commit a minor error, such as forgetting= a semicolon, the compiler throws an error and makes you fix it for yoursel= f. Why doesn=E2=80=99t it just fix it by itself and notify you of the fix i= nstead?


FWIW: The first version of the idea= =C2=A0that I now about=C2=A0was DWIM - Do What I Mean fea= ture from BBN=E2=80=99s LISP (that eventually made it into InterLISP). As t= he Wikipedia page describes DWIM became known as "Damn Warren's In= fernal Machine" [more details in the DWIM section of the jargon file].= =C2=A0 As Doug points out, the original Pascal implementation for Unix,= pix(1), also supported this idea of fixing your code for you, and as Rob p= oints out,=C2=A0UCB=E2=80=99s pix(1) took the idea of trying to keep= going and make the compile work from the earlier Cornell PL/C compiler for= the IBM 360[1], which to quote Wikipedia:

=E2=80=9CThe PL/C compiler had the unusual= capability of never failing to compile any program, through the use of ext= ensive automatic correction of many syntax errors and by converting any rem= aining syntax errors to output statements.=E2=80=9D
=
The problem is that people can be lazy, and instead of using= " DWIM" as a tool to speed up their development and fix their o= wn errors, they just ignore the errors. In fact, when we were teaching the = =E2=80=9CIntro to CS=E2=80=9D course at UCB in the early 198= 0s; we=C2=A0actually had students turn in programs that had syntax e= rrors in them because pix(1) had corrected their=C2=A0code -- in= stead of the student fixing his/her code before handing the program into th= e TA (and then they would complain when they got =E2=80=9Cmarked down=E2=80= =9D on the assignment =E2=80=94 sigh).

IMO:=C2=A0All in all, the experiment failed becau= se=C2=A0many (??most??)=C2=A0people really don=E2=80=99t work th= at way. Putting a feature like this in an IDE or even an editor like emacs = might be reasonable since the sources would be modified, but it means you n= eed to like=C2=A0using an IDE.=C2=A0I also ask --> what happens when the = computer=E2=80=99s (IDE) guess is different from the programmer's real= intent, and since it was =E2=80=98fixed=E2=80=99 behind the curtain, you d= on=E2=80=99t notice it?

Some other people have suggested th= at DWIM isn=E2=80=99t a little like spelling =E2=80=98auto-correct=E2=80=99= or tools like =E2=80=98Grammarly.=E2=80=99 The truth is, I have a love/hat= e relationship with auto-correct, particularly on my mobile devices. I'= m dyslexic, so tools like this can be helpful to me sometimes, but I spend = a great deal of my=C2=A0time fighting these types of tools becau= se they are so often wrong, particularly with a small screen/keyboard, that= it is just =E2=80=9Cnot fun.=E2=80=9D

This brings me back to my exp= erience. IMO, auto-correct for programming is like DWIM all over again, and= the cure causes more problems than it solves.

= Clem

[1] I should add that after Co= rnell=E2=80=99s PL/C compiler was introduced, IBM eventually added a simila= r feature to its own PL/1, although it was not nearly as extensive as the C= ornell solution. I=E2=80=99m sure you can find people who=C2=A0liked= it, but in both cases, I personally never found it that useful.

3D""=E1= =90=A7
--000000000000cd1dc30618e3752c--