| ▲ | farley13 2 hours ago | |
I know magic has a nice Arthur C. Clarke ring to it, but I think arguing about magic obscures the actual argument. It's about layers of abstraction, the need to understand them, modify them, know what is leaking etc. I think people sometimes substitute magic when they mean "I suddenly need to learn a lower layer I assumed was much less complex ". I don't think anyone is calling the linux kernal magic. Everyone assumes it's complex. Another use of "magic" is when you find yourself debugging a lower layer because the abstraction breaks in some way. If it's highly abstracted and the inner loop gives you few starting points ( while (???) pickupWorkFromAnyWhere() )). It can feel kafkaesque. I sleep just fine not knowing how much software I use exactly works. It's the layers closest to application code that I wish were more friendly to the casual debugger. | ||
| ▲ | xantronix 2 hours ago | parent [-] | |
To me, it's much less of an issue when it works, obviously, but far more of a headache when I need to research the "magic" in order to make something work which would be fairly trivially implemented with fewer layers of abstraction. | ||