I'm beginning to find sufficiently abstract C code to be more confusing than assembly. Like, just poke the register and write a comment explaining what you're doing, don't give it ten different names spread out across multiple files.
@winduptoy abstraction is as much a recipe for disaster as it is as recipe for success.
Almost every convention or dogma or paradigm in regards to programming attempts to impose some limitation or restriction on the kinds of abstractions that are acceptable to employ in an effort to streamline what one must reason about in order to comprehend, maintain, extend and contribute.
The further away you get from the metal the more you have to understand -- to truly understand.
@deianeira @winduptoy for me understanding always happens at the level of one or more layers. A good abstraction is efficient if it allows to ignore the layers below and if this ignorance is not an impediment to achieve the goal. Most of the time you don't need to understand all layers and you could not. Do you know how the CPU works? A gate? A semiconductor? Quantum mechanics? But bad abstractions can be leaky or prevent access to the next layer.
Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them.