5 ms·
Working on linux storage drivers for a decade or so taught me how to write code iteratively, slowly and methodically morphing it towards my goal, with each step
by smcameron 2y ago
Working on linux storage drivers for a decade or so taught me how to write code iteratively, slowly and methodically morphing it towards my goal, with each step along the way functioning, and an improvement over the previous step. You basically were forced to do things gradually. Upstream generally wouldn't accept a patch that just changed things wholesale, or even a patch that didn't make one "logical" change. Tools emerged to make such a workflow easier, easy, even. First Andrew Morton's patch scripts[1], then quilt[2], and then stgit[3], which I still use to this day on my own projects.
I will say it does help when slowly morphing code that it was all C code. C is very malleable, like clay. I've found code in some other languages I won't name to be less malleable, more crystalline, more necessary to smash to atoms to effect the desired change.
[1] https://lore.kernel.org/lkml/3DB30283.5CEEE032@digeo.com/ https://lore.kernel.org/lkml/3DB30283.5CEEE032@digeo.com/
[2] https://savannah.nongnu.org/projects/quilt/ https://savannah.nongnu.org/projects/quilt/
[3] https://stacked-git.github.io/ https://stacked-git.github.io/
- kirubakaran 2y ago> C is very malleable, like clay. I've found code in some other languages I won't name to be less malleable In other words, C is malleable like a metal, and oxidized metals typically aren't :-p
- kazinator 2y agoI used quilt over 15 years ago as part of a from-scratch embedded distro, for applying the package patches. Years later I encountered the same trick inside Yocto: one of the few things done right which made life easier, in contrast to almost everything else inside that dumpster fire.