[personal profile] mjg59
I was at the OpenStack Summit this week. The overwhelming majority of OpenStack deployments are Linux-based, yet the most popular laptop vendor (by a long way) at the conference was Apple. People are writing code with the intention of deploying it on Linux, but they're doing so under an entirely different OS.

But what's really interesting is the tools they're using to do so. When I looked over people's shoulders, I saw terminals and a web browser. They're not using Macs because their development tools require them, they're using Macs because of what else they get - an aesthetically pleasing OS, iTunes and what's easily the best trackpad hardware/driver combination on the market. These are people who work on the same laptop that they use at home. They'll use it when they're commuting, either for playing videos or for getting a head start so they can leave early. They use an Apple because they don't want to use different hardware for work and pleasure.

The developers I was surrounded by aren't the same developers you'd find at a technical conference 10 years ago. They grew up in an era that's become increasingly focused on user experience, and the idea of migrating to Linux because it's more tweakable is no longer appealing. People who spend their working day making use of free software (and in many cases even contributing or maintaining free software) won't run a free software OS because doing so would require them to compromise on things that they care about. Linux would give them the same terminals and web browser, but Linux's poorer multitouch handling is enough on its own to disrupt their workflow. Moving to Linux would slow them down.

But even if we fixed all those things, why would somebody migrate? The best we'd be offering is a comparable experience with the added freedom to modify more of their software. We can probably assume that this isn't a hugely compelling advantage, because otherwise it'd probably be enough to overcome some of the functional disparity. Perhaps we need to be looking at this differently.

When we've been talking about developer experience we've tended to talk about the experience of people who are writing software targeted at our desktops, not people who are incidentally using Linux to do their development. These people don't need better API documentation. They don't need a nicer IDE. They need a desktop environment that gives them access to the services that they use on a daily basis. Right now if someone opens an issue against one of their bugs, they'll get an email. They'll have to click through that in order to get to a webpage that lets them indicate that they've accepted the bug. If they know that the bug's already fixed in another branch, they'll probably need to switch to github in order to find the commit that contains the bug number that fixed it, switch back to their issue tracker and then paste that in and mark it as a duplicate. It's tedious. It's annoying. It's distracting.

If the desktop had built-in awareness of the issue tracker then they could be presented with relevant information and options without having to click through two separate applications. If git commits were locally indexed, the developer could find the relevant commit without having to move back to a web browser or open a new terminal to find the local checkout. A simple task that currently involves multiple context switches could be made significantly faster.

That's a simple example. The problem goes deeper. The use of web services for managing various parts of the development process removes the need for companies to maintain their own infrastructure, but in the process it tends to force developers to bounce between multiple websites that have different UIs and no straightforward means of sharing information. Time is lost to this. It makes developers unhappy.

A combination of improved desktop polish and spending effort on optimising developer workflows would stand a real chance of luring these developers away from OS X with the promise that they'd spend less time fighting web browsers, leaving them more time to get on with development. It would also help differentiate Linux from proprietary alternatives - Apple and Microsoft may spend significant amounts of effort on improving developer tooling, but they're mostly doing so for developers who are targeting their platforms. A desktop environment that made it easier to perform generic development would be a unique selling point.

I spoke to various people about this during the Summit, and it was heartening to hear that there are people who are already thinking about this and hoping to improve things. I'm looking forward to that, but I also hope that there'll be wider interest in figuring out how we can make things easier for developers without compromising other users. It seems like an interesting challenge.

Date: 2014-05-19 07:14 am (UTC)
From: (Anonymous)
I don't think those are the real reasons for using Macs. The real reason is that if you want a premium laptop, the only option you have out there that isn't compromised in any way is a MacBook. It's the only way you can get a high resolution screen, PCIe storage, Iris/Iris Pro graphics, a quality trackpad and top notch build quality in a single package at a reasonable price. Even if other OEMs come close on these points, they'll either cut corners somewhere or price it way beyond a Mac. The popularity of Macs is indicative of the garbage in the rest of the market. At this point the only other laptop I would even consider is a Razer Blade.

The other problem stems from Linux itself. In 2014, you still need to wrangle with the terminal to get certain drivers working correctly. Even if you do get them running, you're still stuck with inferior performance and lower battery life as compared to Windows. This is particularly true for GPU drivers - whether closed-source or open-source, they suck a lot. On a Mac, the driver setup and optimisation has already been done for you, leaving you free to get on with your work straightaway. You get great performance and great battery life out of the box.

Date: 2014-05-19 07:59 am (UTC)
From: (Anonymous)
Agreed. I was somewhat recently in the market for a new laptop, when I started my search I was looking for a windows ultrabook with a price around ~1000 dollars. Everything I found was disappointing in one way or another (most commonly they had poor battery life for the price). during the search I just kept coming back to the macbook air even though I wasn't even looking for a mac, the touchpad and battery life just seemed to blow anything else in the price range away. Some of the ultrabooks had nice screens, but that wasn't my priority.

When I bought the MBA and used it I was immediately amazed with the touchpad. Both the touchpad hardware, and the OSX driver/touchpad integration was flawless. Everything from the scrolling to the gestures just works so damn well. I've always *loathed* using windows on a laptop because if its shitty touchpad support, most features were left up to the touchpad driver itself (synaptics etc... and their drivers were usually really buggy), and even basics like two finger scrolling never worked well. I had actually used linux for years on my previous two laptops, because I found even linux was much nicer to use with a touchpad than windows. /windows touchpad rant

I ended up disappointed with though, even though there was a lot I liked about it, because the linux desktop's quality control just isn't there yet, way too many bugs and regressions with every release, at times I felt like I was spending way more time reporting bugs, trying to work around bugs, and distro/desktop hopping than actually using my computer.

