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=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 7252 invoked from network); 14 May 2020 20:55:30 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 14 May 2020 20:55:30 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id D88769C96B; Fri, 15 May 2020 06:55:27 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id DDA589C95E; Fri, 15 May 2020 06:55:00 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=ccc.com header.i=@ccc.com header.b="TsmV2Y/a"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 5BDFB9C95E; Fri, 15 May 2020 06:54:59 +1000 (AEST) Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) by minnie.tuhs.org (Postfix) with ESMTPS id C2AE19C95D for ; Fri, 15 May 2020 06:54:58 +1000 (AEST) Received: by mail-qk1-f182.google.com with SMTP id f13so372759qkh.2 for ; Thu, 14 May 2020 13:54:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccc.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=59xyeP0Jdi6zDxyIbPTZjw2HacFGM9EPZMlPrWjMPGw=; b=TsmV2Y/aY3Mq6GUl7CXJgOSNuD3IdZSUZGzdqZhyVgenLWZYhoFB9oxwqsFkqOrZS6 ZrYAGLGJmdsLDdvTP1oGLcP9ubooJBb5+5vZ8o5AnWQHrLW5My4YjNvVzQ3FHdsBWsN7 E+NaUwrAqP8XMjFoqG5vaGJIJeqCVv0GvC2jY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=59xyeP0Jdi6zDxyIbPTZjw2HacFGM9EPZMlPrWjMPGw=; b=IX0e7CCr/Hc00+yh4XZWA+VeXh+SVESaY2DyQstWi9uyjPAsBwLE0sCHVfFduvhaJ7 UFVAuZgx5bZQbmkbgtLB0HxV1fftIx6495OcTN2g6iXdK7fAgZRbNE7NrdZpWpQj43yj 49l1IN/Tar5pfL/f5JOvJp1oZQgQgT/aVRLR+X7pVRAt9oEtqOMGdZQXY8z4H9x/+LX4 1w9qgAUaSN6+xpjPI/vFVzAi4241OEBO0cjIEh/zrQgv9t2qjMeyhnFWCGYWJwEvaJjL xhe4oA2NjVZUIv9bhjN3AhG2SyJVl5bYdplwbXhuRXv/NkiSolQKLJRJiylv6XLRjm7N u4qA== X-Gm-Message-State: AOAM530b55L04SAb0DEZHrd3Ai8AI8sXSPywmCQ4r5VkiKi+/AokVMSU 2PfVaHrzQYTFvOJpHQfxL1RTE4AmTHORUVqfJtN0VA== X-Google-Smtp-Source: ABdhPJxAf/lscfMw1pyNzDC5K78A0D3FOUuTU3SBmyg3N0j4kvcOHkcgDOd3D/gj8FewRm3I+0hEXkGcYlZJFZjLRH8= X-Received: by 2002:a37:a485:: with SMTP id n127mr255699qke.476.1589489697534; Thu, 14 May 2020 13:54:57 -0700 (PDT) MIME-Version: 1.0 References: <202005141841.04EIfvEZ063529@tahoe.cs.Dartmouth.EDU> In-Reply-To: <202005141841.04EIfvEZ063529@tahoe.cs.Dartmouth.EDU> From: Clem Cole Date: Thu, 14 May 2020 16:54:30 -0400 Message-ID: To: Doug McIlroy Content-Type: multipart/alternative; boundary="000000000000cbc97c05a5a1e820" Subject: Re: [TUHS] v7 K&R C X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: The Eunuchs Hysterical Society Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --000000000000cbc97c05a5a1e820 Content-Type: text/plain; charset="UTF-8" On Thu, May 14, 2020 at 2:42 PM Doug McIlroy wrote: > The essence of object-oriented programming is operator overloading. Mumble -- I'm not so sure ... Kay coined the term, and I've not directly taken that away from his writings. But maybe I missed it. I'm a little reluctant to argue here. I feel a little like I did when I was arguing with my thesis advisor years ago ;_) I so respect you opinion and you have demonstrated to me that you are correct on so many things. > > Mathematics has prospered on operator overloading, and that's why I > wanted it. FWIW: That was Wulf's argument for the BLISS syntax for indirection. It made more sense mathematically. The problem was that the animals were already beyond the fields and long lost in the forest, so closing the barn door later didn't help. Bill later recanted, that while the idea was the right one, in practice, he was a bad idea. > ... > users with poor taste are tempted to recycle the old ones for incongruous > purposes. > Ah, this here is, of course, the crux of the issue. Who shall be the arbiters of good taste. Doug most of the time, I agree with you and think you have done a fantastic job of being one of those arbiters. But like my friend and mentor Wulf, I have to admit the ugly way we did for years; stands. What you bought, given what we got, seems unbalanced. There is way too much 'bad' code and I think the overloading multiplies the bad over the good. > > C++ offers more features than C and thus more ways to write obscure code. > It's worse than that. The language definition is constantly peed on by the masses. Whereas Dennis (and Steve) took a very measured approach as to when and how to add features to C and while it is admittedly quirky, I find C code a lot more understandable. To me, the features that were added to C were ones that experience showed made sense [structs/unions/function prototypes/void/void*]. But as Larry and I have pointed out, not all of them did (enums). I don't have the same warm feelings about C++. My complaint with C++ was (is) it just 'too much'. If Bjorne had added classes and some of the original simpler things that his original "C with Classes" paper had and stopped, I think I might be willing to use it today. But like Larry, I avoid it if at all possible. In practice, its a tarbaby, and little good has come of it in my world. I applaud Rob, Ken, Brian and Russ with Go - I think thye hit on a better medium, certainly for userspace code. And thankfully they have not (so far) been tempted to 'fix it' (although I have heard rumors that Russ has things up his sleeve). And for me, the jury is still out on Rust (Dan Cross I admit got to me to rethink its value a bit, but I have not yet used it for anything). And Python, which I had hoped would be a reasonable replacement for Perl, also became a mess when people 'improved' it. > But when it happens, blame the writer, not the tool. > Fair point. I've seen some awesome BLISS code in my day. I bet if I looked I could find some excellent C++. But in my experience, the signal to noise ratio is not in favor of either. Respectfully, Clem --000000000000cbc97c05a5a1e820 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Thu, May 14, 2020 at 2:42= PM Doug McIlroy <doug@cs.dartm= outh.edu> wrote:
The essence of object-oriented programming is operator overloading.=
Mumble -- I'm not so sure ...=C2=A0 Kay coined th= e term, and I've not directly taken that away from his writings.=C2=A0 = But maybe I missed it.

