* [COFF] Shadowing variables in Go. [not found] ` <202410011243.491ChKiV419651@freefriends.org> @ 2024-10-01 13:20 ` Ralph Corderoy 0 siblings, 0 replies; 6+ messages in thread From: Ralph Corderoy @ 2024-10-01 13:20 UTC (permalink / raw) To: coff Taken to COFF... Hi Arnold, > In main(), I *think* I'm assigning to the global clientSet so that > I can use it later. But because of the 'err' and the :=, I've > actually created a local variable that shadows the global one, and in > otherfunc(), the global clientSet is still nil. Kaboom! > > The correct way to write the code is: > > var err error > clientSet, err = cluster.MakeClient() // or whatever I think this is a common problem when learning Go, like assigning getchar()'s value to a char in C. It was back in ’14 anyway, when I saw https://www.qureet.com/blog/golang-beartrap/ which has an ‘err’ at an outer scope be unwritten by the ‘:=’ with the new, assigned-to ‘err’ going un-checked. The author mentions ‘go vet’ highlights these cases with -shadow, which is off by default. https://pkg.go.dev/github.com/golangci/govet#hdr-Shadowed_variables suggests that's still the case. -- Cheers, Ralph. ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <20240930191216.tIpea9lo@steffen%sdaoden.eu>]
[parent not found: <CACY3YMHzg+6U_zTuhMTORgfh_Kse6MTspaGDfuUjXb4vLvV9mw@mail.gmail.com>]
[parent not found: <CAEoi9W46LRBBxQ22kM8kmvqHeTetXkp=jfUeDC+qu0kbvv+swA@mail.gmail.com>]
[parent not found: <vhfa99$114r$1@ciao.gmane.io>]
* [COFF] Re: [TUHS] Re: Minimum Array Sizes in 16 bit C (was Maximum) [not found] ` <vhfa99$114r$1@ciao.gmane.io> @ 2024-11-22 1:53 ` Dan Cross [not found] ` <CAK7dMtC=y+a6=vk_zrQSA659h8=td0YBpd0BTvxmAJowefm_VA@mail.gmail.com> 0 siblings, 1 reply; 6+ messages in thread From: Dan Cross @ 2024-11-22 1:53 UTC (permalink / raw) To: Anton Shepelev; +Cc: COFF [TUHS to Bcc:, Cc: COFF] On Mon, Nov 18, 2024 at 11:47 AM Anton Shepelev <anton.txt@gmail.com> wrote: > Dan Cross <crossd@gmail.com> wrote: > >Programmer ability is certainly an issue, but I would suggest that > >another goes back to what Rob was alluding to: compiler writers have > >taken too much advantage of UB, making it difficult to write > >well-formed programs that last. > > Following the letter, rather than the spirit, of the standard? Pretty much! > [snip] > >My sense is that tossing in bad programmers is just throwing gasoline > >onto a dumpster fire. Particularly when they look to charlatans like > >Robert Martin or Allen Holub as sources of education and inspiration > >instead of seeking out proper sources of education. > > I am a bad one as well, to have liked some things in Martin's books > /Clean Code/ and /Clean Architecture/ . True, heis no Wirth, nor > Dijxtra, nor Knuth, but why a charlatan? Briefly, because he writes with unwarranted confidence, and just isn't a very good programmer himself. He writes with an authoritative voice about things that he doesn't know very much, if anything, about. For example, the things he's written about static typing in programming languages are complete nonsense. Sriram Krishnamurthi called him out on that (https://x.com/ShriramKMurthi/status/1136411753590472707) and he did not respond well, doubling down on his unfounded opinions (https://blog.cleancoder.com/uncle-bob/2019/06/08/TestsAndTypes.html). Later, he justified his opinion by making allusions to the amount of time he's been programming (https://blog.cleancoder.com/uncle-bob/2021/06/25/OnTypes.html). Hey, when it comes to logical fallacies centered on appeals to length of experience, well...I swooshed a basketball for the first time more than 40 years ago, but I've given up any dream I may have ever had of being a point guard in the NBA. Just doing something for a long time doesn't mean you're good at it. Robert Martin doesn't write production-quality code, period. He claims to "ship" lots of code, but acknowledges that most of that is example code for his books and personal side-projects. But the code examples he has publicly available are not particularly well-structured, readable, or maintainable. For a particular egregious example, see https://github.com/unclebob/PDP8EmulatorIpad/blob/1eba53c08fb530effb9d29aca8134f7acadfdd5f/src/topt.c (not the current commit; he modified it somewhat after I sent him https://github.com/unclebob/PDP8EmulatorIpad/commit/dbfa03e90a084a25992dff79e5064897bce5ef42, which he did not acknowledge; see https://github.com/unclebob/PDP8EmulatorIpad/pull/2/commits/84483cd4d60320cd6ca5637f2c062d9d0540cc4a for the timeline). And while that small program is a particularly bad example, other bits of his code are also bad. Ousterhout was asked to comment on his "extract till you drop" approach and presented with a "refactoring" Martin did of a program due to Knuth (https://sites.google.com/site/unclebobconsultingllc/one-thing-extract-till-you-drop). Ousterhout responded that he was "bewildered and horrified" by the approach. As Ousterhout put it, "He has taken 25 lines of code that are pretty straightforward and easy to understand, and turned them into 38 lines with 9 methods, none of which has a stitch of documentation. What was the point of this?" (https://groups.google.com/g/software-design-book/c/Kb5K3YcjIXw/m/qN8txMeOCAAJ) These are all typical of Martin's approach. Hence why I say the man is a charlatan. Others have written at length about why, and how, his advice is generally bad. - Dan C. ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <CAK7dMtC=y+a6=vk_zrQSA659h8=td0YBpd0BTvxmAJowefm_VA@mail.gmail.com>]
* [COFF] Re: [TUHS] Re: Minimum Array Sizes in 16 bit C (was Maximum) [not found] ` <CAK7dMtC=y+a6=vk_zrQSA659h8=td0YBpd0BTvxmAJowefm_VA@mail.gmail.com> @ 2024-11-26 19:51 ` Dan Cross 2024-11-26 20:15 ` Larry McVoy 2024-11-26 21:38 ` John Levine 0 siblings, 2 replies; 6+ messages in thread From: Dan Cross @ 2024-11-26 19:51 UTC (permalink / raw) To: Kevin Bowling; +Cc: Anton Shepelev, COFF On Tue, Nov 26, 2024 at 8:48 AM Kevin Bowling <kevin.bowling@kev009.com> wrote: > On Thu, Nov 21, 2024 at 6:53 PM Dan Cross <crossd@gmail.com> wrote: >> [TUHS to Bcc:, Cc: COFF] >> >> On Mon, Nov 18, 2024 at 11:47 AM Anton Shepelev <anton.txt@gmail.com> wrote: >> > Dan Cross <crossd@gmail.com> wrote: >> > >Programmer ability is certainly an issue, but I would suggest that >> > >another goes back to what Rob was alluding to: compiler writers have >> > >taken too much advantage of UB, making it difficult to write >> > >well-formed programs that last. >> > >> > Following the letter, rather than the spirit, of the standard? >> >> Pretty much! >> >> > [snip] >> > >My sense is that tossing in bad programmers is just throwing gasoline >> > >onto a dumpster fire. Particularly when they look to charlatans like >> > >Robert Martin or Allen Holub as sources of education and inspiration >> > >instead of seeking out proper sources of education. >> > >> > I am a bad one as well, to have liked some things in Martin's books >> > /Clean Code/ and /Clean Architecture/ . True, heis no Wirth, nor >> > Dijxtra, nor Knuth, but why a charlatan? > > And what about Hollub? Pretty much the same thing. > A long time ago I came across and seemed to think some of his earlier books (on C) were ok. Yeah. He wrote a book about compilers, but as near as I can tell, it's mostly material regurgitated from the Dragon Book, just a different presentation, and a less academic focus. Curiously, he's in the acknowledgements for K&R (I forget which edition). I guess he read an early draft? > Looking lately, I don’t tend to care for the metaphysical and ceremonial stuff whence one starts talking about design patterns and scrum instead of doing the work so I haven’t paid attention. > > It’s a strong accusation to levy publicly and maybe should be explained. Many of Hollub's claims are ridiculous on the face of them ("you don't need a bug tracker! You don't need schedules! Code should be written by 'mobbing'!" Here's a representative example: https://twitter.com/allenholub/status/1734661813638459843 In that tweet he writes, "What we do involves essentially no mathematical analysis of anything. We are not doing math.If you're building a system that requires math, then the math is part of the _domain_, not the development process." I suppose he's never heard of time or space complexity analysis of algorithms? Or how about this one: https://twitter.com/allenholub/status/1827790079617892675 "A PR [Pull Request] is necessary only when someone you don't trust writes code in isolation. It's essential for OS work, for example, or if you're working using scatter/gather [https://bit.ly/3XYLhb3]. It's also a complete waste of time if you're working in a mob#/ensemble (or even a pair) because the code is reviewed as it's written." I suppose he's never worked someplace with a real, rigorous review culture. Also, https://x.com/allenholub/status/1634050850434826240 A few others: https://x.com/allenholub/status/1594859115557232640 https://x.com/allenholub/status/1613609655519019008 https://x.com/allenholub/status/1656811047783899138 https://x.com/allenholub/status/1610708432331632641 He has some code on Github that's relatively recent. It's not very good. - Dan C. >> Briefly, because he writes with unwarranted confidence, and just isn't >> a very good programmer himself. >> >> He writes with an authoritative voice about things that he doesn't >> know very much, if anything, about. For example, the things he's >> written about static typing in programming languages are complete >> nonsense. Sriram Krishnamurthi called him out on that >> (https://x.com/ShriramKMurthi/status/1136411753590472707) and he did >> not respond well, doubling down on his unfounded opinions >> (https://blog.cleancoder.com/uncle-bob/2019/06/08/TestsAndTypes.html). >> Later, he justified his opinion by making allusions to the amount of >> time he's been programming >> (https://blog.cleancoder.com/uncle-bob/2021/06/25/OnTypes.html). Hey, >> when it comes to logical fallacies centered on appeals to length of >> experience, well...I swooshed a basketball for the first time more >> than 40 years ago, but I've given up any dream I may have ever had of >> being a point guard in the NBA. Just doing something for a long time >> doesn't mean you're good at it. >> >> Robert Martin doesn't write production-quality code, period. He claims >> to "ship" lots of code, but acknowledges that most of that is example >> code for his books and personal side-projects. But the code examples >> he has publicly available are not particularly well-structured, >> readable, or maintainable. For a particular egregious example, see >> https://github.com/unclebob/PDP8EmulatorIpad/blob/1eba53c08fb530effb9d29aca8134f7acadfdd5f/src/topt.c >> (not the current commit; he modified it somewhat after I sent him >> https://github.com/unclebob/PDP8EmulatorIpad/commit/dbfa03e90a084a25992dff79e5064897bce5ef42, >> which he did not acknowledge; see >> https://github.com/unclebob/PDP8EmulatorIpad/pull/2/commits/84483cd4d60320cd6ca5637f2c062d9d0540cc4a >> for the timeline). >> >> And while that small program is a particularly bad example, other bits >> of his code are also bad. Ousterhout was asked to comment on his >> "extract till you drop" approach and presented with a "refactoring" >> Martin did of a program due to Knuth >> (https://sites.google.com/site/unclebobconsultingllc/one-thing-extract-till-you-drop). >> Ousterhout responded that he was "bewildered and horrified" by the >> approach. As Ousterhout put it, "He has taken 25 lines of code that >> are pretty straightforward and easy to understand, and turned them >> into 38 lines with 9 methods, none of which has a stitch of >> documentation. What was the point of this?" >> (https://groups.google.com/g/software-design-book/c/Kb5K3YcjIXw/m/qN8txMeOCAAJ) >> >> These are all typical of Martin's approach. Hence why I say the man is >> a charlatan. Others have written at length about why, and how, his >> advice is generally bad. >> >> - Dan C. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [COFF] Re: [TUHS] Re: Minimum Array Sizes in 16 bit C (was Maximum) 2024-11-26 19:51 ` Dan Cross @ 2024-11-26 20:15 ` Larry McVoy 2024-11-27 1:03 ` Steffen Nurpmeso 2024-11-26 21:38 ` John Levine 1 sibling, 1 reply; 6+ messages in thread From: Larry McVoy @ 2024-11-26 20:15 UTC (permalink / raw) To: Dan Cross; +Cc: Kevin Bowling, Anton Shepelev, COFF On Tue, Nov 26, 2024 at 02:51:38PM -0500, Dan Cross wrote: > Many of Hollub's claims are ridiculous on the face of them ("you don't > need a bug tracker! You don't need schedules! Code should be written > by 'mobbing'!" Why would anyone listen to this guy? I ran engineering at BitMover for 18 years, yeah, you need a bug tracker. If for no other reason than to track the churn rate. HP-UX used that metric to decide when to land the plane. You need to realize that schedules are a rough idea, but you absolutely need them, people work better towards a goal. This guy sounds like he hasn't worked on anything other than small user space programs. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [COFF] Re: [TUHS] Re: Minimum Array Sizes in 16 bit C (was Maximum) 2024-11-26 20:15 ` Larry McVoy @ 2024-11-27 1:03 ` Steffen Nurpmeso 0 siblings, 0 replies; 6+ messages in thread From: Steffen Nurpmeso @ 2024-11-27 1:03 UTC (permalink / raw) To: Larry McVoy; +Cc: Kevin Bowling, Anton Shepelev, COFF Larry McVoy wrote in <20241126201503.GJ30570@mcvoy.com>: |On Tue, Nov 26, 2024 at 02:51:38PM -0500, Dan Cross wrote: |> Many of Hollub's claims are ridiculous on the face of them ("you don't |> need a bug tracker! You don't need schedules! Code should be written |> by 'mobbing'!" | |Why would anyone listen to this guy? I ran engineering at BitMover for |18 years, yeah, you need a bug tracker. If for no other reason than to |track the churn rate. HP-UX used that metric to decide when to land the |plane. Only to mention it, the Linux bugzilla is famous for living "in the twilight zone": https://lore.kernel.org/lkml/6808cd17-b48c-657d-de60-ef9d8bfa151e@leemhuis.info/ From: Thorsten Leemhuis <linux@leemhuis.info> To: Linus Torvalds <torvalds@linux-foundation.org>, Greg KH <gregkh@linuxfoundation.org>, Konstantin Ryabitsev <konstantin@linuxfoundation.org> Date: 2022-04-06 Subject: A lot of regression reports submitted to bugzilla.kernel.org are apparently ignored, even bisected ones |You need to realize that schedules are a rough idea, but you absolutely |need them, people work better towards a goal. | |This guy sounds like he hasn't worked on anything other than small |user space programs. I have not seen or read anything but what was posted here, but .. honestly i find it overly funny. In that it sounds to reflect actual reality of many, if not most, big engineering efforts i have ever heard of. Ie, if budget and time limits go down the engineer reality toilet, why not just leave them alone. For example, in Germany/Europe we had the Jäger90 (fighter plane), to which the polish did not want to .. but that aside .., which then turned to Jäger91, 92, 93, 95, 2000 (i have forgotten the real details mind you, 35+ years since that was mess of the week -- and it really was exactly that). Yes, eventually this turned to the Eurofighter, but it was *at leas* a decade late, and it took even longer thereafter, until 2006 says wikipedia, until it really entered service. --End of <20241126201503.GJ30570@mcvoy.com> --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt) | |And in Fall, feel "The Dropbear Bard"s ball(s). | |The banded bear |without a care, |Banged on himself for e'er and e'er | |Farewell, dear collar bear ^ permalink raw reply [flat|nested] 6+ messages in thread
* [COFF] Re: [TUHS] Re: Minimum Array Sizes in 16 bit C (was Maximum) 2024-11-26 19:51 ` Dan Cross 2024-11-26 20:15 ` Larry McVoy @ 2024-11-26 21:38 ` John Levine 1 sibling, 0 replies; 6+ messages in thread From: John Levine @ 2024-11-26 21:38 UTC (permalink / raw) To: coff According to Dan Cross <crossd@gmail.com>: >> And what about Hollub? > >Pretty much the same thing. > >> A long time ago I came across and seemed to think some of his earlier books (on C) were ok. > >Yeah. He wrote a book about compilers, but as near as I can tell, >it's mostly material regurgitated from the Dragon Book, just a >different presentation, and a less academic focus. It was terrible because none of the code worked. There was a fat list of errata that fixed some of them but it was more trouble than it was worh. R's, John -- Regards, John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies", Please consider the environment before reading this e-mail. https://jl.ly ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-11-27 1:04 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <CAKH6PiUS7RjkCyuYREFk4Li+aORaEZ_Vu7Dg1nnsFuHJF+mqog@mail.gmail.com> [not found] ` <CAKzdPgwJ7-_BWztOQKiB6h5a+OGwXtefsD47Fq+GDwGGF7N4UA@mail.gmail.com> [not found] ` <CAFH29tqBw0Qpzqv=21SUZonL7w_tpB0i4Ts8PwQ-Akn5PvTvVw@mail.gmail.com> [not found] ` <CAKzdPgzQTjruZ3Cc-Sfram5M=jM+emvsTGR+7GRtZUUzNhZOCg@mail.gmail.com> [not found] ` <20240930003630.GE17434@mcvoy.com> [not found] ` <e23f7d87-1d17-f484-74ad-53deb5cc278f@makerlisp.com> [not found] ` <d2d70aa8-0d7c-0a1e-9152-a4f8c50ae33d@makerlisp.com> [not found] ` <202410011243.491ChKiV419651@freefriends.org> 2024-10-01 13:20 ` [COFF] Shadowing variables in Go Ralph Corderoy [not found] ` <20240930191216.tIpea9lo@steffen%sdaoden.eu> [not found] ` <CACY3YMHzg+6U_zTuhMTORgfh_Kse6MTspaGDfuUjXb4vLvV9mw@mail.gmail.com> [not found] ` <CAEoi9W46LRBBxQ22kM8kmvqHeTetXkp=jfUeDC+qu0kbvv+swA@mail.gmail.com> [not found] ` <vhfa99$114r$1@ciao.gmane.io> 2024-11-22 1:53 ` [COFF] Re: [TUHS] Re: Minimum Array Sizes in 16 bit C (was Maximum) Dan Cross [not found] ` <CAK7dMtC=y+a6=vk_zrQSA659h8=td0YBpd0BTvxmAJowefm_VA@mail.gmail.com> 2024-11-26 19:51 ` Dan Cross 2024-11-26 20:15 ` Larry McVoy 2024-11-27 1:03 ` Steffen Nurpmeso 2024-11-26 21:38 ` John Levine
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).