I have been a GNU/Linux user for almost 7 years (no not dual booting, but exclusive user). Recently, I switched jobs ( Castle Rock Research great place to work btw) and ended up with MacBook pro in the bargain.
You can imagine as a Linux user I have used everything thats out there literally (Gnome,KDE,Xmonad, Awesome, WindowMaker, Stumpwm). My previous notebook was running KDE 4.3.2 and was pretty happy with it, overall.
Since I started using Macbook, my initial days were all pain, toil and fumbling in dark. Man O man. The biggest confusion is, many well known applications(such as Netbeans) use Command key in place of Control key in OSX. But this behavior is not uniform (there is no behavior, thats just my flimsy theory of adapting to OSX environment). So for copy you will have to press Command-C, but for some other shortcut you may still have to use Control key.
Then there is Emacs. The first question you will ask yourself as Emacs user on Mac OSX is, what should be the Meta key? Alt or Command? Well for me, both. Needless to say, Emacs will block some of global OSX shortcuts that use Command key, when you start using Command as meta key in Emacs.
What I miss most from Linux?
- Having a true POSIX environment which is supported by open source folks. Now there. Don’t jump the gun and say OSX is POSIX. I know that already, but as I discovered painfully, Snow Leopard in particular has broken many Open Source libraries and tools. (Emacs23, rb-gsl, RMagick and many more). It was painful to see Apple fans blaming open source developers for this breakage and not coming up with the fix.
- KDE4.3. I really loved KDE 4.3. I loved multi-screen handling of KDE 4.3.2. I could move window between screens. I could move focus between screens. I can set window to start in particular screen. All without moving mouse. Its way ahead of whats there in Mac OSX (which is click and drag essentially).I miss vertical maximize. I miss, window specific shortcuts which I used to have ( and yeah QuickSilver can fix some of that, but its nice to have all these features right out of the box).
- I miss Qt and Gtk. I was decent with Gtk+ I think. When fancy took me, I could whip up utility applications in Gtk+. I have new ropes to learn now.
- More importantly I understood the system inside out (at least little more than basics).
What I gained?
- Applications. CRRC uses some specific tools for communication, which simply won’t work on Linux.
- No hibernate and hence fast resume.
- Better batter life.
I certainly wouldn’t add “ease of use” or crap like that here. If applications I need, would run on Linux, I would format this stuff and go back to Linux.