Yea, let's not forget the dark times of the late 1990s / early 2000s. It was next to impossible to motivate developers to release software for more than Windows. Windows application software developers were thoroughly steeped in the platform. WinMain(), HINSTANCE, LPTSTR, CopyMemory(). Even for parts of code that did not require interacting with Win32, they'd reach for DWORD instead of unsigned int. The effort of porting these monstrosities to something non-Windows was enormous. As a junior engineer, I'd butt heads with my senior leads, arguing to keep the business logic in portable C and keep the "windows stuff" minimal and in its own cordoned-off directory. All the senior guys thought this was ridiculous--we would never have to port this to anything but Windows. Their idea of "portable" software was: It works on Windows 95 and Windows NT.