News for hackers. Stuff that matters.
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.