Matthew Garrett ([personal profile] mjg59) wrote2014-05-18 10:53 pm
Entry tags:

The desktop and the developer

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.

Re: tweaks

(Anonymous) 2014-05-23 06:45 pm (UTC)(link)
ad 1: https://www.youtube.com/watch?v=RIctzAQOe44

ad 2: creators and maintainers in the context of Xorg was referring to the creators and maintainers of Xorg, not some random other project

ad 3: nobody claims they are "pulling the rug from underneath" anyone. Especially in the context of Wayland, the communication is very clear that this is ongoing work, that current infrastructure is maintained in parallel to that work and that there is a lot of work also put into compatibility for early adopters and, later on, unmaintained legacy applications.

In other words the developers do exactly what you suggest they do.

ad 4: "Send someone over to nvidia."

You are right! Man, why did never anyone ever think about that?! Those managers and legal experts must be really dumb to have not been able to devise such a simple solution.

"unless I severely misunderstand the way this stuff works"

I know it is strange, but I somehow think that this is more likely than nobody ever coming up with the idea of talking to Nvidia and Nvidia never ever coming up with the idea of talking to Linux distribution companies.

Really, do you think proprietary friendly distributions such as Ubuntu, who ship proprietary software (e.g. firmware and applications) would put extra effort into making download and installation of proprietary drivers as easy as possible if they could just ship them instead?

Re: tweaks

[personal profile] glyf 2014-05-23 08:31 pm (UTC)(link)
1: Thanks for the reference. I'll watch with interest and try to get better informed about these issues - I am commenting almost entirely based on PR announcements, which I realize is not the best technical basis for critique.

2: What I was saying about GNOME's maintainers is that they were making the wrong decisions for GNOME, not that they were making the wrong decisions for X. Therefore it's perfectly reasonable to believe that X's maintainers will make the

3: Here is one example of the rug being pulled out: http://digitizor.com/2010/11/05/ubuntu-to-ditch-x-for-wayland/

Here's a different rug being pulled out again: http://www.omgubuntu.co.uk/2013/03/canonical-announce-custom-display-server-mir-not-wayland-not-x

Neither of these are ready replacements, and it is premature to

Maybe it's just Shuttleworth who keeps doing this, and it's unfair to blame him personally for the disaster in the whole desktop ecosystem, but... well, he's highly visible.

Regarding the relationship with nvidia; OEMs manage to work out these deals, Microsoft manages to work out these deals,

Re: tweaks

[personal profile] glyf 2014-05-23 08:32 pm (UTC)(link)
ahem, "Therefore it's perfectly reasonable to believe that X's maintainers will make the same mistakes for X"

Re: tweaks

(Anonymous) 2014-05-24 10:29 am (UTC)(link)
ad 2: I see and yes, it is of course possible that the Xorg community would do something similar. It is, however, a lot less likely.
One important thing to keep in mind is that the latter group's product is infrastructure and people working on such do tend to have different priorities than people working on user interfaces.

The fact that they kept a lot of legacy features working for so long inspite none of the modern toolkits needing any should be a good hint regarding their mindset.

I would put them more in the category of the likes of groups working on other services, e.g. Apache or Samba

ad 3: I think these are actually good examples of not pulling the rug.
The change of the first link did not happen because allegedly Canonical found it unlikely that the technology would become available in the timeframe they wanted.
Pulling the rug would have been more like going along with it anyway

The change announced in the second article has also been postponed due to stability concerns. Again a good example of not pulling the rug.

In either case, i.e. both for Wayland and Mir, there is built-in compatibility for applications using X, because the people involved are aware of the need for it.
In my books again a very good example of not pulling the rug

ad 4: neither OEMs nor Microsoft are anologies or counter examples, because they do not ship a kernel licensed under GPL.
As I wrote before, the problem is not unwillingness on either the distribution's or Nvidia's part, but a legal one.

Nvidia chose to use a proprietary code base for their driver which is incompatible wth the GPL used by the Linux kernel.
Nobody can distribute these two together without violating licenses.

http://www.tldp.org/HOWTO/Module-HOWTO/copyright.html
http://linux-beta.slashdot.org/story/02/11/05/0051225/gpl-issues-surrounding-commercial-device-drivers

Or from a different point of view: people have been talking to Nvidia for years, but have so far not been able to convince them to relicense the driver in a way that would allow it to be distributed together with the Linux kernel.