Sunday, February 2, 2014

Mac OS X: The Love Affair Is Over

Like a lot of developers I started using a MacBook Pro around the time of Tiger.  I instantly loved it:  simple, fast, and virtually no system administration overhead. The genius of OS X was that it never got in the way. You opened the box, pulled out the machine, and got to work. It had a great user interface, excellent  development tools (Eclipse in my case) and the command utilities like ssh, rsync, and bash worked seamlessly with Linux systems.

Well, that was then and this is now. Starting with Lion I began to spend an increasing amount of time fighting OS X instead of getting work done. I'm now using Mavericks and have not seen much improvement, in fact quite the contrary. Here are just a few of the problems after the Lion to Mavericks upgrade:
  • Spotlight indexes destroyed; need 2 days to regenerate
  • AppleMail access to Gmail IMAP  broken
  • Time Machine stuck in preparing phase
  • Keynote saves presentations as directories, which makes email and cloud storage difficult
  • Java installation removed
OK, lots of these things can be fixed, for example by logging into root and deleting things manually or by googling problems one by one and doing various sorts of upgrades.  That's not the point.  For many power users this is an operating system that has jumped the shark. What happened?

First, Mac OS X is simply buggier than it used to be.  Features like Spotlight indexing and email have had problems for years.  Apple has been painfully slow to address them, and some of the third party apps seem to have been a little tardy as well in adapting to new releases.  Second, Apple is aiming at a consumer mass-market with converged operation of phones, tablets and laptops.  Here are a few examples of how this impacts laptop usage:
  • Automatic file versioning and locking features - Great if you have no idea what a file is, but a constant impediment if you are used to managing documents directly.  
  • Notification center - Generates constant interruptions and distinguishes poorly between things that are important (software upgrade notifications) and those that are not (the next song playing on iTunes)
  • Closed hardware - I need 16GB of RAM to develop and run business apps simultaneously and have for a long time.  Macbook Air, a genuinely excellent laptop, comes with only 8GB with no way to change it yourself.  MacBook Pro likewise seems to be going back to the same locked model where you cannot upgrade or replace SSD drives.  
In olden days we would say that the emperor was benevolent but badly advised.  That is the current tone among some of the Apple illumati, but something else is at play.  The Apple empire is moving in a different direction that leaves out power users who depend on laptops for concentrated work, especially development.

Which leaves the question where to go next.  Here's one idea.  Linux is on its way to slaughtering the competition on servers, mobile devices including tablets, and perhaps even gaming.  I doubt Linux will win as a desktop OS any time soon but for developers like me it's starting to look very tempting on a laptop, especially in combination with servers running in Amazon or a colo.  Lenovo with Linux, anyone?

19 comments:

Anonymous said...

and the sad part is, ubuntu is pretty much your only reliable option (for both servers, and workstations)

Georgi Kodinov said...

Two objections :
1. The apple hardware is still the best and the most ergonomical one on the market. Have you ever tried using e.g. the tiny touchpad of the current non-apple laptops? Lenovo can change that for sure, but I just don't see it happening anytime soon.
2. The linux distros that are anywhere near usable on the desktop (ahem, ubuntu, ahem) are even further into the "welcome to my cloud" play apple is trying to play. Ubuntu by default is sending to the HQ all the searches you do. Without even offering some of the goodies that macosx offers.

But the help is coming from a direction you'll probably not like a lot. Windows has learned its lessons. 8.1 is getting more and more usable. And Microsoft's cloud strategy is much less intrusive compared to the alternatives (they have the enterprise market to cater for). Add to this the great office package and the smashing development tool (visual studio) and you'll get the picture.

shlominoach said...

@Anonymous,
RHEL/CentOS not reliable these days?

@Robert,
Allow me to recommend DELL for linux; if going with Ubuntu/Mint/derivative then prefer NVidia. I find that Lenovo have plenty driver problems with linux (my current Lenovo has a buggy wirelesss driver which forced me downgrading to a lower kernel and some display issues, not to mention stepping into standby; past two lenovos of my wife had similar issues. Got a DELL (latitude, old) that works *perfectly*, am familiar with similar use cases).

I owned two MacBooks (Air, sold, Pro, still here) and I cannot say I feel comfortable with developing on these machines. I am completely biased of course towards open source, and yet I have to say: I have a lot more patience and forgiving to faults in open source than I do for commercial software.

