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.

tweaks

[personal profile] glyf 2014-05-19 03:47 am (UTC)(link)
It's worth noting that in many significant ways, Linux is not, practically speaking, more tweakable. Have you ever mapped out the sequence of steps it would take to go from "I'm using OpenOffice and I'd like to turn this button blue" to actually doing so?

Despite being somewhat neglected in the gold-rush of mobile everything, the automation tools on OS X, by contrast, are phenomenal.

Here's a practical example. On Linux, if I want to ask Chrome to tell me what URL is displayed in the current window... I'm not even sure what I can do. I guess there might be some kind of IPC I could do to, like, an extension or something? I could write a bunch of JavaScript? I mean, I'm not just saying this off the cuff - I spent about a week trying to figure it out at one point. The only thing I really learned was that if I were able to make it happen, absolutely nothing about that learning process would translate to getting the URL out of Firefox or Konqueror.

By contrast, if I want to do that on the Mac, I just pop open a Python (or Ruby, or AppleScript, or ObjC) and do this:

>>> from ScriptingBridge import SBApplication
>>> SBApplication.applicationWithBundleIdentifier_("com.google.chrome")
<GoogleChromeApplication @0x7feaddf58b10: application "Google Chrome" (303)>
>>> chrome = _
>>> windows = chrome.windows()
>>> list(windows)
[<GoogleChromeWindow @0x7feadd996b30: GoogleChromeWindow 0 of application "Googl
e Chrome" (303)>]
>>> windows[0]
<GoogleChromeWindow @0x7feadddeecd0: GoogleChromeWindow 0 of application "Google
Chrome" (303)>
>>> win = windows[0]
>>> tab = win.tabs()[0]
>>> tab.URL()
u'http://mjg59.dreamwidth.org/31714.html?mode=reply'
>>>

This was a literal interactive session that I did as I was writing this reply to prove the point. A couple of experimental tracebacks are elided, but otherwise this is actually what I did, and it took under a minute.

With BPython or IPython I get interactive tab-completion of the relevant method names. With AppleScript Editor, I can get nice HTML documentation of the various scripting objects present in applications.

I am rooting for the Linux desktop, I really am. But while Linux gives me the legal right to modify my environment in arbitrary ways, OS X gives me the practical agency to do so in useful ways.

Re: tweaks

(Anonymous) 2014-05-19 05:29 am (UTC)(link)
Have you looked into using LDTP for non-testing purposes? (It's a functional test framework for GUIs which uses the accessibility APIs to implement AppleScript-like robust programmatic scriptability of GUI widgets)

I haven't had time to try it yet but I get the impression it should be possible and should produce an experience similar to your example session.

Re: tweaks

(Anonymous) - 2014-05-19 13:07 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-19 13:42 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-19 14:32 (UTC) - Expand

Re: tweaks

[personal profile] glyf - 2014-05-19 22:23 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-19 19:50 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-20 06:23 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-20 12:22 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-21 05:23 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-20 21:43 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-21 21:46 (UTC) - Expand

Re: tweaks

[personal profile] glyf - 2014-05-23 06:53 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-23 15:20 (UTC) - Expand

Re: tweaks

[personal profile] glyf - 2014-05-23 17:33 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-23 18:45 (UTC) - Expand

Re: tweaks

[personal profile] glyf - 2014-05-23 20:31 (UTC) - Expand

Re: tweaks

[personal profile] glyf - 2014-05-23 20:32 (UTC) - Expand

Re: tweaks

(Anonymous) - 2014-05-24 10:29 (UTC) - Expand

Interesting take, but it would not *stay* an advantage...

(Anonymous) 2014-05-19 04:46 am (UTC)(link)
Your point is interesting: How could we make our tools even better for the developer so they work for bringing people into using more Free Software?

But I think that answering this need would almost immediately lead into losing the exclusivity for the difference...

...I mean, if Mr. Foo likes using Emacs on his Mac, and we came up with Emacs major modes to handle bugtracking and pull requests... The problem's solution would be directly usable from the Mac as well — Hence, no reason to change.

And were this functionality you mention to be part of, say, the KDE desktop... First, you'd be alienating those Linux users who are unimpressed with the KDE way of life. And second, the program would probably be soon ported to the desktop environment (or OS) of Mr. Foo's choice.

Re: Interesting take, but it would not *stay* an advantage...

(Anonymous) 2014-05-21 12:29 am (UTC)(link)
You raise an interesting question, but I think it's not as dreary as you make it. That same point could have been made *against* the Mac, 10 years ago, yet they managed to do it. All that's needed is a slightly different mindset.

First, Alan Kay said "People who are really serious about software should make their own hardware". I don't see anyone in the free software camp being serious about making their own laptop computer (nope, not even them). That has a pretty high buy-in cost these days, so unless somebody like Intel is going to sponsor you, it's not really feasible. Still, since Apple is making the best laptops today, you can get 95% of the benefit by simply making free software work great on Apple laptops. And yet, while even Mr. Torvalds himself uses an Apple laptop, the support for free operating systems on Macbooks is only mediocre. The situation is not going to change until free operating systems run great on the best hardware of the day.

Second, all of these things take time. There's no one magic feature that, if we implemented it today, would cause everybody to switch operating systems. We need to attack each problem individually. That means we need to be able to set targets that take years to accomplish. Right now, everything changes from year to year in the free software world, and often has multiple competing standards that must exist at the same time. X11 didn't pan out, I guess, so we're switching to Wayland. If that's too low-level, you can use GTK+ -- or Qt. Sys V init is too limited, so we've replaced it with systemd, and also Upstart, and a couple others. For search, we had Beagle and Meta Tracker and GNOME Storage, which all seem to be dead today, so I honestly have no idea what I'd use.

It's impossible for serious end-user applications to target free operating systems today. Even when I was doing free software development full-time, I couldn't keep track of all the systems we were supposed to use. In the rare cases when I could (Beagle looks like what everyone is using!), things would get deprecated faster than I could implement them (Beagle is now dead!).

Apple and Microsoft have showed that the way to make progress is to pick something -- even something bad! -- and refine it. Free software makes one thing, and before it's finished throws it out and replaces it with something completely different, and then repeats the cycle. Nothing ever gets refined because nothing *can* be refined. Emacs on OS X is actually pretty decent because they've been developing against (more or less) the same platform since 2001. Emacs on Ubuntu looks like it came from 1991 because very little of a modern Ubuntu system, apart from the Linux kernel, has stayed stable for very long. None of us who use and hack on Emacs have wanted to commit to making it work well with GNOME because GNOME 2 was very different from GNOME 1, and GNOME 3 was more different, and now Ubuntu has switched to Unity which is even more different.

In short, give us an API with a shelf life longer than 3 years, and we'll get started. We've been burned many times in the past, though, so don't expect developers to believe you for a while. Steve Jobs could be a jerk, but he also had the power to stand up and say "We're using Spotlight for search!", and then 10,000 people believed him and used the Spotlight API in their apps.

Free software can never maintain a feature advantage over proprietary software, because they can always just copy what we do, but the converse is also true. We need to stop thinking about success as being That One Feature (that OS X can't copy), and more about stability and focus. Even Microsoft is beating free software at that right now.
Desktop search integrating with git and issue trackers that I use instead of spending time on searching office documents that I do not have or Amazon products I didn't want to buy? Now that finally sounds like a useful application of the current search-centric model that Linux desktops have switched to!

Linux should be the means and not the end

(Anonymous) 2014-05-19 06:39 am (UTC)(link)
I have been using Linux for a decade now and when I had a chance to grab a MAC, I just did that. And I was amazed at how it made things more easy for me. True to its founder's words, I don't really have to struggle to figure out how to do something. Its all about what is it that I want to do.

I totally agree with you that its a very small percentage of users [ and not developers ] who would be interested in changing their system configuration.

The design with which we need to go for making Linux more useful, will be the key for what Linux actually turns out to be. If we go for enhanced Security, we cannot crib about extra steps to dig deeper into some machine secrets. With enhanced Security, you are bound to have multiple levels of checks before you get your hands to what you need. So, the design drives the outcome.

One design that would be great to have on Linux would be to make Linux just a means of doing something and not the end in itself. We need to start by understanding what people want to use computers for. And give them a tool [ Linux ] that does it with excellence. They really shouldn't be bothered about how it does or how they can enhance it. It should be configured out of the box to do the best thing for the user.

-- Sarfraaz Ahmed

Re: Linux should be the means and not the end

(Anonymous) 2014-05-20 12:27 pm (UTC)(link)
> We need to start by understanding what people want to use computers for. And give them a tool [ Linux ] that does it with excellence.

The Gnome developers tried to do that and see how that went...

Re: Linux should be the means and not the end

(Anonymous) - 2014-05-20 15:13 (UTC) - Expand

Precisely!!!

(Anonymous) 2014-05-19 06:40 am (UTC)(link)
The environment is really important for developers. Tweak-ability is nice but if I'm going to spend all day tinkering with my DE/OS just to get a decent setup, then I'm not being productive at all. I tried using Linux as a desktop but gave up due to too much configuring and tweaking just to get things done.

The Linux desktop is really in need of an overhaul. Gnome is getting better every release and elementary OS is shaping up nicely.

I just hope that there will come a time when the Linux desktop just gets out of the way and looks good doing it.

Just my 2 cents.

Re: Precisely!!!

(Anonymous) 2014-05-20 01:58 pm (UTC)(link)
Who needs a desktop environment anyways? ;)

I just run xmonad and dmenu, plus xmobar for convenience (shows me the time and cpu/memory/net usage). Win+p launches any app on my path, Win+shift+enter opens a terminal. I use the same setup on all my machines and don't think I've spent more than a day in total tweaking my config over the last 5 years. It just works.

The only reason I'd buy another mac is for the touchpad.

Re: Precisely!!!

(Anonymous) - 2014-05-20 18:30 (UTC) - Expand

Re: Precisely!!!

(Anonymous) - 2014-05-20 16:10 (UTC) - Expand

Re: Precisely!!!

(Anonymous) - 2014-05-21 13:10 (UTC) - Expand

Re: Precisely!!!

(Anonymous) - 2014-07-22 11:28 (UTC) - Expand

(Anonymous) 2014-05-19 06:50 am (UTC)(link)
I switched some time ago from Linux to Mac OS (Hackintosh on the desktop actually). The main reason was that it is a Unix, but with games and MS Office. So you're right, its a OS that I can use for work and for fun. But I don't like it because the UI was more polished. In fact, nowadays OS X is the most conservative UI (compared to Windows 8 and Gnome). It's essentially unchanged since the beginning. I like it because it doesn't force me to change my habits. ITunes and other Mac specific software is also not a selling point for me. I use VLC, Clementine and other free/open source software instead, which have the benefit that they are the same in all desktop environments. So basically, I like Mac because it is simple and bland and runs all my software.

Sadly, the pinnacle of desktop Linux was Ubuntu around 2009. Most of the people I know who switched to Linux made the switch around that time. You had excellent apps, a simple UI that let you get your work done, a technical basis that was tried and stable, and thanks to Ubuntu, easy installation and configuration. After that, it went downwards. Paradoxically, trying to modernize Linux (the distributions, not the Kernel), has driven people away instead of luring them.

But even if Linux were to return to its virtues of a simple GUI, compatibility, and solid underpinnings (now that Gnome 3 and Unity are more mature, once the dust settles on the systemd, wayland, ... migrations), it would still compete with OS X which does all that right now. So what's the USP of Linux over Mac? Even if people don't like to hear it, Linux Is About Choice. (Or, for nitpickers: "what makes cost-free unix distributions (mostly using the Linux Kernel and GNU stuff) great is that I can change my desktop theme".) No, seriously. Make it easier to run stuff from different desktops in parallel. Make it easier to swap components. Let me run Gnome Shell, with the Mint version of Nautilus, but with the titlebars of KDE, and the theme of Ubuntu. Give me ten great themes to pick from.

So, make Linux comfortable, compatible, and configurable, and I believe all the developers will come back :-)

(Anonymous) 2014-05-19 07:14 am (UTC)(link)
Well the idea that people want to "tweak" their OS is flawed. The only reason people want to "tweak" things is because stuff do not work and they try to work around it. (Ignoring the miniority that "tweak" for the sake of tweaking).

But at the end of the day you work using a text editor, IDE, word processor, web browser, ... not a configuration dialog.

(no subject)

(Anonymous) - 2014-05-19 14:39 (UTC) - Expand

(no subject)

(Anonymous) - 2014-05-19 20:34 (UTC) - Expand

(no subject)

(Anonymous) - 2014-05-21 21:42 (UTC) - Expand

hardware support

(Anonymous) - 2014-05-22 00:05 (UTC) - Expand

Re: hardware support

(Anonymous) - 2014-05-22 10:13 (UTC) - Expand

Re: hardware support

(Anonymous) - 2014-07-22 11:34 (UTC) - Expand

(no subject)

(Anonymous) - 2014-05-20 11:42 (UTC) - Expand

(no subject)

(Anonymous) - 2014-05-20 15:16 (UTC) - Expand

(no subject)

(Anonymous) - 2014-05-21 12:27 (UTC) - Expand

(Anonymous) 2014-05-19 07:14 am (UTC)(link)
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.

(Anonymous) 2014-05-19 07:59 am (UTC)(link)
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).

