This. The fact that so called "hackers" would be using Chrome is the reason why the world is shit and tech is stagnant. They keep using Chrome and writing Javascript.
john ousterhout's book is the only book on how to write software that has any actual evidence behind it. i highly recommend it as the only book to read on how to write code. and uncle bob, well, best to avoid his stuff as much as possible. clean code takes away about 5 years from every dev's life as they think they need to read it to become an intermediate developer and one they realize that is not the way, can they finally grow.
I agree. Our industry is perhaps the most cargo-culty industry that I've ever worked in. And the sad part is, unfortunately everybody thinks that they are the paragon of original clear thinking.
Humans naturally love to twiddle knobs and move things around. Notion attaches that behavior with money making through an affiliate program. Result is a billion dollar company.
So around the TDD phase of Rails and Ruby, there was this huge push to make methods 5 lines or really short and dependency inject everything. It would make changes incredible hard to make because which the open closed principle talks about how things like this should be easy to change, you end up with a lot of subtle bugs because your individual dependencies drift from each other. I think the Ruby community has gotten much better now with more experience but ya that time it was crazy. And Ruby allows you to really take the metaprogramming and block passing madness to the next level.
I didn't leave the community because of it. I left it because Ruby was slow as molasses, dynamic typing is a failed experiment (imo) and people would love magic and be proud of it. Which meant systems would break in production more times than I could take and I have done so many on call rotations because someone thought some magic was a fun way of doing it.
For personal projects I used Steel Bank Common Lisp because there the dynamic nature of the language actually has benefits such as programming through the REPL which is much more reliable than typing dynamic code in an editor to build programs.
Once I had to hire people I moved to Go but then again moved to Rust because I want to write programs which do not break, is fast as possible and doesn't take my users' memory and cpu for granted. Who am I to burn their electric bill or data plan while delivering broken buggy software to them. Plus I cannot stand null pointer exceptions and Go due to their ideological drive of remaining "simple" has null pointer exceptions in 2024.
Also the other meta thing I realized was because Rust is harder to get into, the discourse, libraries, tutorials, community is much higher quality compared to anything else I have seen so far so I really enjoy it. Plus Rust has some really cool things like high level maps and functional code while them compiling down to the same Assembly as for loops and other such zero cost abstractions that I like.
You sort of have to marinate yourself in the ideas of the book. But the big one is that you should have a very limited API. And each API function should do a lot of things. So a very narrow set of deep APIs make for the best programs. The other thing was indirection. Try avoiding it as much as possible. Languages which allow easy access to functions or lambdas or blocks being pass around, usually end up with 4 - 5 levels of function calls to get anything done. That makes things really complected together and makes it hard to reason about later.
I went on a long email back and forth with the author because this was the one book that opened my eyes so much that I did't know why the Ruby community (of which I was a part of then, but am no longer) would break so many of the principles of the book.
Maybe the only book that has actual made me a better programmer that I can objectively measure.
I chose React Native recently over Flutter for a new bunch of apps that I'm making. Go seems to be the only one which survives the terrible management of Google.
Dont forget Allo. Goes to show how much role luck plays in these companies' success and it is so strange that others still copy what Google, Amazon and these companies are doing thinking that they have some sort of management hack or routine which makes them successful but in fact they become successful despite of their bad practices not because of it.
I have interacted with him a few times and when he decides to help, he will help you all the way with an almost maniacal focus and drive. For what it's worth I have never heard bad things about him from individual interactions.