So far the MBA has hands down my favorite laptop and OSX has quite good to me (although not without its own issues).

Date: 2014-05-19 08:01 am (UTC)
From: (Anonymous)
Oops, I accidentally a word near the end there, meant *I ended up disappointed with linux though*

Same here

Date: 2014-05-19 01:05 pm (UTC)
From: (Anonymous)
I'm surprised that battery life hasn't been mentioned more times already. I recently went shopping for a new ultra-portable laptop, even though I had one that would regularly give me 6+ hours of actual use (10 claimed IIRC). The 13" MBA I'm typing this on was just way better than anything else, and I regularly get 8-10 hours out of it. It's also dead silent unless I'm playing graphically intense games, which is notable because fan noise is another problem that severely afflicts many machines in this category. I won't risk making either battery life or fan noise worse by installing a whole different operating system and drivers, so I just keep running OSX and iTerm2. If I ever saw actual proof that an *out of the box* Linux install on something like a Yoga 2 Pro or the latest X1 Carbon would work as well then I'd gladly do that too, but that has been such an often-made and never-met promise in the past that it might take more than one person's word to convince me. My time is worth more than the price differential between MBA13 out of the box vs. hours of research plus purchased alternative plus even more hours pulling all the bits together.
From: [identity profile] https://www.google.com/accounts/o8/id?id=AItOawn4R0kHSNy76q8-jEI78dfNp-hHnwDNHQo
I'm running the slightly proprietary ChromeOS (rather than pure ChromiumOS) on my Pixel. However I also have a crouton install alongside which brings all my normal FLOSS development tools and environment. The main reason I don't blow away ChromeOS and replace it with a full Linux distro is because it I like having a laptop that Just Works (tm) without having to fiddle to get wifi/multimedia/html5 magic working. The update model for ChromeOS is also quite nice from a "not having to worry about securing my machine" point of view.

Also, weight

Date: 2014-05-19 02:35 pm (UTC)
From: (Anonymous)
I agree. I'm actually not a huge fan of Mac OS X or iTunes.

But I like having graphics drivers that always work, and I love the weight and battery endurance of the MacBook Pro.

There are three things that I really hate though:
- Glossy screen
- Can't get a 17" screen
- Non-PC keyboard.

So I'd say the MacBook Pro is somewhat preferable than my Dell M6500 in a hardware sense, but it's certainly not a slam dunk.

Re: Also, weight

Date: 2014-05-21 05:11 pm (UTC)
From: (Anonymous)
You used to be able to get Matte screens on the MBP (I have one) but it doesn't seem like you can any more. There are a couple of third party addons that aren't too terrible though.

Date: 2014-05-19 04:16 pm (UTC)
From: (Anonymous)
One of the reasons for people to buy a Mac is the support from Apple. It's far superior than the other vendors. And because Apple own both HW and Software, they can support both sides of things without throwing its customer to the software vendors or hardware vendors.

That's also the case of iPhone vs Android phone as well.

Needless to say, Linux can't archive the same level as Mac (at least I don't seen any distro produces its own laptop before).

That's not the reason to stop developing desktop environment, btw. There are bunch of people that love their Mac but hates OSX. I think Linux and any Desktop Environment can be a good alternative for people that get tired of fighting with Windows 8, and don't really fond of Mac OSX. There are things to improve, especially in the area of IDE (there's no single IDE that's good enough in my opinion.) I love Eclipse, but it displays badly in high-density display.

With that said, I'm currently using Windows 8.1. I've been using Arch Linux with GNOME 3 before, and also Mac OSX occasionally. I switch around the OS just because I'm getting bored when using one for sometime :).

IMO driver problems aren't Linux's fault

Date: 2014-05-19 06:23 pm (UTC)
From: (Anonymous)
It's upto hardware manufacturers to create good quality Linux drivers, or at least provide good documentation so that good drivers can be written. Yes, closed-source drivers loaded as modules exist, but they are a PITA sometimes if you want to update your kernel. And yes, the Linux kernel will keep changing - you can't expect them to not make improvements because closed-source driver developers want 'stable kernel interfaces'. There's Linux LTS, or you can just use an old kernel without updating if you want to. But I want to update my kernel.

Re: IMO driver problems aren't Linux's fault

Date: 2014-05-20 03:19 pm (UTC)
From: (Anonymous)
Well, the argument that 3rd party drivers need to be installed from a Terminal isn't the vendors fault, it's the fact we've had two major toolkits competing with each other over a tiny fraction of the desktop user base for over 10 years, and a smattering of even smaller toolkits on top. Consider the Windows platform. 3rd party vendors regularly provide drivers that MS has had nothing to do with, since there's an established framework for installing them, and a single UI toolkit to worry about.

Date: 2014-05-20 05:05 am (UTC)
From: [personal profile] glyf
This is very much true as well. Before buying each new machine, I try to see if there's any Linux equivalent, and I peruse ZaReason and System76's catalogs, trying to find something that looks good. Even if I were going to run Linux on it, I'd still probably go with Apple. Even for a home server, there's not a lot that would recommend their offerings over a Mac Mini. In fact, ironically, our esteemed host has fixed the one major issue I had with Apple hardware, i.e. terrible driver support in Linux for hybrid (integrated/discrete) graphics chips in laptops! I am looking forward to trying a distro which has incorporated mjg's work described in this post.


Matthew Garrett

About Matthew

Power management, mobile and firmware developer on Linux. Security developer at Google. Ex-biologist. @mjg59 on Twitter. Content here should not be interpreted as the opinion of my employer.

Page Summary

Expand Cut Tags

No cut tags