(no subject)

(Anonymous) - 2014-05-19 08:01 (UTC) - Expand

Same here

(Anonymous) - 2014-05-19 13:05 (UTC) - Expand

Also, weight

(Anonymous) - 2014-05-19 14:35 (UTC) - Expand

Re: Also, weight

(Anonymous) - 2014-05-21 17:11 (UTC) - Expand

(no subject)

(Anonymous) - 2014-05-19 16:16 (UTC) - Expand

IMO driver problems aren't Linux's fault

(Anonymous) - 2014-05-19 18:23 (UTC) - Expand

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

(Anonymous) - 2014-05-20 15:19 (UTC) - Expand

(no subject)

[personal profile] glyf - 2014-05-20 05:05 (UTC) - Expand
ewx: (Default)

[personal profile] ewx 2014-05-19 08:08 am (UTC)(link)
Linux desktops also undergo fundamental change every few years. The Gnome 3 user experience is completely different to Gnome 2, which in turn was quite unlike Gnome 1.

Compare with OSX where the fundamentals haven't changed that much in 15 years. Windows has undergone a bit more evolution (in a slightly longer time frame) but looking at a Windows 8.1 desktop there's a lot of day-to-day stuff that's familiar from a long long time ago.

If the changes were actually improvements that would be much more tolerable but in practice I can spend weeks trying to get used to these changes and still find it easier to give up and use the paid offerings instead, despite the inconvenience associated with having to use SSH to get to a real computer.

