Live data from Hacker News

Uncle Bob and Silver Bullets

hillelwayne.com

211–220 of 228 posts

Re: Uncle Bob and Silver Bullets

#211

Earlier quoted context omitted.

You’re creating a false dilemma. It’s entirely possible to be a disciplined programmer and use good tools. And, yes, a teacher should care more about the skills than the tools, but Uncle Bob is actively against the tools, claiming that they impede learning the skills. Which is no more true than claiming that automatic transmissions or anti-spin in modern race cars impedes learning how to race.

I don't think he's actively against those tools. I think he's actively against claims that those tools actually solve the problems developers deal with, instead of uncovering the true behavior that lies beneath those problems.

No, he really is against the tools. He is on the record as being opposed to static typing, optionals etc.

And by the way, noone is making the argument that tools solve all the problems developers deal with. But to say that actually, they solve none of them, is foolish. Optionals, to take one example of something Uncle Bob is against, prevents a large proportion of what is probably the most common runtime error, namely dereferencing a null pointer. And yes, Uncle Bob is right that it comes at the small expense, which is having to think more carefully up front about your data and your abstractions, and there is no doubt he is right that some programmers will feel constrained and will find and use whatever mechanisms exist to bypass the safety that this feature offers. But in much the same way, there are also some people who feel constrained by seat belts, hard hats, helmets, dust masks etc. and choose not to wear them, yet you don’t find many people who would argue that this makes them pointless and generally a bad idea.

Re: Uncle Bob and Silver Bullets

#212

Earlier quoted context omitted.

Exactly, this is what I mean by "do not scale." It takes many years, if not decades for one to become a decent developer. We simply cannot afford this.

We can't afford it with the current pipeline, but perhaps with a better pipeline, we can. Perhaps something more proper and akin to the older engineering disciplines? Or to doctors? They're doing incredibly important jobs, and spent an appropriate amount of time learning and proving them selves. Software is now completely critical in so many aspects of the world, and becoming more so. When people's lives are at risk,…

I think this is a fallacy. I believe another pipeline does not necessarily produce better doctors. They also make mistakes; sometimes those mistakes cost people lives.

Re: Uncle Bob and Silver Bullets

#213

Earlier quoted context omitted.

Agree with this. I like some of his ideas. But a problem I have(possibly of my perception) with uncle Bob is that he gets too aggressive. If you don't have X percent (100%) code coverage, then you are doing it wrong, you are not a craftsman, etc. Well, Dan North put things in perspective a bit- https://dannorth.net/2011/01/11/programming-is-not-a-craft/ The problem is dogma. And it keeps repeating. But probably this…

I have never told people that they must have 100% test coverage. Indeed, I tell them that 100% test coverage is impossible. What you are referring to is a statement I frequently make -- 100% coverage is the goal. It's an asymptotic goal, but it's still the goal. No lesser goal makes any sense.

But then you can find people saying that type checking has no value because all errors will be caught by the testing you should be doing - I came across someone saying that just a few days ago.

I am not sure that 100% can be called an asymptotic goal, given that you cannot even get close, for real systems. Once you recognize this, you can start having a realistic discussion about what you actually will be able to test for, how best to allocate your limited resources, and what other steps you might take to mitigate the consequences of this unfortunate fact. It means that methodologies bassed on extensive testing must justify this use. An additional benefit is that we might be able to discuss what we can do to improve software development without the sort of dogmatic non-sequitur that I mentioned in my first paragraph.

Re: Uncle Bob and Silver Bullets

#214

Earlier quoted context omitted.

> First, do no harm, then use like Light Table, Model Driven Engineering, and TLA+. Looking at some of Uncle Bob's other posts linked from this article, I don't think that's what he's saying. He (Uncle Bob) goes on and on about discipline, but at the same time dismisses anything that might actually force programmers to be disciplined, like type systems that force you to check references for null before dereferencing…

Type systems do not force programmers to be disciplined. Type systems tempt programmers to cheat.

Like giving WW1 pilots parachutes would tempt them to bail out of perfectly good airplanes. Like putting enough lifeboats on the Titanic would tempt Captain Smith to race blindly through ice-filled seas.

What does 'cheating' mean in this context? If anything, type systems (especially modern ones) encourage programmers to think more carefully about the types in their programs.

