Hacker News new | ask | show | jobs
by AdmiralAsshat 2597 days ago
So the initial letter hits upon something that the article itself ignores, namely that the FOSS community requires more than just developers. I see this attitude all the time in certain circles that only the developers contribute any value to a project, and prospective contributors should either learn to code or get f--ked. It's not terribly welcoming to the larger community (of whom the majority are not developers), and the fact that many of these projects lack adequate documentation, wide availability, or a centralized support forum only reinforces that understanding.

It's a problem that can be remedied, provided the projects stop pretending that the packagers, technical writers, GUI/UX artists, and community managers are expendable.

2 comments

Not to mention users! I can't count how many times I've seen bug reports responded to with a dismissive "you're welcome to file a PR", which is just a thinly veiled expression of the same attitude: you're not valuable, your domain expertise is not valuable, and the time you're taking to engage in the development cycle is not valuable; only your code is valuable. It's really not a big mystery why more average users don't flock to that sort of treatment.

Even when that attitude isn't so explicitly directed at users, you're right about it being visibly directed at other community members. It all sends a clear message, such that the average prospective user will move on, thinking "that application is meant for someone else."

I wholeheartedly agree.

In addition, responses like that do more to specifically push people towards commercial software than anything else (not specifically proprietary, just commercial). Why use a piece of software where the developers have no incentive to care about your concerns when you could instead use a piece of software where you're a paying customer and the production company has a financial incentive to keep their paying customers happy?

Since the launch of Windows 10, Microsoft has been surprisingly responsive to customer requests. They have a ticketing system where customers can submit new feature requests, and if it's both reasonable and popular enough, they'll implement it. Here's a reasonable example: a while back, they decided to eliminate the split mode from the virtual keyboard because they thought nobody would miss it, as they added a swipe keyboard to replace it. Well, it turns out they were wrong, because lots of people opened tickets with Microsoft asking for it to be put back. They put it back in the next update. They listened to paying customers. Compare this to GNOME, on the other hand, which regularly removes popular features and ignores all user complaints.

>Compare this to GNOME, on the other hand, which regularly removes popular features and ignores all user complaints.

The fact that GNOME is the dominant DE for Linux, despite this fact you cite, really is confounding considering that the whole point of FOSS is supposed to be that it empowers the users. It almost feels like the entire existence and adoption of GNOME by many prominent distros was a conspiracy to prevent FOSS desktops from succeeding.

My guess is that it wasn't really a conspiracy but that most distro developers do not give a rats ass about good desktop experience, thus they simply package whatever those who do work on desktop stuff and get done with it. "Those who work on desktop stuff" are basically Canonical and Red Hat and both of them decided, for various reasons to stick with GNOME, partly because GNOME at some point (2.x days) was a good enough desktop and partly because everyone had settled on Gtk+ as the defacto Linux toolkit (itself mainly thanks to it being usable from C, written in a way that allowed other languages to interface with it almost automatically and of course having a license usable by everyone from the beginning) and GNOME was the defacto desktop environment for Gtk.

Of course all that was on the Gtk2/Gnome2 days and Gtk3/Gnome3 broke a lot of bridges, still the complexity of the desktop and the fact that GNOME has actual paid people working on it ended up with the project having a lot of inertia and they are the projects that do most of the work no matter how misguided that work might be.

After all, those who do the work are those who decide how that work will look like. Anyone else, regardless of them being right, wrong, having better or worse opinion on that work, is irrelevant.

If you want to take control of the Linux desktop away from GNOME you need to replace the GNOME stack - not just the desktop, but also the toolkit, the inter-application communication, sound libraries, etc - with something that is objectively better (for a definition of better that a majority agrees with it) and convince other developers to use it.

>After all, those who do the work are those who decide how that work will look like. Anyone else, regardless of them being right, wrong, having better or worse opinion on that work, is irrelevant.

Yes, but it's not just GNOME who does such work. KDE has been around even longer than Gnome, and has a very different philosophy for their DE (one which, IMO, is much more aligned with the hacker philosophy of being able to customize things to your heart's content and having lots of features), yet most Linux distros stick with Gnome.

>If you want to take control of the Linux desktop away from GNOME you need to replace the GNOME stack - not just the desktop, but also the toolkit, the inter-application communication, sound libraries, etc - with something that is objectively better (for a definition of better that a majority agrees with it) and convince other developers to use it.

Yeah, we already have that; it's called KDE. We also have other DEs based on both Qt and Gtk: LxQt, Cinnamon, MATE, Xfce.

Basically, your post seems to imply that Gnome is the only full-featured DE available for Linux, and this simply isn't the case at all.

KDE is nice and all and certainly better than GNOME from a UX perspective (at least according to my preferences) but it always suffered from Qt:

1. Initially Qt1's license made a lot of developers to shun it (if that was warranted or not is a matter of opinion, but that is what happened).

2. Being written in C++ makes it very hard to not break ABI and Qt broke it several times - either because of itself or because of C++ libraries.