Exactly

(Anonymous) 2014-05-19 04:54 pm (UTC)(link)
This is the main reason why Linux didn't become popular. GNOME 3 and Ubuntu Unity changed the experience making it harder to use without making it measurably better. GNOME 2 was the pinnacle of simplicity and ease of use.

Every few years?

(Anonymous) - 2014-05-19 22:57 (UTC) - Expand

Re: Every few years?

[personal profile] ewx - 2014-05-19 23:22 (UTC) - Expand

Guileify GNU!

(Anonymous) 2014-05-19 08:09 am (UTC)(link)
I think the answer is the total guileification of the (extended) GNU operating system. We need to facilitate cross-talk between bits of the operating system, and there would be no more natural way to do this in GNU than to make all commands understand literal Scheme lists of arguments, and give back literal Scheme lists of data (including the response to '(help), which would make the entire system introspective!), so that inter-operation between sub-systems becomes natural.

vcs with integrated issue tracker

(Anonymous) 2014-05-19 08:17 am (UTC)(link)
Git ought to have an integrated issue tracker and wiki like fossil-scm. I don't use fossil but if git had an integrated issue tracker we'd have a much better foundation for that specific problem. I envy fossil-scm for that but it falls short in other aspects.

Re: vcs with integrated issue tracker

(Anonymous) 2014-05-19 06:50 pm (UTC)(link)
I don't agree. That is a bad idea, mashing together multiple pieces of functionality into one software. There's already a big fuss over systemd.

It also goes against the ideas of clearly separated modules or software, object oriented design etc.

What you want is something that interfaces with your issue tracker and git, forming associations as required, and you can interact with that. Doesn't github already provide what you want to some extent?

Re: vcs with integrated issue tracker

(Anonymous) - 2014-05-19 19:40 (UTC) - Expand

Re: vcs with integrated issue tracker

(Anonymous) - 2014-05-21 16:45 (UTC) - Expand

Macs

(Anonymous) 2014-05-19 10:25 am (UTC)(link)
I am not so sure that people want to tweak things, and that this should be a selling point. I would have to agree with the other commenters on here that although tweaking is nice, eventually you want to just be able to get stuff done. The recent iterations of Linux and reinvention of the desktop has driven me away from it, because I found that of the 20+ years of computer use, they were the most unusable forms of desktop. I could do more with my BBC Micro using a CLI, as it came with a manual (and you knew you were getting a complicated computer, so a manual was a necessity).

Opposite to this, there has been the Great Dumbing Down of desktops to pander to the lowest common denominator of computer user. But it is flawed because they assume that you want computer use to be "fun" and "enjoyable"; instead, they have made it "frustrating" and "enraging" to the 98% of users who are used to the way it used to work. I don't necessarily want to be grinning all day long when using a computer - I want it to let me do things, in the same way that I don't want to feel delighted every time I use a knife or fork.

I don't know who they consider to be the lowest common denominator but my mum got by just fine using Windows XP on a basic level, and has happily moved on to using an iPad as her "computer", due to the fact that she just had to learn to press one big button, and didn't really create anything on a traditional desktop PC, making it redundant. Reinventing the traditional desktop paradigm that has been in use for 20+ years wouldn't magically draw my mum to use Linux, nor would the fact that she can tinker with it - she isn't bothered about that. The maximum amount of "tinkering" she did/does with both her PC and iPad was changing the background picture.

Like the others, I went to buy a Mac after using one for work and being impressed with the build quality (and non-flexing keyboard) and excellent touchpad. The extensive battery life, even on an i7 MacBook, was very impressive. The biggest amount of "tinkering" I have done is install TinkerTool and ShiftIt so I can use the keyboard a bit more, plus I put the Dock on the left, but I do not find that I am lacking in any way. In fact, the most impressive thing about the UI is that it doesn't get in the way, unlike Windows 8 (and Vista+ where popups on the bottom right constantly attempt to inform you of things). I have stuck with Windows 7 for my Windows use, as I am not in kindergarten (and therefore impressed with big square blocks to press) or using a touchscreen device. (Yes, I did use Windows 8 for months but found it confused and a mess). Even Spotlight doesn't get in the way, and that appears to be what the Unity and GNOME3 systems are aiming for with their new way of launching programs, isn't it?

I cannot see a way of pulling users back to Linux with their New Way Of Using Desktops when you have working desktops that aren't particularly frustrating and take very little learning (Mac OSX's window management, sloppy mouse focus model for scrollwheel behaviour etc.; Windows traditional desktop mode). (Converse to this, my brother hates using the Mac and finds it highly frustrating).

