Not everyone has an inner C inside of them. I am basing this reply on this youtube video, which has a really interesting discussion about the goals of different programmers. TL;DR is that craft based programmers are the ones that tend to build the tools that are then used by result based programmers. And these programmers definitely prefer using someone else’s code, to reach their goal faster. These programmers tend to prefer front end development, which I’m glad because I don’t want to be the one doing it lol
I’m saying this as someone who likes to make everything myself
You are putting too much importance on performance. I don’t use frameworks (or very rarely), but I still end up making my own frameworks/modules anyway for a simple reason, hardcoding everything is not sustainable. It might be easier to read it if the script is small, but when it grows, it’s waayyy harder to read. When making large scale projects you need to abstract away the complexity of this or that system or your project will become very hard to build upon. I absolutely believe that one should know as much as possible of how everything works, but at some point it’s too much, and it needs to be hidden away
I always try to build my module scripts (which I usually use to abstract code) in such a way as to abstract without limiting what is possible (usually by having methods take functions as arguments). I also try to build my modules in such a way where someone hopefully can understand what the method does without having to look into the module
Abstraction is a balance between complexity and limitation. Usually, when reducing complexity you make the system more limited in what it can do
Software as a whole is built on abstraction. Computers are extremely complicated if you look at them as a whole, but all the layers of abstraction built on top of each other is what makes all this madness possible