News for hackers. Stuff that matters.
Re:Three Virtues of a Great Programmer by petsfed on Thursday February 15, 2024 @02:24PM (#39387245)
I've never really liked his inclusion of hubris here. Hubris is often defined as unjustified arrogance. Justified confidence, even if you're a jerk about it, was never the fatal flaw of a Greek hero.

So I've always substituted arrogance for hubris: the belief that you better understand, and can better address, the requirements than any off-the-shelf library/program/ecosystem.

Re:Three Virtues of a Great Programmer by mattbee on Thursday February 15, 2024 @02:51PM (#39387658)
When you learn programming, you are told to never roll your own crypto, or to always use the ready-made libraries, or to avoid manual memory management - and you can have a perfectly fruitful career following rules like that.

But you don't get big changes or ambitious intellectual growth without spotting that - if you did choose to break those sorts of rules - you could build something really new and exciting.

Anyhow that's how I've always taken the "hubris" part - knowing when there's an opportunity to achieve something in a way that someone will tell you is too risky.

Re:Three Virtues of a Great Programmer by bluefirebrand on Thursday February 15, 2024 @03:33PM (#39388364)
> When you learn programming, you are told to never roll your own crypto, or to always use the ready-made libraries, or to avoid manual memory management

I've always taken this sort of advice, such as "never reinvent the wheel" to mean "inventing the wheel is time consuming so give yourself an advantage by using already existing wheels", which really has nothing to do with hubris.

I never took it as "Don't bother trying to reinvent the wheel because you aren't capable of it"

Re:Three Virtues of a Great Programmer by eloisant on Thursday February 15, 2024 @04:20PM (#39389050)
You can build a better wheel if you want to focus on that.

If you want to build a car however, focus on building the car and not creating a new kind of wheel.

Re:Three Virtues of a Great Programmer by shiroiushi on Friday February 16, 2024 @05:16AM (#39395217)
If you want to build a better car than everyone else's current cars, you might need to create a new kind of wheel.

Look at the Apollo moon rovers, for instance: they couldn't use off-the-shelf wheels for those.

Re:Three Virtues of a Great Programmer by ben_w on Saturday February 17, 2024 @07:48AM (#39408967)
My take on that was that rolling your own crypto is hubris, but for all other ready-made libraries it's just about saving time[0].

There's only one person I ever met who thought manual memory management was a good idea, and their code was terrible in lots of other ways besides that, so I can't say I've ever thought about that particular example.

But after a decade or so of "don't roll your own crypro", I've also heard that if you specifically want to get into cryptography, the only way to do it is to research existing crypro libraries and work your way upwards, starting from "can I find bugs someone else already found, without reading the full details of their report?" and eventually rolling your own.

[0] That said, I'd now also add that libraries serve as Schelling points to make it easier to find jobs and to find workers.

Re:Three Virtues of a Great Programmer by francisofascii on Thursday February 15, 2024 @03:48PM (#39388580)
I read hubris here as...you want to be the best, you don't want to be criticized, so you will work hard and be super motivated to make your program work very well, handling all the various edge cases, making it better than the competition.
Re:Three Virtues of a Great Programmer by graemep on Thursday February 15, 2024 @04:15PM (#39388982)
Yes, but that is not what the word hubris means. It means pride in the seven deadly sins sense. The pride that comes before a fall. Hubris would not mean working hard to reduce the scope for criticism. It would mean not accepting valid criticism because you think you are better than the critics.

He could have just used the word "pride" (which is far broader and has positive meanings too) instead. In some ways "ambition" might be a better fit.

Re:Three Virtues of a Great Programmer by clayg on Thursday February 15, 2024 @04:49PM (#39389504)
Ambition might stand out in the same list as laziness. Plus I'd be reticent to tell programmers to "be more ambitious!" - I see greenhorns esp just trying to do too damn much at once.

In the context of "code that is going to be reviewed" maybe even "vanity" might have been closer to what he was getting at? (did you even RUN this?) Except us old neck beards obviously don't care about how WE look ;)} - just how our code reads.

I think "take pride in your work" would have substituted well; but given the options, maybe hubris was fine - he explains what he means in a couple of sentences.

Re:Three Virtues of a Great Programmer by graemep on Friday February 16, 2024 @07:07AM (#39395842)
Or just "pride" and then an explanation.

Using a word and then redefining it seems very humpty dumpty "a word means what I want it to mean"

Re:Three Virtues of a Great Programmer by agumonkey on Thursday February 15, 2024 @06:54PM (#39391019)
so they try to describe a balanced sense of pride and values
Re:Three Virtues of a Great Programmer by W3cUYxYwmXb5c on Friday February 16, 2024 @05:32PM (#39403879)
He gives his meaning for hubris. Seems silly to disagree based on a different definition that he's not using.
Re:Three Virtues of a Great Programmer by petsfed on Monday February 19, 2024 @01:49PM (#39433242)
Its just not a common one. My disagreement is founded in the fact that he uses an uncommon (arguably wrong) definition of hubris.

Part of the impact of jokes of this form is that you are supposed to be able to sort of reason your way there without explanation. But while laziness and impatience rely on the common usage of the terms, hubris is off in left field, and not even in a way that's commonly understood amongst software developers. Hubris is not "pride, but more so", it is specifically "unjustified pride". A lot of people first encounter the word "hubris" in high school literature/English class, talking about the common tropes of ancient Greek tragedies, where it is necessarily unjustified pride. I guess there's a way to understand "hubris" as "excessive (abrasively so) justified pride", but that seems vanishingly rare. I'd argue that that distinction makes "hubris" here misleading. When I (and, I expect, most people who learned the word in high school), read that a good programmer should have hubris, I understand that to mean a good programmer should be confidently wrong.