Apple's bug tracking system requires use of a web browser, so I do not feel that the lack of integration with bug tracking systems in the OS itself is a problem. I do not feel anger when I cannot report a bug from within the OS.

I still run Linux under a VM but it is running GNOME2 due to the fact that it behaves in a logical manner and doesn't attempt to treat me like an idiot. I thought it was good. For info, I am a software developer and write under Mac OSX and Windows (and iOS and Android) for my day job, and write software under anything else in the evening (with Linux being my main development environment).

Just some thoughts; not meant offensively in the slightest, hopefully nobody misreads this! Apologies in advance if this annoys you.

This is why...

(Anonymous) 2014-05-19 12:01 pm (UTC)(link)
This is why end user focused distributions like Fuduntu and SolusOS were hugely popular with end users, they targeted end user use cases and provided real solutions to desktop usability even if sometimes those solutions were ugly hacks. Sadly, this is also why they and others have all failed.


Unfortunately, FOSS developers only care about the shiny ball they are chasing and don't care to do any work beyond the scope of what they care about, take systemd for example, and Lennart's recent refusal to even help test on libc because they don't use it. It's the absolute wrong mindset to have, and it's why you see more and more people considering leaving for FreeBSD on servers and OSX on their laptops and PCs. This new age developer is unlike developers in our past who actually cared to see the whole platform succeed. That's why every one of these end user focused distributions has failed, or will fail and it's why Ubuntu gets little to no upstream support. You'll keep seeing people developing for Linux on OSX because that experience is so much better that it's not worth anyone's time to constantly screw with a Linux desktop to make it work.

