I started using OSX in 2010, and like you I still use Linux. For the most part, I use Linux to develop software and for data munging. I'm still good with OS X. If they get rid of Terminal then I am done. Until then, I can do most anything I need on OS X that I can on my Linux box. The difference being, I don't have the same ease of use for all the Open Source projects on OS X that I do on Linux.
I'm fine with OS X moving towards an iOS interface. So far they are maintaining the ability to work around the interface. I have yet to encounter any limitations that cannot be bypassed. I also use OS X because it works without me having to maintain it. When I was in high school, I had days to spend screwing around with Slackware, and I learned a lot doing it. But, I no longer want to mess with setting things up just so I can get to the point where I start doing my actual activities. Which is one reason I moved away from Slackware to Ubuntu.
I've used Ubuntu on the desktop, and it is fairly good. But, there are still problems. A number of times I would have to kill the Synaptic Update system and do a manual apt-get update apt-get upgrade. Not sure why the GUI version wasn't working, and these days I no longer care. I don't have time to figure that out. As well, my network card would not alway be enabled when I booted my Lenovo R61 Thinkpad. This was in 2011. I bought the Thinkpad in 2007. Its hardware is old enough that it should just work at this point. To fix it, I would have to reload the card's module. There may be other issues I had. I can't remember any right now though.
My point is, I want my personal computer to turn on and work. I don't want to spend time configuring it. I realize I am betraying, in some sense, the Stallman Free Software ethic, that, in large part, is responsible for the programming skills I enjoy today. I have contributed to an Open Source project recently. And, I intend to do so in the future. But, I have become a pragmatist rather than an idealist in my thoughts on Free Software.
As for moving to Windows, I see no sense in that. Unless you want to use Cygwin or something like that, and those projects may be more mature now, but Windows is so far removed from the Unix philosophy that it is painful to use. At least in OS X, I can still pipe individual programs together to generate something useful.