If you are looking for an article with detailed comparison of these three operating systems you are in wrong place. I don't have that. I just want to share with you some experience I had with all three of them. This will be a list of things which I like and don’t like about them. Please feel free to add yours or let me know if I’m wrong somewhere and don’t know how to fix some things.
I was a Windows guy for a long time and I used Microsoft technologies everywhere, mostly because I liked it and it was very easy to learn how to use them. I had a MVP award for two years before my work at Microsoft (you cannot have both, so after I joined Microsoft I lost my MVP award). And yeah I had a blue badge week ago (this is how people name full-time Microsoft employees in Seattle area). But I left Microsoft (short answer I just wanted to find something new, long answer probably will be in one of the next posts). With this I want to say that I had a chance to learn a lot about Microsoft / Windows ecosystem.
Things I like about Windows are…
- Best environment for regular users: Games, Software, easy to install and setup.
- Very good default set of shortcut keys. It was always very easy and intuitive for me to learn them.
- Hardware variety is huge. You can buy cheap or expensive home or business PC, you can buy so many different laptops. And all of these work out-of-box.
- I said it already, but just want to make my point: easy to install and setup operating system and any application on top of it. Highly recommended OS for my mom.
- It is very easy to uninstall software.
- Visual Studio + ReSharper. What? I worked on Visual Studio.
Things I don’t like about Windows are…
- Windows ecosystem requires to have a lot of free space on system drive. Windows itself takes around 40Gb after installation on AMD64 architecture. In time of SSD drives this is definitely not good. Space on SSD drives are expensive. It is hard to have Windows as a host OS and also have couple of other Virtual Machines with Windows on them when you have 256GB SSD drive.
- Windows Update (WU) is not an apt-get (Advanced Packaging Tool) Package Management. WU requires a lot of reboots. You can update only Microsoft software with WU. You need to be aware about all sources where you download your software to know when and how you need to update it. Chocolatey is good apt-get replacement, but only when somebody updates packages you use. I remember that for a long time it was hard to install latest MongoDB 2.4 from chocolatey. Last time package mongodb was updated more than year ago, but looks like somebody made package db.mongodb to fix this problem.
- No bash. Ok, I know that they are some Windows ports of bash (win-bash), but I don’t believe they so good as a default bash environment on Mac OS X or Ubuntu, let me know if I’m wrong. Yes I know about PowerShell. I use it too. It is good, but this is not a bash. Powershell is too heavy, default operators are not very intuitive, you cannot resize PowerShell window, no tabs in default window (I use Console2).
- No workspaces (native support). I really like workspaces in Ubuntu and MacOS. With workspaces you don’t need to buy more than one monitor. Probably this is why I never liked to work on Windows laptops.
First time I met Linux at University. One of my friends showed it to me, I thought it was very cool. I had no idea what to should I do in Linux environment, so once I day I just booted into Linux to learn how hard to do some things which very easy to do with Windows. So most of the time I used Windows, because it was easy, because of the games, and because of all applications I needed for work and study.
After I joined Microsoft I started to use command line on regular basis. I found that for some operations it was much easier to use command line instead of graphic interface. Also I started to write batch scripts to automate some tasks. After this I found that batch scripting is very limited, so I decided to start using PowerShell, which works very well. But at the same time I remembered about bash and Linux, how easy and intuitive it was to work on Linux in bash. So I decided to install it at home on Virtual Machine and start to learn more about Linux again…
Things I like about Ubuntu are…
- In my case it was very easy to install. Today I upgraded 13.04 to 13.10 and lost all of my installed applications, it was sad, but it was very easy to restore all I need with apt-get.
- How *nix systems store settings. Very easy to share settings between PCs and migrate them from one installation to another.
- Debian Package Management (apt-get). It is very easy to be up to date with all software you have installed on your machine.
- You can live in bash. It has more than 24 years of history. By default you have bash, python, ruby for scripting.
- Workspaces. So easy to switch between tasks.
- It is very easy to start use Ubuntu after Windows. The same keyboard layout.
- Ubuntu takes not a lot of space on your drive. This gives you a lot of flexibility to install / maintain virtual machines.
Things I don’t like about Ubuntu are…
- Problems with VMWare, VirtualBox, Remmina Remote Desktop Client in full screen mode on multiple monitors with Unity / Gnome. Some of them were fixed 741869, 734908, and some of them still exist.
- Not all applications I need available on Ubuntu, like Evernote.
- You can meet problems with drivers and hardware.
- Not a lot of Ubuntu laptops / netbooks available on market.
Mac OS X
I’m not really a Mac user. I had only one week experience with it. So no prehistory.
Things I like about Mac OS X are…
- Best hardware. Right now I use pretty old 15” MacBook Pro (without retina display and it is very heavy), and this is still one of the best laptop I ever used. Keyboard, Touchpad, Screen. In Windows world I like Dell XPS and Asus Zenbook, but they still not good as MacBook Pro.
- *nix-like environment. Easy to install software. Easy to share settings. Bash. Mac OS X uses not a lot of disk space.
- More applications than on Ubuntu. Hey, you can play Blizzard games on Mac OS X.
- Virtualization software works very well on Mac OS X. Did not see any issues, so easy to switch between guest machine and Mac OS X.
- Full screen mode for any desktop application. I have no idea why Microsoft did not do the same for Windows 8. This could be a huge win for new Windows 8 ecosystem.
Things I don’t like about Mac OS X are…
- Shortcut keys. It looks like Apple has some list of not-used shortcut keys and every time they need new one they randomly choose one of them. I can admit that maybe it is also hard to use all them after Windows and Linux worlds. Also conflicts in default shortcut combinations driving me nuts, like Command+Spacebar is default combination for Spotlight search and also this is default combination for switching keyboard inputs (languages).
- You cannot install Mac OS X as a guest OS on Windows or Ubuntu. And you need to have Apple hardware.
- No apt-get Package Management by default. Homebrew and MacPorts are good, better than Chocolatey, but not so good as apt-get.
- Windows and Ubuntu much more friendly for keyboard-only users.
At the end
I’m right now in transition state. I’m choosing my next environment for development. I know that I still need and want to develop software for Windows. I know that I really like bash. I know that I really like to use multiple workspaces. I know that I want to have good hardware. So, Apple hardware with Mac OS X on it and keep Windows in virtual environment.