Over on the birdsite @generativist asked: "What #programming tool / practice changed your life more than version control? Looking for some big wins that I've somehow missed." https://twitter.com/generativist/status/1188101264237875201
My answer? OOP. Because even when I'm not using an OOPL the concepts inform my designs.
That said, younger programmers grew up with OOP and (a) don't see it as the amazing sea-change I do while (b) also not doing it right anyway.
Seriously. Most of you are doing OOP wrong.
But then, most of you also do memory management and threading wrong. Sometimes I think Go was simply an attempt to create a language that let programmers do the stupid shit they do without consequences.
That's what I like about Rust: it doesn't hide those consequences behind CPU-intensive, memory hungry complex algorithms and syntactic sugar. Instead it makes you fix your code until the compiler is convinced you are either aware of the consequences or have stopped doing the stupid shit.
@jackwilliambell Learning functional programming was that for me. Changed the way I write oop code too.
@jhulten Yeah, there are so many epiphanies you need to unlock before you can be a truly good programmer; and not all of us reach the same ones.
Another for me was Closures. My main programming language for much of my career was C, and yet Closures heavily affect how I design APIs.
(No, you can't do Closures in C and most of the ways to fake them suck. But, if you ask yourself what you would DO WITH A CLOSURE HERE IF YOU HAD ONE it can change everything.)
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!