I'm feeling a little reflective today.
When I started at JRiver, we were on version 5 of Media Jukebox. It was already many hundred thousand lines of MFC code. MFC is tied tightly to Microsoft and Windows. CString, CMap, CDialog, etc.
Many years ago, we said "Hey, we want to port this thing." We started to replace all the MFC with code we designed ourselves. This was an unbelievably huge undertaking. First we replaced basic structures like a string, map, or array. Then we grew to replacing complicated things like windows, edit controls, etc. This task kept me up a lot of nights.
Then we needed to make the code we designed ourselves work on other platforms. That was a huge task too.
But today, we have a Windows, Mac, and Linux version. All the versions are grown from the same code.
Wow!