You're argumentation is conflicting

(Anonymous) 2014-05-19 11:00 pm (UTC)(link)
On one hand you're talking about end users and doing what matters for them, focus on what works. Then suddenly you say that an example is that systemd should support every libc out there? That's not a focussed solution. Lennart is the example of providing something focussed!

Re: You're argumentation is conflicting

(Anonymous) - 2014-05-20 11:48 (UTC) - Expand

IDE

(Anonymous) 2014-05-19 12:25 pm (UTC)(link)
> They don't need a nicer IDE.

Yes they do. Pretty much all the suggestions you made have already been implemented in one IDE or the other, Eclipse, Visual Studio, Emacs, etc. Does any of them support OpenStack development well? Maybe not.

And by the way, most IDEs overlay the entire desktop. Simply because IDEs are meant to be exactly that: a "developer's Desktop".

Eclipse is especially relevant to your point because it was designed to be extensible/a framework from the ground up: there are countless plugins to do anything, including querying bug trackers, terminals, remote (target) debugging, file transfers,... and of course Eclipse is able embed the operating system's browser. Many Java developers almost never look at the "real" desktop behind Eclipse. Last time I checked support for C/C++ was not as good as for Java but it was a long time ago.

Note I am not saying Eclipse is the perfect IDE (far from that!) - it's just one demonstration that your suggestions have been implemented already. Just a data point.

Now, like someone already wrote above, Eclipse runs everywhere so why would you switch to Linux for it?

unhappy? not that much

(Anonymous) 2014-05-19 12:31 pm (UTC)(link)
> 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.

From my experience many developers don't care that much about their own productivity; no more than other professionals. Sure, software rock stars like you do, but mere mortals don't. Like you said, they want a polished, iTunes-like user experience when they are at home but for development inconveniences they just write a quick and dirty script to workaround the problem / automate things a bit and then they make sure no one ever sees that script in case they would be asked to clean it up for sharing.

Re: unhappy? not that much

(Anonymous) 2014-05-19 12:34 pm (UTC)(link)
> From my experience many developers don't care that much about their own productivity; no more than other professionals.

Try blocking a developer and then get back to us on how much they don't care.

Re: unhappy? not that much

