Paying Down Technical Knowledge Debt
Programmers frequently encourage one another to “pay down technical debt”: spend a little time cleaning up the mess your team made when they implemented a new feature. That way, it’ll be easier to implement the next feature – you won’t be bogged down by cruft left behind.
Recently I’ve been accruing a lot of what I call “technical knowledge debt”. Here are some examples from my open source work on the Swift compiler:
- “On Linux, Swift object files are linked in between ‘begin’ and 'end’ object files:
/usr/bin/ld swift_begin.o SourceOne.o SourceTwo.o swift_end.o. These begin and end object files aren’t used on Darwin. I don’t know why this is. When modifying the Swift build system for Android, I sometimes see errors if I make a change that doesn’t put these begin and end objects where they’re supposed to be. But I’m focused on getting Swift on Android to work, so I’ll look into what
Continue reading →