Since last year I have been using Windows, Linux and OSX on daily basis.
Like most of people on Brazil and on the World. My first computer was a PC with Microsoft Windows. I vaguely remember, my father bought in early 2000 a Celeron 800MHz with 64MB of RAM and we used a dial connection on weekends to access the Internet.
I had many problems with the lower performance of my machine and with many PCs that my family bought later. Because we didn’t have money to spare, all PCs were cheap and I couldn’t run 3D graphics or expensive processing like transcoding. It took a decade for me to build a custom machine with what I wanted.
My first real contact with Linux was when I started working at a computer laboratory of my university in 2010. All machine used Linux. I helped to install, configure and those machines. It was there that I learned to use shell, git, Erlang, LaTeX and many other tools that I still use on my daily basis.
I like Linux, but all GUI environments that I used weren’t very well designed. Nice machine to developers. But misses all games and applications that you can easily found on Windows.
Last year I finally acquired a Mac Book Pro. I have being used since as my main personal computer. It was very expensive but I never had one and was very interested because many know developers and friends use and recommend. This machine is fast and light. I loved all gesture shortcuts and fancy UI. I installed Homebrew and since my usage got very similar to my way of work on Linux.
Mac (OSX) has more games than Linux, a nice UI, and combine good environment to work and leisure. However I still think is too expensive because where I live.
Windows good for games when machine is well built, bad for development except using Visual Studio or Office.
Linux good for servers and developers workstation when a Mac isn’t available. Easy to install and very fast when compared to Windows.
Mac (OSX) is a premium machine. So it’s expensive but well worth it. Best machine for developers, except if you developing something platform dependent like Linux Kernel. In that case you can configure a dual boot with the OS you need.