(Anonymous) - 2014-05-19 15:27 (UTC) - Expand

Re: unhappy? not that much

(Anonymous) - 2014-05-19 22:25 (UTC) - Expand

I'm a developer who switched...

(Anonymous) 2014-05-19 04:00 pm (UTC)(link)
... from Linux to OS X :)
I bought a macbook because honestly there is no laptop that comes close. And I found out that I have a GUI that "just works", and if i need it I have a full unix command prompt available. It does need macports or one of the equivalent projects, but you can have all your command line stuff on OS X too.
That was in 2010. In late 2012 i made a hackintosh out of my desktop. Now considering getting a high end iMac or a Mac Pro :)
Note that I still work on linux or multiplatform projects. For whatever I can't do directly I have a couple of VMs.

another developer that switched checking in

(Anonymous) 2014-05-19 05:25 pm (UTC)(link)
I switched over months ago, got tired of constantly needing to mess with my computer just so it would function. Problems ranging from my fans constantly on full blast to a desktop that wasn't very stable to upgrades that would break all the things.

I don't want any of that, I just want to open the lid and start working. I don't want to have to battle with software that was not designed to work with other software. I don't want to spend my days fixing broken software because maintainers are too lazy to apply patches someone else submitted months before. I don't want to have to deal with what's on my screen showing up in front of the screensaver, or worse, the screensaver crashing allowing access to my machine.

Linux as a server platform is hands down the best platform on the planet, but it really falls on its face when you install it on a workstation or laptop. The only way it's quasi-stable is to use RedHat or something equally ancient. Why would I stick to an LTS and it's 4 year old software when I can just use one of the major desktop platforms and get work done using the latest tools?

I switched to OSX and you couldn't pay me to switch back.

mac developer working with linux

(Anonymous) 2014-05-19 05:41 pm (UTC)(link)
I'm a long-time mac/win developer. I recently took a new job that requires me to maintain an develop an embedded-linux device. I initially started running an Ubuntu VM to be my development environment. I have to say that I consider that desktop a joke. its primitive compared to what I am used to using.