Re: Uncle Bob and Silver Bullets

#215
post #180
post #43

Earlier quoted context omitted.

Bill Gates was actually a pretty decent programmer. His technical insights peter out somewhere in the 1980s or early 90s at most, but he's had some interesting things to say about those eras. (Interesting in the sense that it's someone speaking about the eras that was there in a big way, not necessarily because he's got surprising insights into software engineering or something.)

Do you have any links to his insights? They sound pretty interesting but I'm not sure what to search for to find them.

https://www.joelonsoftware.com/2006/06/16/my-first-billg-rev...

Re: Uncle Bob and Silver Bullets

#216
post #180

Earlier quoted context omitted.

Do you have any links to his insights? They sound pretty interesting but I'm not sure what to search for to find them.

https://www.joelonsoftware.com/2006/06/16/my-first-billg-rev...

  He didn’t meddle in software if he trusted the people who
  were working on it, but you couldn’t bullshit him for a
  minute because he was a programmer. A real, actual, 
  programmer.
I stand corrected. Thank you for the read.

Re: Uncle Bob and Silver Bullets

#217

Earlier quoted context omitted.

Personally I’d prefer my language to let me fuck up.

> Personally I’d prefer my language to let me fuck up. And as a (completely hypothetical) competitor of yours, I would support you using a language that encourages you to fuck up frequently.

There is a difference between letting you and encouraging you to fuck up. I have given Rust a go, but its tricky to understand, and that seems like a language designed not to let you fuck up.

Re: Uncle Bob and Silver Bullets

#218
post #202
post #89

Earlier quoted context omitted.

Completely agree with this. The post where Martin derides modern, type-safe languages (Kotlin and Swift) [0] was just unbelievable to me. "Ask yourself why we are trying to plug defects with language features. The answer ought to be obvious. We are trying to plug these defects because these defects happen too often. Now, ask yourself why these defects happen too often. If your answer is that our languages don’t preve…

He didn't condemn Kotlin and swift. He is saying that they aren't necessary and don't solve the original problem. That the constant search for a new framework or of language that will fix everything is a futile attempt to avoid learning how to more effectively code with the tools you already have.

In one of the linked posts he says that 100% test coverage might not be truly achievable, but it's nonetheless a valid asymptote to aspire to.

I think that exact argument applies to designing ever-safer, ever-better languages. You might never have the perfect tools that ensure 100% program correctness, but it's sure as hell what a tool-maker should aspire to.

Re: Uncle Bob and Silver Bullets

#219

Earlier quoted context omitted.

I don't think he's actively against those tools. I think he's actively against claims that those tools actually solve the problems developers deal with, instead of uncovering the true behavior that lies beneath those problems.

No, he really is against the tools. He is on the record as being opposed to static typing, optionals etc. And by the way, noone is making the argument that tools solve all the problems developers deal with. But to say that actually, they solve none of them, is foolish. Optionals, to take one example of something Uncle Bob is against, prevents a large proportion of what is probably the most common runtime error, namel…

No, he is not against the tools.

"I have nothing against tools like this. I’ve even contributed money to the Light Table project. I think that good software tools make it easier to write good software. However, tools are not the answer to the “Apocalypse”."

http://blog.cleancoder.com/uncle-bob/2017/10/04/CodeIsNotThe...

Re: Uncle Bob and Silver Bullets

#220

Earlier quoted context omitted.

> First, do no harm, then use like Light Table, Model Driven Engineering, and TLA+. Looking at some of Uncle Bob's other posts linked from this article, I don't think that's what he's saying. He (Uncle Bob) goes on and on about discipline, but at the same time dismisses anything that might actually force programmers to be disciplined, like type systems that force you to check references for null before dereferencing…

That's quite a common issue when you're trying to emphasize a specific point. Uncle Bob's trying to make software developers care about their craft. He seems dismissive of any other techniques, but I think that's because he really wants people who read his posts and watch his videos to understand that specific point. If you already understand that point, then you're not the audience he's trying to talk to, and you're…

I don't agree with your interpretation, and neither does the user "unclebobmartin" here on HN: https://news.ycombinator.com/item?id=15420618

This is not about emphasizing a point about caring for your craft. It's about open hostility to certain things that are not his particular preferred thing.

Post reply on HN