Wine 5.0 is due in a month, and several important office-related bugs have been fixed. Of the bugs I fixed, it contains aggregation support for the web browser COM object and msxml3 support for URL-encoded filenames (used by several Microsoft products), string length fixes when editing treeview control labels, fix for a buffer overflow in long treeview labels, support for overwriting pixels instead of alpha blending in gdiplus to fix the graphical corruption due to transparent brushes not erasing the background properly, winsock improvements that fixed networking in libQt5 apps and a fix for sending network sockets between processes, better support for video capture devices, and more. It is getting easier and easier to get large applications working, for example, Visual Studio 2019 Express .NET Edition already installs and starts, after only 4 patches (already committed). I believe it will only take another 5000-10000 bug fixes for Wine to reach full compatibility with 90-95% of Windows applications. With .NET going open source in November 2020, Wine will never be in better shape. Please report your bugs with Wine, I want to fix them!!!
LibreOffice, Samba, ntfs-3g/fat32/extfat filesystem drivers, and so on, also help.
Higher level languages and portable APIs (Java, Python, Node.js), have also made developing for other platforms easier.
Open standards.
Web applications are also a big win against Microsoft.
Hardware that doesn't require OS-specific drivers, eg. printers with generic printing protocols, is also great.