3. C++ also makes it harder to interface with other languages, meaning that for most languages interfaces either do not exist or they do but are of inferior quality. In comparison Gtk+'s gobject was designed to be easy to interface with.

4. Even if you buy into C++, for a long time you had to wrap your build system around Qt with moc and all.

5. Qt was always controlled by a 3rd party company whose interests did not align with KDE's: Trolltech/TQTC wants to provide middleware to developers for developing desktop applications, KDE uses it to provide a platform API. These two overlap a bit, but they also are incompatible in other areas (such as API/ABI stability).

Some of these (e.g. license, moc) are not valid any more, but others (TQTC goals) are and even without them, GNOME has already a lot of inertia.

> Cinnamon, MATE, Xfce.

These desktop environments rely on technology developed primarily for GNOME by GNOME and/or RedHat (and to a lesser extent Canonical) developers, like Gtk+, Clutter, etc.

The original post was about why everyone uses GNOME if other environments are available: if there is anything that my answer implies is that if you rely on GNOME tech and/or tech made primarily with GNOME in mind (even under the disguise of a neutral tech) then GNOME will be where things will work better and first show up.

The only neutral tech that there is on desktop is X11/Xorg and of course the GNOME people want to tear that down and replace it with their own tech.

I think your comment really does hit the point home. The developer working on a piece of software without any incentive to actually work on that software, doesn't and shouldn't care for the user.

To solve that, one needs to find a way to incentivise the developer so they are actually able to work on requests not just features they deem important.

Some projects have adopted donation systems with different grades of success. However this really requires having a combination of factors to work out, such as people actually needing the product, developers not being toxic in communication, the project and developers actually being around for some time to gather a dedicated following.

Examples:

http://www.ardour.org/

https://godotengine.org/

https://rpcs3.net/

Having lived through the entire history of free software (well, Free Software with capital letters, anyway) it always comes back to this: Software freedom is fundamentally valuable only for developers, because only developers can use the freedom it gives. (That's pretty much the definition of "developer"—someone who can modify software.) Users get value only as a side effect of this developer freedom, because a developer builds a product for them.

Free Software originated in the hacker community—which is a community of developers developing for developers. It's always struggled to extend those values in a way compatible with the rest of the world. Notice that developer tools like GCC or Linux are the big success stories of Free Software, whereas end-user tools like OpenOffice or GIMP have always been kind of…meh.

> Software freedom is fundamentally valuable only for developers, because only developers can use the freedom it gives.

Substitute software freedom with open source and I'd agree. But software freedom is a whole other thing that is valuable to non-developers. Proprietary software can cost money, require subscription fees, make older versions no longer available, add all sorts of licensing costs like per CPU licenses, restrict features to "pro" versions, etc. Those are issues that affect people (and large companies) that will never read the source code.

Free software is about user freedom, OSS is just a means to that end.

> Software freedom is fundamentally valuable only for developers, because only developers can use the freedom it gives.

That is akin to saying that democracy is fundamentally valuable only for politicians, because only politicians can use the freedom it gives.

That is simply completely wrong. You don't have to be a developer yourself in order to benefit from not being dependent on a monopoly. The fact that you can buy development work on the free market benefits every user of Free Software. The fact that the code of Free Software is easier to inspect benefits every user of Free Software.

There is no need for everyone to be a politician for democracy to be generally valuable, there is no need for everyone to be a car mechanic for freedom to repair cars to be generally valuable, and there is no need for everyone to be a developer for freedom to inspect and change software to be generally vaulable. Those freedoms are what enable free markets instead of monopolies.

I said fundamentally for a reason. All of those things are of course user benefits, but they are indirect side effects. Users get none of those benefits without enlisting a developer to take advantage of them. So the most powerful evolutionary pressure is to make free software that is valuable for developers. The closer it gets to a “pure” user problem, the less incentive there is for developers to work on it, and the worse it gets. (As a general rule.)
> All of those things are of course user benefits, but they are indirect side effects. Users get none of those benefits without enlisting a developer to take advantage of them.

That is not really true.

For one, even users of purely proprietary software do benefit from the work that developers of Free Software do, because the market pressure exerted by their presence in the market does affect the pricing and quality of proprietary offerings. While that is an indirect effect, it does not in any way require "enlisting a developer".

Also, in order to have a free market choice in who you hire to do development work for you, you don't need to enlist a developer. That freedom of choice is every user's immediate freedom.

> The closer it gets to a “pure” user problem, the less incentive there is for developers to work on it, and the worse it gets.

But that has nothing to do with whether it's a "user problem", but only with whether it's a problem of people who value their freedom. If a user values freedom and thus invests in it, such as by paying a developer for doing some work for them, then they will get just as much freedom as developers who value their freedom and for their reason invest in it. The problem is not that they are users, the problem is that they are unwilling to invest in their freedom, and instead expect others to invest for them.

The problem is the expectation that developers invest in the freedom of users. Developers will invest in their own freedom first and foremost, obviously. If you expect developers to invest effort into solving problems of non-developers, you should also expect non-developers to invest in developers solving their own problems. Like, you should expect users to pay developers so they can work on stuff that is of no importance to the user.