Might want to listen to this excellent talk: http://www.infoq.com/presentations/top-10-performance-myths. Check out Folklore #7 (around 17:00).

Robert Hodges said...

@Georgi, you are right, Apple hardware is lovely. But it's becoming really hard to develop for Linux using a Mac. The Mavericks upgrade removed not only Java but also ant. It upgraded Ruby to 2.0, which broke brew. It silently broke Xcode, which was cured by a separate upgrade. (I only care about Xcode because you need it to fix up the other things.) OS X upgrades have messed up my Java environment more times than I can count.

I can't comment on different cloud strategies. They all seem pretty intrusive. None of them is straightforward about what they are doing with data.

Robert Hodges said...

@Shlomi, thanks for the recommendation. I like the look of the Lenovo X1s but they seem to have a lot of limitations. I'm pretty used to building servers from scratch but laptops are different beasts. Time to live a little and try something new!

uce pit said...

As far as desktop is concerned, moving to Linux is a bad idea IMHO.

I understand your frustrations with the new MacOS 10.9.0 Mavericks. Like all its '.0' releases preceding it, yes, there are bugs, some quite major.

It you think its frustrating boy are you in for frustration trying to use any Linux distro as a general purpose desktop. Doubt me? Go spend six months banging your head against any desktop Linux & then come back & tell me how many hours you've wasted fixing stupid shit.

I'm a long time Linux proponent but I admit defeat on the desktop & busy dustbinning our PC's & laptops for Mac replacements right now as we speak. Our parallel deployment of Macs has been a dream compared to the endless frustrations of desktop Linux machines running beside them.

Servers are a different matter.

Robert Hodges said...

@uce I'm not arguing against OS X for general purpose desktop use. It's still far better than Linux. However, for the special case of development on Linux (which with cloud environments is becoming increasingly large) there's a strong argument for just doing it directly on Linux itself.

Also, as I pointed out Mac OS X seems to be moving away from at least some of the users who originally adopted it over the past decade. Not everything is a phone or a tablet. This looks like another niche for Linux to expand into and in fact Chromebooks seem to be getting some traction perhaps for that reason. This contest is going to go on for a while.

na(n)do sincronizado said...

A few random thoughts:

- rvm will help you solve your ruby problems without changing whatever version other tools need installed. Too late now I know, but do keep it in mind for your next upgrade :)

- If your primary work computer will be a laptop, I'd have to second Georgi's recommendation of Windows. I was a full time gnu/linux user from 1997 until about 2009, and it just does not play nice with laptops. It's not the devs' fault, but for getting things done, it doesn't matter who's fault it is. Back in 2009 I had made up my mind to go for either Win or Mac and eventually keeping a familiar unix command line environment made me choose Mac.

- That said, if you want to go for a mobile linux, I've seen more happy stories from colleagues and friends with lenovo and dell machines. Though judging from Shlomi's comment, the lenovo experiences may have been isolated cases. One of the big reasons I decided to stop using gnu/linux for laptops was the insane amount of research I had to do before a purchase, and sometimes the specs on the web were wrong and I still ended up with non working wifi or some other glitch. Who has time for that? And still get your job done? And hopefully have some form of personal life? Not me ...

Good luck with whatever you choose.

Lon Baker said...

As a life long Mac user, I made the jump to Linux full time about 12 months ago - running in VMWare Fusion on an 11" Macbook Air and a Dell XPS 13".

Originally I purchased a Dell XPS 13 bundled with Ubuntu (linux with training wheels). Later, missing the elegance of Apple's hardware design I moved back to a MacBook Air using VMWare Fusion after treading through the minefield of hardware support - its doable.

At work I use it for dual purposes - development and management of my company.

As a developer, Linux is far superior, unless you are building iOS and Mac software - duh. Working in the same environment running on your servers has huge benefits.

As a COO, access to LibreOffice, Google Chrome, Pidgin and a vast sea of opensource tools, I'm actually able to accomplish some task more efficiently and cheaper on Linux, than Mac - analyzing a million+ row MySQL database via LibreOffice spreadsheets.

The only significant downside I run into are companies insisting on using proprietary meeting management software - Go2Meeting and WebEx. Luckily most tablets or smart phones handle those tasks quite well.

I thought Ubuntu was the only "reliable" choice, until I immersed myself in the different distro families. I chose to go the Debian path and run Crunchbang.