I'm a little reluctant=C2= =A0to argue here.=C2=A0 I feel a little like I did when I was arguing with = my thesis advisor years ago ;_)=C2=A0 =C2=A0 I so respect you opinion=C2=A0= and you have demonstrated to me that you are correct on so many things.
=C2=A0

Mathematics has prospered on operator overloading, and that's why I
wanted it.
FWIW:=C2=A0 That was Wulf's argument for= the BLISS syntax for indirection.=C2=A0 =C2=A0It made more sense mathemati= cally.=C2=A0 =C2=A0The problem was that the animals were already beyond the= fields and long lost in the forest, so closing the barn door later didn= 9;t help.=C2=A0 Bill later recanted, that while the idea was the right one,= in practice, he was a bad idea.


=C2=A0<= /div>
...
users with poor taste are tempted to recycle the old ones for incongruous purposes.
Ah, this here is, of course, t= he crux of the issue.=C2=A0 Who shall be the=C2=A0arbiters=C2=A0of good tas= te.=C2=A0=C2=A0 Doug most of the time, I agree with you and thin= k you have done a fantastic job of being one of those arbiters.=C2=A0 =C2= =A0But like my friend and mentor Wulf, I have to admit the ugly way we did = for years; stands.=C2=A0 What you bought, given what we got, seems unbalanc= ed.

There is way too much &#= 39;bad' code and I think the overloading multiplies the bad over the go= od.

C++ offers more features than C and thus more ways to write obscure code.
It's worse than that.=C2=A0 The language definit= ion is constantly peed on by the masses.=C2=A0 =C2=A0Whereas Dennis (and St= eve) took a very measured approach as to when and how to add features to C = and while it=C2=A0is admittedly quirky, I find C code a lot more understand= able.=C2=A0 To me, the features that were added to C were ones that experie= nce showed made sense [structs/unions/function prototypes/void/void*].=C2= =A0 But as Larry and I have pointed out, not all of them did (enums).=C2=A0= I don't have the same warm feelings about C++.

My= complaint with C++ was (is) it just 'too much'.=C2=A0 =C2=A0If Bjo= rne had added classes and some of the original simpler=C2=A0things that his= original "C with Classes" paper had and stopped, I think I might= be willing to use it today.=C2=A0 But like Larry, I avoid it if at all pos= sible.=C2=A0 =C2=A0In practice, its a tarbaby, and little good has come of = it in my world.

I applaud Rob, Ken, Brian and Russ wit= h Go - I think thye hit on a better medium, certainly for userspace code.= =C2=A0 And thankfully they have not (so far) been tempted to 'fix it= 9; (although I have heard rumors that Russ has things up his sleeve).=C2=A0= And for me, the jury is still out on Rust (Dan Cross I admit got to me to = rethink its value a bit, but I have not yet used it for anything). And Pyth= on, which I had hoped would be a reasonable replacement for Perl, also beca= me a mess when people 'improved' it.


=
=C2=A0
But when it happens, blame the writer, not the tool.
<= span class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-seri= f">Fair point.=C2=A0 I've seen some awesome BLISS code in my day.=C2=A0= I bet if I looked I could find some excellent C++.=C2=A0 =C2=A0But in my e= xperience, the signal to noise ratio is not in favor of either.=C2= =A0

Respectfully,
Clem

<= /div>
--000000000000cbc97c05a5a1e820--