Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] "Go Considered Harmful"



On 2020-08-31 17:44 +0900 (Mon), Benjamin Kowarsch wrote:

> On Mon, 31 Aug 2020 at 15:32, Curt J. Sampson <cjs@example.com> wrote:
> 
> > Not off-hand. But given a choice between the two, algebraic data types are
> > more useful to most programmers, I believe.
> 
> Well, I did not pick this example, you did. I only commented on your
> example.

Actually, I mis-stated the example. The real parameter is either "no
compression" or a compression level. So if you were using algebraic data
types and had subranges, you might express this as:

    Compression = None | Int from (0..9)

At any rate, I'm not clear what point you're trying to make related to
sub-range types.

> Go is certainly improving upon C, sure. But it is also a language for a
> different purpose. The purpose of C is system implementation, Go is more
> of a scripting language, certainly not a system implementation language.

Well, it certainly doesn't look like that to me, and I suspect that most Go
programmers would disagree with you as well. Go certainly feels a _lot_
more like C than like Perl or Python, much less Bourne shell. In
particular, Go very much focuses on data structures as binary data in
memory, as opposed to "objects" (in the Lisp sense, not the OO sense).

> > My complaint is not about lack of type safety, but the lack of
> > expressiveness in Go's type system that prevents you from using type safety
> > in many common situations.
> 
> I was only commenting on how you framed the example you chose.

Well, now you know that you were looking at the wrong things about that
example.

> The Dykstra/Hoare/Wirth school is about correctness but type safety is
> an important tool to achieve that goal and they promoted that, too.

Sure, _as a tool_. In the same way they promoted WHILE loops as a tool.
But, as should be clear from the quotes I gave, the tools were secondary to
the higher-level concepts they were trying to get across.

> When I mention Dykstra, Hoare and Wirth, I am absolutely not thinking of
> this GOTO "controversy" at all. It is a sad thing when their school of
> thought is reduced to that.

Fortunately, I was not reducing them to that. I was giving an example of
misinterpretation. Feel free to re-read what I posted in that light,
knowing that you can substitute any number of similar cases you happen to
find that have nothing to do with GOTO.

> I agree, but my point was not so much about faulting Thorvalds, it was
> about the fact that the people who young developers are looking up to as
> role models in our time are not like the earlier generations from
> McCarthy, Naur, Rutishauser to Dykstra, Hoare and Wirth who were role
> models that had more sensible things to say back then.

I don't think most young developers in that time were looking up to
Dykstra, Hoare and Wirth, or similar folks, either. Otherwise we wouldn't
have been programming in BASIC and C in the 1980s.

> Of course we cannot fault them for not having successors who do not have
> as much clout in the (meanwhile much larger) industry and who are not as
> influential.

Well, I'd say that the people filling their roles today have considerably
more clout in terms of raw numbers of programmers they influence. Is the
influence of the current crop of "here are much better languages and ways
of programming" folks more or less as a percentage of the industry? I don't
know, but I don't see any obvious evidence that it's definitively less.
It's not as if most industry programmers were following Dykstra, Worth,
Hoare, et al. back in the day.

Regarding the rest of your message, it really comes across as "things were
better in the good old days." I'm not seeing any real evidence of that,
though, and I think you're probably looking at the past through rose-tinted
glasses, and looking at a past heavily affected by survivorship bias.

cjs
-- 
Curt J. Sampson      <cjs@example.com>      +81 90 7737 2974

To iterate is human, to recurse divine.
    - L Peter Deutsch


Home | Main Index | Thread Index