From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 11644 invoked from network); 10 Mar 2023 16:05:08 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 10 Mar 2023 16:05:08 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id B957C41559; Sat, 11 Mar 2023 02:05:02 +1000 (AEST) Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) by minnie.tuhs.org (Postfix) with ESMTPS id 00CF641556 for ; Sat, 11 Mar 2023 02:04:58 +1000 (AEST) Received: by mail-lj1-x234.google.com with SMTP id b13so5802647ljf.6 for ; Fri, 10 Mar 2023 08:04:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678464296; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=EJJwVVkiYNjdm1eNG8Y0U6vN0nqs6QbRBv5HRuFq/ws=; b=Sei0iqug5qA86t8uQI2YYkr4+Jk21Qb8inEYPazKhRDq93N0LtFpHtr5b00jkhqYyY Wwqmr3l1YlQApmvQboSmiSelA1Nlt681C4pnBKSBmWsCP2H8YA48NdUB8D3xHadwQlu6 wjKUvzDMiNGKJjlFPqbQ/mgjfowz0T6X/dZXYQPEHzUoyvtIizgF554FIa+P0iX4FOxx aucvsuVoDsUl86vNSwJRd2UrePNgFVt4C2imdiK/tLE+O0jyFdhg38Tl3sRWB2bsycy4 8GkU5V25FBXrn93BnZQF6KyA+pK+x+fQqfFnj5L79KUTY8h+UGF9gUhYHGKsJIBU8hdX nlVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678464296; h=content-transfer-encoding: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=EJJwVVkiYNjdm1eNG8Y0U6vN0nqs6QbRBv5HRuFq/ws=; b=leKM/Bnw7fuDTKw42+PxVdx6kGnkdB9dhGrqkAx6la/wMixtM2UWUKWztUWBMGxnWa h99S9zbNsIKeoUzr7wI1MdnTBDwl8KvrpLLwCvYjZI9ISAPqHPH3prp9lFaMj+qaynuq Em8LIgNB52GKoWCSxGQ526peW3Seb0yT7JkAM3Q+8LOJHxpLE18Z2Mf2s+vJpI6q2IrT HdkON/cTxBMzEkN2cYFz+XTFmIZJDsZ+Lgr5h2InCi7XxnEuIjvXAq0CV/ooBTIDZbB8 fzPDwVXoP1ZfTPclf/TMkRUX9gTJAwE9HiahxT0k3ypI81g1p/kEUCZ69XMczNfxi/db YzpA== X-Gm-Message-State: AO0yUKWfBAdBi3jMPzepnzndK7Cvn4AObt2wp2RWV8QICF5brDcPhBhE Jn1mqENtrFkPCGBMrLb4xpWx1jVc7azqGPW0raDRFq9s X-Google-Smtp-Source: AK7set+7cetJySIgnK1knVzFIoSjUQkkecLwE6jQQjduLr6JUUbzIU9EFIxfmTGPUJ421QxbZ9GDQiwXoAkHOekfF/8= X-Received: by 2002:a05:651c:b9b:b0:293:4be3:9e6c with SMTP id bg27-20020a05651c0b9b00b002934be39e6cmr8316437ljb.1.1678464296097; Fri, 10 Mar 2023 08:04:56 -0800 (PST) MIME-Version: 1.0 References: <20230310153702.AFF3418C080@mercury.lcs.mit.edu> In-Reply-To: <20230310153702.AFF3418C080@mercury.lcs.mit.edu> From: Dan Cross Date: Fri, 10 Mar 2023 11:04:19 -0500 Message-ID: To: Noel Chiappa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Message-ID-Hash: SN64N4RFSKOJNIMUPQERGGVYUVUE43CJ X-Message-ID-Hash: SN64N4RFSKOJNIMUPQERGGVYUVUE43CJ X-MailFrom: crossd@gmail.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: tuhs@tuhs.org X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: I can't drive 55: "GOTO considered harmful" 55th anniversary List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: On Fri, Mar 10, 2023 at 10:37=E2=80=AFAM Noel Chiappa wrote: >[snip] > I think the point is that goto's aren't necessarily _always_ bad, in and = of > themselves; it's _how_, _where_ and _why_ one uses them. If one uses goto= 's > in a _structured_ way (oxymoronic as that sounds), to get around things t= hat > are lacking in the language's flow-control, they're probably fine. Something that I think was likely a useful outcome of Djikstra's polemic is that people began looking at what they were using goto for and the things that were useful were extracted and codified as first-class mechanisms in lots of languages (e.g., `break` and `continue` for loops; exceptions; early function returns; multilevel-break where that's a thing in a particular language, etc). Goto is sort of like a hammer stone, it's useful for all kinds of things, but it's difficult to control without practice and patience. You can probably cut a diamond with one, but why endure the difficulty and take the risk if you have access to a jeweler's hammer? - Dan C.