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,MAILING_LIST_MULTI,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 20029 invoked from network); 4 Feb 2022 05:12:00 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 4 Feb 2022 05:12:00 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 0D683951B5; Fri, 4 Feb 2022 15:11:58 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id CC0E995192; Fri, 4 Feb 2022 15:11:25 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (2048-bit key; unprotected) header.d=cfcl.com header.i=@cfcl.com header.b="Gef0+2vw"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 2BB8295192; Fri, 4 Feb 2022 15:11:23 +1000 (AEST) Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by minnie.tuhs.org (Postfix) with ESMTPS id 80CC29510A for ; Fri, 4 Feb 2022 15:11:22 +1000 (AEST) Received: by mail-pj1-f42.google.com with SMTP id o16-20020a17090aac1000b001b62f629953so12044883pjq.3 for ; Thu, 03 Feb 2022 21:11:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cfcl.com; s=google; h=mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to; bh=5S7b/mr/X4V5xqAFRlZLrKQGS7j2hz+TmjoEY/TsNuw=; b=Gef0+2vwOOEhj/3jYsYe8UkgNces6HM/Ppp3aG2S+WYB+33n53tJ0gPKzbte9TgJe4 op+OhIZfbn0iaY1aipO4kDihLRCcIjY/NlY0eJIsux0AeJFuD7TBcwsj4mWKHTmGwDs7 BhIzamoixc0bhIe62ums5NYY1M3lIMMs2kMUBmsPJarA4N2Vg4gWfg/rj4/w9erxGP5n yz9UByaV3KRiX3fRzPIcCDe52k871cZiqbTh6UGhEuC3TqnjaKWuDV0cwvvh6g5bCHNJ l7badjlJEhEdbk/s9Hc7kR+yn28dDD5RXn+Qe60fo9BpdazNblnomlJmrO0ohGOn5lpL JXQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to; bh=5S7b/mr/X4V5xqAFRlZLrKQGS7j2hz+TmjoEY/TsNuw=; b=Xh/oB1PM6r9Ta/pcxm6xe5gA/PTVTyJZ6ctcd4pzf2bUwKgytmW7L9OoclpXmoTZmY 4zmXE33RAcw9ddE1j1jEshZrIeGuZOFWtouV7cG7jB1YlOvjKREmmU8zs1UbWWPTHpSp +ZBFQD8DP/d4xUcXvU9v4YiHS/HEFkqudCYcoVgbhbilD7nT+aoHbkFHl3W3u4FjeUy2 8Ph7Yu3H2txcuc3qpYHLdEyBxO4ZLbVHgk37Zs3LwfT0pKEvBSEBi1iT2VFpSLe7GjOn Q4ru6e1rMqWzJvB32Ee5DR6fjhfir1FtQehNdtg8p9a8KWPTGpiTRX/QBXfbzY+qje0b z4Ww== X-Gm-Message-State: AOAM532HPTdyWsDNTFmJf+iQU/f9J63r0Dz0pHrqm2cCtWqbRppoLmkz QuNpXN2vGVhW/A3xW21mNtfugQNSuh1o/Q== X-Google-Smtp-Source: ABdhPJzp63XD55TP2RvLoxYumupKQV98x0mQ9F6wH7Js+J3Vt3S5ma4VFbKBZ1tebhUgXhpiHy1ukg== X-Received: by 2002:a17:90a:fe86:: with SMTP id co6mr548220pjb.70.1643951481763; Thu, 03 Feb 2022 21:11:21 -0800 (PST) Received: from [192.168.4.38] (24-113-81-134.wavecable.com. [24.113.81.134]) by smtp.gmail.com with ESMTPSA id pi9sm676110pjb.46.2022.02.03.21.11.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Feb 2022 21:11:21 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) From: Rich Morin In-Reply-To: Date: Thu, 3 Feb 2022 21:11:14 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: References: <202202011537.211FbYSe017204@freefriends.org> <20220201155225.5A9541FB21@orac.inputplus.co.uk> <202202020747.2127lTTh005669@freefriends.org> <7C19F93B-4F21-4BB1-A064-0307D3568DB7@cfcl.com> <1nFWmo-1Gn-00@marmaro.de> To: The Eunuchs Hysterical Society X-Mailer: Apple Mail (2.3608.120.23.2.7) Subject: Re: [TUHS] more about Brian... 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: , Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" Well, this topic certainly took an odd turn. Owell... > On Feb 3, 2022, at 18:23, Adam Thornton wrote: >=20 > It feels like the tide has turned from Go to Rust. ... The incursions of Rust (and not Go) into Linux, Mozilla, and such may = indicate a trend. =20 > Although a bit outdated, I stand by what I wrote about Go several = (six?) years ago: https://athornton.github.io/go-it-mostly-doesnt-suck I quite enjoyed this and found it to be informative, as well. My = personal reaction to Go (mostly derived from skimming Brian's book) is = that (a) it's well tuned to Google's needs and (b) not well tuned to = mine. Specifically... Google needs a language which runs efficiently and links in a reasonable = amount of time, even when HUGE sets of libraries are involved. It also = needs a convenient way to do massive concurrency. Finally, it needs = zillions of programmers to be fungible, dropping into code bases that = they've never seen before, without tripping over landmines. My = impression is that Go meets these criteria admirably. But, horses for = courses... I program mostly on my own, so most of these criteria are irrelevant to = my needs. I use Ruby for short scripts and Elixir for larger programs. = Neither one is blazingly fast, but they both feel comfortable to write = in. I like Matz's taste in design and think that Jos=C3=A9 Valim has = pulled together a very appealing mix of concepts and syntax from = Clojure, Erlang, F#, Lisp, Ruby, etc. One problem I have with Go is that it doesn't match the way I code. = Kind of like (I imagine) an oil painter might work, I start with broad = swatches and fill in the details over time. So, any new program is = likely to have stubs lying about, waiting to be implemented. Also, I = might well calculate a variable only to support a trace statement which = is currently commented out. Go is very intolerant of this sort of = thing: an unused variable, IIRC, is a fatal error. Google isn't paying = me to put up with this sort of thing, so I don't. Another problem I have with Go is the concurrency model. First, it uses = threads, which I've never felt competent to use safely. Shared mutable = state is one of those things that seem to me like an accident waiting to = happen. Also, though I have no real experience with CSP, it seems like = the Actor model may be better suited to exploratory programming. Getting back to Rust, my impression is that its design assumes that = having the computer put up guard rails will (mostly) keep programmers = from making catastrophic mistakes. In contrast, the Erlang (and thus = Elixir) approach assumes that things WILL crash and that the important = thing is to make sure that the system as a whole keeps running smoothly. = So, for example, it provides supervision trees which can handle any = crash of an Actor, etc. Also, I learned pretty early in my career (ca. 1972) that some of the = biggest botches come from folks not understanding the needs of the = users. I wrote a 10 KLOC PDP-11 assembly language program, based on a = 1" thick specification document. It never got used, because it didn't = solve the users' problem. Fine code, broken spec... Having said all this, I'm actually quite happy about the fact that Rust = is creeping into Linux. The coding style is likely to be a bit more = careful and it may well help to provide some protection against security = issues. (ducks) -r