Anonymous said...

Since the upgrade to Mavericks, none of my three Macs can properly keep time any longer.

Yes, automatic time sync is enabled. Yes, I have contacted support. No, you have not replied in 2 months.

Yes, I have looked at the support forums, where dozens of others have been complaining of this issue at least as far back as November...

Apple, your hardware really isn't anything special if it's not tied to a rock-solid OS. Especially not at the prices you charge.

Just glad to know I'm not the only one that's becoming quickly disenchanted with Cupertino.

Peter Laursen said...

The problem is *GLOBAL*. Last versions of both Mac and Windows are focused on *consumers' - not *producers*.

Probably 80% of people who owned a desktop/laptop machine never needed it. But they did not have an alternative before tables and highend mobile phones became available. They are turning to tablets and phones and vendors try to protect the sales volumen by making systems more consumer-oriented.

The 10-20% of us who are *producers* are not important for their business. At least not as important as *consumers* (of media content etc.) are.

Lenz said...

FWIW, I have been Linux on my desktop almost exclusively for the past 18+ years (both for work and play).

It has come a long way. I currently run Ubuntu on a Thinkpad T440, previously I ran it on T420, T61 and T42 Thinkpads. Everything worked out of the box. When it comes to ease of (desktop-)use, I think Ubuntu really sets the mark.

Robert Hodges said...

@Lenz, hi! Thinkpads seem to be pretty popular. I'm going to order something in the next week so recommendations on specifications are gladly welcome.

Ivan said...

Hi Robert,

I share your concern and disappointment with Apple on their strategy for OS X. Mavericks may be good for consumers, but it is becoming more and more difficult to be used for developers.

I still cannot find enough reasons to move to Linux - Apple Office suite is good enough for me and the way OS X handles the HW is way better than Linux at the moment - but we are getting closer.

Thanks!
-ivan

Robert Hodges said...

@Ivan, I'm looking at both Lenovo and Dell. It's dashed annoying that the Mac hardware is nicer and cheaper than the competition. It's tough to hate Apple when they do the hardware so well...

I considered also the VMWare Fusion route suggested by @Lon but VMs have a habit of going [really] bad eventually. That might have been more true of older VMWare versions--my last experience was bad enough it put me off using VMs on laptops for a while.

Csaba said...

@Robert, did you considered to install a Long Term Support Linux distribution like OpenSUSE 13.1, RHEL 7 / Centos 7 or Ubuntu 14.04 on your MacBook? At first install, it needs some tweaking, but after that, for the next 3-3.5 years you will have the peace of mind. Even after tweaking you can't go with more than 4-5 hours of battery life. For RHEL and Ubuntu you need to wait a few months because they are currently in beta.
Nothing beats the Mac hardware. The most closest competitors are Dell and Lenovo. Dell used to be a bit noisy (I am not aware of the latest hardware) but it is robust and almost as sexy as a Mac. When you order your customised laptop, please check that every component is Linux compatible.
I don't have any experience with VMWare Fusion but I am quite happy with Parallels Desktop.

Robert Hodges said...

@Csaba, do you mean run Linux directly on the Mac hardware? Do you dual boot?

Csaba said...

@Robert, yes, I mean dual booting. It is an old article, but even Linus is using Linux on a Macbook Air :-).

Matthew said...

Like some other commenters, also jumped ship - about a year ago, after being a loyal Mac user for 25+ years (can any switchers beat that?). For all the same reasons you mentioned - but perhaps the most is the iOSification of it - it seems that each new Mac OS release makes your computer less yours and more Apple's.

Linux works well. I mean it's not as glamorous, but as a getting-your-stuff done computer I have come to prefer it over the Mac. I went with Mint, but once you use it a while, you realise that although they seem different at first, there's much in common with all the distros; and pretty much everything is customisable. I'll probably switch again soon - likely to Xubuntu.

I also switched to an HP laptop as I sort of felt it to be missing the point to use the Mac - again it is not glamorous, but I can upgrade the memory, swap out the hard drive easily, change the battery, etc. I'm very over fancy expensive hardware now - especially they all have a fairly finite lifespan.

I'm even moving others in my company to Linux desktops; so far the only issue is occasional MS Office compatibility - generally it works well, but two-and-fro editing of a document between Linux and Mac/Windows can sometimes cause glitches.

Scaling Databases Using Commodity Hardware and Shared-Nothing Design