I've been using an Ubuntu platform exclusively for about two weeks, and about three weeks total to make the switch. There was pain (much of it learning curve) but so far it's been worth it.
I bought a used Dell Lattitude 5580 with an I7 CPU, 32GB RAM and 500GB SATA 3 drive. It's mostly a solid machine. The screen is crappy compared to the Mac - about 1/3 the resolution (1366x768). The other anoying thing is the trackpad: it's left offset to accomodate the numeric keypad which I doubt will see use. The nice thing is that I now have a plethora of vendors & machines to choose from.
The plan was to setup Windows & OS X VMs using VMware. Workstation Player, interestingly, is free for private use. And with the DrDonk unlocker (https://github.com/DrDonk/unlocker) you can build & run OS X VMs as well. It's interesting that you have to buy Fusion for Mac which is essentially the same product. I suspect it has to do with Apple's more restrictive licensing.
Getting Ubuntu installed with a basic setup was easy. For an open-source, free OS, they've done a really good job. It checks all the boxes for security, GUI, application integration, and a nice ecosystem. It does have some quirks and there are a lot of extensions to add to mimic the experience of the Mac (silly things like the date/time & CPU load display) - but overall a good experience. It is solid - no panics, or drive corruption on the few occasions I did lock it up (VMware driver problem).
Originally I thought I'd need the OS X VM for some time since I have a large iTunes music library and still use an iPhone. Probably the most painful part of the conversion experience - failing to get the iPhone to sync in the VM changed that. I tried all the hacks - USB 2.0, usb.quirks settings, etc. Nothing worked. I finally decided that my iPhone 6's days were also numbered and it would be better to dedicate effort to getting my music library converted. Then I'd only need the OS X vm to migrate pictures which isn't a big deal (just time consuming).
Here's a run-down of how I've dealt with many of my big ticket items.
General approach for apps like mail, calendar, music, etc. Stick with distributed programs when possible since they are most likely to be well supported and open, and have a long life.
Stream I/O programs - e.g. GPIB. There are some sublte differences from BSD kernels that gave me fits. I am not a developer so this was a painful part of the learning curve. BSD specific programs will also need LIBBSD support. LIBBSD-DEV is needed for compiling.
Bluetooth communication with embedded SOCs. I haven't been able to get a Microchip RN4677 BT module to connect using SPP. Successfully pairs and can initiate connection with RFCOMM. BTMON trace shows BTCON initiating disconnect after L2CAP setup & exchanging modem parameters. Maybe debug with PICTAIL so can see if module is sending error data to RS232 side.
Same module works fine with OS X & FreeBSD so this is dissappointing and kind of a big deal since I do a lot of bench testing with a combination of GPIB and BT controlled gear from a central console. My workaround is to use an ancient Macbook.
iTunes. Major disaster. Library has a lot of 'Protected AAC' files which nothing else can play. All of the posts out there describing the use of iTunes Music service to download these songs from the cloud after deleting the protected AAC and getting a 'Purchased AAC' are hogwash.
I wound up buying Tunefab's converter. The catch is that to convert a song it must be played - Tunefab installs an audio driver that pipes the digital audio to its engine that writes out a file in your favorite format. It took three days to convert. Audio books are the same - that took 12 days. I setup my Mac in a corner and just let it run. When done I setup a share that Rhythmbox (Ubuntu's default music player) could import all the music from. Note that 'Purchased AAC' do not have embedded DRM so no conversion required.
Pictures. Haven't investigated much, but doesn't appear to be any automated migration to Shotwell (Ubuntu default). Maybe just manual copy out of Photos folder by folder.
iPhone sync until on Android. No more updates to iTunes music library so not a problem. Pictures can be imported to Shotwell, a bit manual - mounts like a camera. No ability to sync back to phone.
MPLAB embedded development. Setup and tested. Note that there are major changes in XC8 2.x compilers - moved to C99 standard. Projects will require changes - need to review release notes.
Autodesk Eagle. Setup and tested.
MS Windows 10 VM setup to run MS Office and Windows-only engineering apps. This was running under Fusion and ported without problems.
HP printer LaserJet M118 wireless setup natively using HPLIP - no problems.
Fujitsu xi500 scanner. Native on Linux, no wireless option and haven't gotten to work with SANE via cable. Wireless scanning setup in Mac VM (network must be bridged for scan button to work - to see broadcast). Setup in Windows VM to eliminate Mac.
Installed Scansnap Home in Windows 10 VM since planning to shut down Mac once music conversion is complete. Horible performance due to conflicts with Windows virus & firwall protection. Not documented in Scansnap, not wasting time on it.
Solution: use smartphone appl to scan - works great, fast, easy.
Contacts. Vcard import to Thunderbird doesn't render many fields including phone numbers. Google search hints it could be a character set compatibility issue with Mac. TB add-ons don't fare much better.
Solution: since my contacts are sync'd in iCloud, export from there, import to Google contacts on web, then sync with TB. That worked.
It's liberating to be mostly out of that expensive & oppressive ecosystem and back in the free world. I'll try to post another update once I ditch the iPhone.