One of the main problems afflicting the cross-compatibility of modern software is dependencies. I'm trying to run some software on FreeBSD. It's written in Node.js, so I'd expect it to work. However, a dependency (which isn't direct, but a dependency of a dependency) doesn't release binaries for FreeBSD and fails to compile, meaning the whole thing falls apart. Even though it's just a dependency of a dependency.
I'm looking into ways to get it running anyway, somehow (it seems to work with Linuxulator but then errors out), but this trend, unfortunately, reminds me of the era of Winmodems: back then people would say, "Well, why don't you just use Windows and solve the problem?"
Today, the answer is often, "Well, just install Linux and you're sorted, right?"