Slowly, over time, I've been moving my development activities over to OSX where I can code and build in Xcode. Its just too annoying to operate on the linux side. There are all sorts of little things that just don't work conveniently or at all. At this point, I only have to use Linux to build my uboot and linux kernel images. One simple example... ON OSX, I can use the Finder to navigate down to arbitrarily complex paths. I can copy the file (cmd-C), then paste into Terminal.app (cmd-V and It will put a path on the command line. On linux, when I do that, it pastes a URL. So, I have to navigate to go delete the 'file:/' at the front of each path. On top of that, I must right-click to paste for whatever reason. If you want me to use Linux, simple things like that need to just work as I would logically expect. Things like mounting and managing network shares could be a lot better. All of that should be automated with zeroconf to the degree possible. I should be able to more-often-than-not have all the dirty details automated.

This is a statement of MY experience. I'm sure I can go spelunking into text files or installing other software to do what I want. I really don't want to spend time on that sort of thing. I want to spend my time on my problem to solve. I'm not interested in infinitely "tweaking" the system. I really don't care what the filesystem browser looks like or exactly how it organizes things. I can learn new tools. I just need it to work rationally, consistently, and simply. Simple things should be simple. Dirty details should be hidden.

The worst problem you have is X11. That horrid piece of garbage needs to be retired and replaced with something that just works. One should NEVER get into a state where he can't see his UI. It should be designed so that the graphics stack auto-configures based on the hardware profile and everything comes up in some rational, default mode even if there is some configuration problem. I should not have to be afraid of installing a ubuntu software update because an x11 update with knock out my UI because of some glitch or incompatibility. This sort of thing is unheard-of on a macintosh. It requires massive catastrophic failures for a mac to become usable from the GUI.

The reason I use Apple OSes and equipment and wouldn't consider switching to a Linux desktop for daily usage is because I can count on the mac to just work and get out of my way. Yes, there are sometimes problems. Nothing is perfect, but from my experience, for desktop use, OSX is far more reliable and idiocy-tolerate than Windows or Linux. Apple does do things that irritate me, but not enough to overcome the technical irritations of Windows and Linux desktops.

I'm sure that other people's experiences vary. I'm sure there are people who loathe the OSX desktop. Again, I'm speaking for MY experience. I'm the kind of user that this blog post is targeting for conversion. If you want to convert me, this message convey's some of my expectation.

In essence, I value quality and ease-of-use over customizability.

-James G










Re: mac developer working with linux

(Anonymous) 2014-05-19 09:32 pm (UTC)(link)
> One simple example... ON OSX, I can use the Finder to navigate down to arbitrarily complex paths. I can copy the file (cmd-C), then paste into Terminal.app (cmd-V and It will put a path on the command line. On linux, when I do that, it pastes a URL. So, I have to navigate to go delete the 'file:/' at the front of each path. On top of that, I must right-click to paste for whatever reason. If you want me to use Linux, simple things like that need to just work as I would logically expect.

> I can learn new tools.

It seems to me you are used to ^C and ^V for copy-pasting, and, illogically, you assume these are rational. It also proves, by extension, that you cannot use new tools, although you believe you do. UNIXes terminals uses ^* for, emh, process control. Conveniently, Mac's added the Cmd button -- whether that is rational is irrelevant -- to bypass this behavior and harmonize desktop and console.

Regarding the file:// schema, they are defined in RFC 1630 and 1738, and, so, complying applications would resolve them correctly. However, you are right, the default behavior should be to assume this schema when not specified, or, more simply, change the file browser you use so it does not add the file schema.

Point is, one cannot generalize and rant when there is lack of knowledge or dogmatism.

Personally I do not use a DE, but a WM (when I am not using a 80x25 terminal). I do not believe in the uniformity some you believe exist. Apple simply provides a foundation and proposes best practices around which developers can build and extend. Now the FOSS community is incapable to agree on what the API should be, nor what should be those best practices. Hence, groups build DEs, others build VMs, others target the console users. All is right and okay, usability is not an exact science. Find what suits you best, pick the tool needed for the job. If it integrates, nice, if not, nice... a tool does the job. ;)

P.S. If one cannot navigate to arbitrarily complex path with a tool, pick an axe.

Re: mac developer working with linux

(Anonymous) - 2014-05-19 22:17 (UTC) - Expand

Re: mac developer working with linux

(Anonymous) - 2014-05-20 17:59 (UTC) - Expand

Re: mac developer working with linux

(Anonymous) - 2014-05-20 23:04 (UTC) - Expand

Re: mac developer working with linux

(Anonymous) - 2014-05-23 12:49 (UTC) - Expand

If you install Linux on a Laptop you have to do yourself the OEM work.

(Anonymous) 2014-05-19 06:40 pm (UTC)(link)
You raised here a good point, as proves the numer ber OSX terminal screenshots that we see on github.
I'm very happy with my current Linux Laptop, but you will never get the quality of integration that a single hardware and software vendor will offer. If you install Linux on a Laptop you have to do yourself the OEM work.

Touchpad support

(Anonymous) 2014-05-19 06:41 pm (UTC)(link)
The multitouch Trackpad support on Linux is very solid if you know how to setup it. I use a Magic Trackpad since 2011 and it works really well with the synaptics driver (the default) + Touchegg in userland. Try it: https://code.google.com/p/touchegg/
My config file: http://sebsauvage.net/paste/?4ae46e2d7c6c50a7#RstzB7F9cH1wfPzf5H7fycPGLKnV+UcAuOpKqHYuCcY=

Re: Touchpad support

(Anonymous) 2014-05-19 06:47 pm (UTC)(link)
> if you know how to setup it

There lies the problem, it shouldn't have to be "set up", it should just work like it just works on every other platform that exists.

Re: Touchpad support

(Anonymous) - 2014-05-19 19:08 (UTC) - Expand

Re: Touchpad support

(Anonymous) - 2014-05-19 20:39 (UTC) - Expand

validation

(Anonymous) - 2014-05-19 22:33 (UTC) - Expand

Re: validation

(Anonymous) - 2014-05-23 16:26 (UTC) - Expand

Re: Touchpad support

(Anonymous) - 2014-05-19 23:04 (UTC) - Expand

Re: Touchpad support

(Anonymous) - 2014-05-23 19:33 (UTC) - Expand

Re: Touchpad support

(Anonymous) - 2014-05-24 15:24 (UTC) - Expand

Re: Touchpad support

(Anonymous) - 2014-05-25 15:51 (UTC) - Expand

It's not you, it's me

(Anonymous) 2014-05-19 07:07 pm (UTC)(link)
The thing is that you no longer have to apologize or feel guilty for using an Apple doing linux work. In fact, not using Apple makes you look like an unenlightened fool and a cheapo that is unwilling to pay for decent tools. There is nothing sexy in using a linux desktop and plenty of social pressure for buying a mac.

Re: It's not you, it's me

(Anonymous) 2014-05-19 10:23 pm (UTC)(link)
When I want sexy, I go home to my wife and put on a Barry a White record. What I expect from a desktop is a rational experience that lets me get my work done with a minimum of fuss.

Re: It's not you, it's me

[personal profile] tcpip - 2014-05-19 23:51 (UTC) - Expand

Re: It's not you, it's me

(Anonymous) - 2014-05-20 09:28 (UTC) - Expand

Re: It's not you, it's me

(Anonymous) - 2014-05-20 11:12 (UTC) - Expand

the mill

(Anonymous) 2014-05-19 08:14 pm (UTC)(link)
My impression is that people who develop as a matter of their day job doesn't care as much. They want to do their thing and then get their paycheck. Least resistance wins. They don't care about bending the software to their will. If something is good enough.. that is what they will use. If they did care they would not be using Mac's.

I am speaking in general terms so take this as that.

Linux would probably not be happy with users like that anyway so I don't see any reason hunting for them.

Re: the mill

(Anonymous) 2014-05-19 10:20 pm (UTC)(link)
Yea. All we care about is money. We have no desire to actually get people to USE what we build.

Re: the mill

(Anonymous) - 2014-05-19 22:36 (UTC) - Expand

Re: the mill

(Anonymous) - 2014-05-19 22:59 (UTC) - Expand

(Anonymous) 2014-05-19 09:42 pm (UTC)(link)
True

Is this jus about issue trackers.

(Anonymous) 2014-05-20 01:37 am (UTC)(link)
I'm probably over-simplifying, but it seems that the big problem is the issue tracker.
Email is a standard (lots of standards) with standard tools.
git is a near-standard which could use better support, but works well.
Issue trackers are .... a mess.

That sample work-flow shouldn't require a switch to a web browser. The dev should be able to reply to the email and the reply should be fully authenticated and allow 'mark as duplicate' etc. All relevant info should be in the local email archive and the local git archive, both of which should be linked from the email in an 'obvious' way.

Once we had a sensible distributed federated issue tracker, the rest would just follow naturally, wouldn't it?

- NeilBrown

LInux

(Anonymous) 2014-05-20 02:28 am (UTC)(link)
i'm using Linux since 2008-*, i accept during early days up-to 2005, they never cared much about user experience. But this scenario changed after release of Unity and Gnome 3, developers wanted some thing that doesn't get in their way of daily task, this GNOME really cared about. I would say in recent time GNOME changed a lot than Unity when it comes to user experience.

i have used OSX for some time through my friends laptop, i don't like how touchpad works which makes me lose my mind in what i want to do. then again this is my experience. Moreover this is not needed for developers for never used macs on their first time basis.

Tools and App needed is already available in linux world, but it takes one distro to put it all together which is exactly what Fedora is trying to do. On Hardware, apple does offer something that rivals can't match, most important thing is battery which is huge when compared to others. i disagree on battery lifetime. it is greatly improved in 2013-present timeline.

My conclusion is 2014 will be good year for development on user experience on gnu/linux.

Re: LInux

(Anonymous) 2014-05-20 12:49 pm (UTC)(link)
I thought the opposite. I used Linux from about 1998 (RH 5.2, pre Fedora and pre RHEL) and I thought the opposite. The GNOME2 desktop didn't get in the way, nor did KDE 3.5 (I used both). I found that with GNOME3 and Unity, they thought that I was an idiot and needed help navigating around my computer to find files, directories and applications. If anything, the UI got in the way because it was very difficult to do anything (and particularly difficult to do something using the keyboard only).

They confused the desktop with a tablet interface. When I have two 24" screens on my desk, I don't want some weird popup at the side and don't want to be waving my arm left to right and back just to get stuff done. I would argue that the Linux desktop and new strange desktop paradigms (more like tablet paradigms) are a step backwards; probably usable on netbooks but not for me thanks.

Re: Linux

(Anonymous) - 2014-05-21 11:06 (UTC) - Expand

Unity lacks keybinding supports

(Anonymous) - 2014-05-25 16:06 (UTC) - Expand

(Anonymous) 2014-05-20 02:50 am (UTC)(link)
Folks end up using a multitude of devices and OS's these days. Having one smarter than another is not a selling point, instead I would argue ease of transition is. Though I use GNOME 3 regularly its biggest fault is that it's different.

There are two areas I wish GNOME would focus; notifications and multi tasking. The current design that hides notifications is infuriating, I miss countless notifications. And window multi tasking is awkward until you discover tricks like window stacking and sending to back with middle click.

Of all the modern desktops I think Chrome OS does it best. It keeps it traditional and has a heavy focus on the browser for apps.

I'm a developer, give me a browser and a good terminal and I'm happy. The desktop is mattering less and less.

Notificaitons

(Anonymous) 2014-05-21 04:31 am (UTC)(link)
Most of your complain are addressed by extensions located on http://extensions.gnome.org

(no subject)

(Anonymous) - 2014-05-21 16:56 (UTC) - Expand

Page 1 of 2

<< [1] [2] >>