top | item 32455968

The open source paradox (2020)

88 points| mmphosis | 3 years ago |antirez.com | reply

87 comments

order
[+] bruce511|3 years ago|reply
Today we treat work by a professional as being of higher standard than an amateur. A pro footballer clearly plays better than someone in an amateur league.

But it was not always so.

In recent history "professional" indicated that the task was bounded by time, and thus constrained in quality. An amateur building say a clock could take unbounded time, and hence create a superior product whereas a professional had to sell the clock, so it had to be produced in affordable time.

John Harrison starts life as a carpenter, making some clocks on the side as a hobby, interested more in perfecting the concept of clock than selling clocks for money. (although he had a prize in sight for inventing an accurate nautical clock.)

Despite making only a handful of clocks in his life, he's credited as being the most important clock maker ever.

Thus it is with OSS. Given the lack of monetary benefit, the benefits of writing it have to be elsewhere. In the satisfaction of a job done well. In the beauty and elegance of the code. The timeless perfection.

Or the idea that OSS presence will look good on your CV and held get you that job. In which case just throw stuff at Github to make a "portfolio". Never to be looked at again.

I think it's safe to say that the majority of OSS is the later, but we are all better off for the fraction that is the former.

[+] ChrisMarshallNY|3 years ago|reply
> Thus it is with OSS. Given the lack of monetary benefit, the benefits of writing it have to be elsewhere. In the satisfaction of a job done well. In the beauty and elegance of the code. The timeless perfection.

> Or the idea that OSS presence will look good on your CV and held get you that job. In which case just throw stuff at Github to make a "portfolio". Never to be looked at again.

> I think it's safe to say that the majority of OSS is the later, but we are all better off for the fraction that is the former.

In my case, it's the former, but the latter happens to be a byproduct.

The analogy that I use, when someone asks me why I do what I do, is thus:

Think of me as the old Swiss geek, making cuckoo clocks in his basement.

I like making cuckoo clocks. Like, a lot.

Cuckoo clocks aren't everyone's cup of tea, and that's fine with me. They are my cup of tea, and that's what matters to me.

It's my goal to make the best damn cuckoo clocks available. I hang them all over my house. Every hour on the hour sounds like a Munich Beer Hall band.

If you want a cuckoo clock, I'm your man.

If you don't, that's fine. I don't lose any sleep over it.

[+] Dalewyn|3 years ago|reply
The (modern?) association of "professional" and "quality" (aka "higher standard" as you describe it) has to do with this simple question: Are you willing to part with your money for something?

Being a professional implies that you will deliver a minimum standard of quality and consistency to your customers, because you as a professional are demanding money for your work. Amateur work by comparison can be all over the place, ranging from the mindblowing to the putrid, with no guarantees.

The flipside of this is that the only qualification to be a professional is whether you make money with your work. No matter how skilled or knowledgable you are, you aren't a professional if you can't successfully demand or aren't demanding money for your work.

[+] mpol|3 years ago|reply
Nicely worded.

As examples I would like to call out ffmpeg and x264. Years of refining and refining make it software of a quality that didn't exist before in the world of codecs.

[+] amadeuspagel|3 years ago|reply
The meaning of the word amateur comes from the latin "amare", which means love, so an amateur quite literally is someone who loves his work.
[+] bawolff|3 years ago|reply
We also used to have a much larger idle rich aristrotic class that could fully devote their energies to their hobbies.

In modern times it is usually assumed that an amartur has a real job and can only devote so much time to their hobbies.

[+] nonrandomstring|3 years ago|reply
Remuneration is only one dimension in this.

A certain distance has opened up in modernity. It is between what is accounted for and what is casual. Between the formal and the informal. Official, and unofficial. It is about what it "recognised" ... by whom?

Paradoxically, this age in which everything must be measured, approved, certified and stamped, has made the amateur-professional distinction more about the rituals and symbols of quality rather than measurable quality.

My bachelors degree in CS&EE meant reading about 12 books, plus validation through a gauntlet of examinations. For my troubles I got a nice certificate and 40 years of salary increase. The reality is that I read two dozen other books in my spare time as a teenager, just for fun and interest, and received no degree for them. Since then I've read many hundreds of books in my life, on philosophy, law, psychology, politics and other subjects. No degrees.

Out of love, I've paid more attention, taken better notes and more deeply considered those subjects than I did in the brief 3 years upon which my credentialled career is predicated.

Interestingly a doctor, lawyer or professional politician [1] is as free to write code on which a billion people depend as I, yet I cannot practice law, treat patients or have much of a say in how my society is run [2] - not that I'd be any good at those things.

Professionalism seems as much about money as it is about how society, including its incumbent elites and class structures, select who is "recognised", who gets to bestow the blessings, and ultimately to control produce and behaviour.

While in the army many young lads, whose "heart isn't really in it", are technically "professional soldiers". They hang up their boots after the first tour. Only the crazy ones who become "contractors" (mercenaries) might be said to have the truest instinct for it.

Software has carved out a very unusual niche this past 50 years. It's a mercenary game, so complex and difficult that a genuine meritocracy ensues, one that cannot be ignored or papered over with accolades or associations. Either your code works or it doesn't.

But that unregulated laissez faire has also created a brutal world in which becoming a "professional" coder is certainly the best way to kill any fun and love for it. Meanwhile many well paid, hard working lawyers and doctors hold on to the love for their work.

So I think "professionalism" and the identity, recognition, provision and protections it can offer makes for some very interesting distinctions.

[1] Should we even have "professional" politicians?

[2] Voting in a race between two idiots doesn't count.

[+] HidyBush|3 years ago|reply
>the benefits of writing it have to be elsewhere. In the satisfaction of a job done well. In the beauty and elegance of the code. The timeless perfection.

or, more realistically and less rose tintedly, people want to implement a functionality for their personal use case and hack together some code and libraries to get it done as quickly as possible

[+] quickthrower2|3 years ago|reply
Makes me think of the Olympics which is after all the ultimate sporting event and the competitors are amateurs.
[+] bawolff|3 years ago|reply
I'm confused. What is the thesis of this post?

I guess they are saying that both bug reporters and open source maintainers care about software quality (generally excluding learning projects and research prototypes and the like).

No shit. I don't think anyone has ever disputed that.

In the open source world we generally say that users are not entitled to anything. They get what we feel like giving, because they are not paying us.

This is just as true in the corporate world. If your manager tells you to do X, and some random on twitter wants you to fix bug Y, you do X not Y. The random on twitter probably cares about software quality too. That has no bearing on you probably ignoring them.

[+] Thursday24|3 years ago|reply
I have a question for experienced/skilled FOSS maintainers.

Are there any good ways to convert those who comment/suggest into contributors? I feel like instead of simply dismissing suggestions with "you get what you paid for", there must be a better way to handle the situation. Or perhaps I'm too naive on the topic

[+] xbar|3 years ago|reply
Agreed.

Further, what, precisely, is the paradox? The unfounded assertion that quality exists only in absence of compensation?

[+] jrm4|3 years ago|reply
I like this a lot -- I think one take-away that isn't explicitly mentioned (that I, as a bit of a GNOME/Wayland hater get a lot) is that "you're not paying for it so you must not discourage what they are doing" is a pretty bad argument I hear frequently.

Even if you're Free and Open Source, you're injecting code and ideas into a community. By making that public (and intended for wide use) you are opening up for criticism from anybody to say "I think your software is bad and you should stop promoting it." That's just free speech 101.

[+] em-bee|3 years ago|reply
the primary issue is in what tone the message is sent. i consider it reasonable to expect polite and friendly interaction. freedom of speech does not give anyone the right to hurt someones feelings.

if the software is bad, don't use it. if it is dangerous (you could loose work when you use it) then be explicit about the danger. "your software is bad" is a rather useless criticism. tell me why. tell me which alternative is better. tell me what would make my software better. but don't just tell me to stop promoting it, because that is not your place to say.

[+] chaosprint|3 years ago|reply
Just like art. At least that's what I feel when developing https://glicol.org

I didn't have to develop a new computer music for a musicology phd and my scholarship was just for a humanity thesis, but I just wanted to do it.

[+] amelius|3 years ago|reply
How do most artists feel about others trying to tell them what to make? Should they welcome this input?
[+] shaan7|3 years ago|reply
Whoa Glicol is cool! I don't know anything about making music but I had fun tweaking the code on the homepage and listen to the music change :D
[+] vinay_ys|3 years ago|reply
Almost all popular open-source software has paying patrons – companies/universities that give time to the individual to work on that open-source project while keeping them gainfully employed.

In recent memory I cannot think of any serious open-source software that doesn't have individuals from well-paying tech companies contributing to it in significant ways. These projects are usually of higher quality and are done in the spirit of the open-source ethos - everything is done in the open with open governance etc. Usually expectation is everyone contributes and gets a lot of value for a lot less effort due to the collective effort.

Then, there's a long tail of unpaid software that's put out in GitHub etc. whose quality is highly suspect. They are done as a hobby of an individual, may not even have a proper project community structure (website, mailing list, seeking contributors etc).

Then, there's another category of open-source – these are commercial ventures that want to garner the goodwill associated with open-source model/movement to further the adoption of their commercial offering. Nothing wrong with it, as long as they are honest about it. They are different in some fundamental ways. They intend to control the fate of the project very tightly and privately and there is no open governance of the project. Entirety of the project may not be open-source. Big chunks of the critical functionality may be closed source. At some point they may change the open-source license of the project to make it more onerous.

Some of the best open-source software that I have seen that do both open-source and commercial parts really really well are sqlite, haproxy, nginx.

[+] einpoklum|3 years ago|reply
> Almost all popular open-source software has paying patrons – companies/universities that give time to the individual to work on that open-source project while keeping them gainfully employed.

Surely, it's the other way around. You are likely thinking on projects which are not just popular, but with a target audience so large that they are nearly-mainstream-media-level popular, or alternative, important enough to be necessary for large corporations' activities. For those you may be right, and even there I'm not sure.

[+] carapace|3 years ago|reply
> In recent memory I cannot think of any serious open-source software that doesn't have individuals from well-paying tech companies contributing to it in significant ways.

Bash? Chet Ramey is employed at a university, but I don't think they pay him to work on it.

https://www.gnu.org/software/bash/

[+] Jensson|3 years ago|reply
> Almost all popular open-source software has paying patrons

Because they are popular, people pay and contribute to popular things. Many become popular before they have paying patrons, but once you are popular you will get people who are happy to help pay and contribute.

[+] llamajams|3 years ago|reply
Somewhat related; the Po/architect/techlead ( transcends titles) dude on my team , who is a great guy technically and team wise, is completely unmanageable when it comes to day work. Whichever issues he is assigned to he will not do... instead he will do some other stuff none ever though of or asked for (good stuff tho but won't see value or impact until at least half a year later), but if you assign a crystal ball gazing task to him he won't do that either, hell do something that should have been done 6 months ago. Management really got into work tracking ... So it's a constant cat and mouse game. He just wants to cash a check and do whatever he wants to do.
[+] danbmil99|3 years ago|reply
Interesting note: the word amateur comes from the Latin Amat, to love. An amateur does what they do for their love - of music, art, programming or whatever, not for mundane reasons such as career, fame, or material compensation.
[+] Silverback_VII|3 years ago|reply
I don't think the gap between an amateur and an artist or business owner is the love for their work.

The gap is the ability to generate something of value to others to the point at which you can sustain your efforts without needing to subsidise it like a hobby.

[+] jokethrowaway|3 years ago|reply
The main problem is that people want to work for themselves and not for the nth horrible manager in a company they don't care about.

OSS is seen as a way to escape the rat race, either as a better job or as some form of passive income.

It's no wonder developers complain about not paying "customers", their goal was money from the get go.

This is why OSS can't be a replacement for paid software and companies should rely more on paid software - whether open or closed; paying money, after all, is nothing but a way to recognise the value that went into a piece of work.

OSS relies on a few exceptional individuals (Salvatore certainly being one of the enlightened ones - as well as someone that found a way to monetize) but it doesn't scale to your average Joe.

[+] ece|3 years ago|reply
Except projects like Blender, Grafana, and others like it started small and became big. Building something commercially successful is an additional step, it's optional, but totally doable. There are distros and open source apps/games that charge on stores, which have developed a commercial component. Paying for work is a good thing to be doing.
[+] dahart|3 years ago|reply
> The paradox is that the OSS writer cares and is often willing to fix code she writes for free, more than the other paid work she does.

I feel like the paradox of this claim is that paid work seems to be collectively far higher quality software than personal OSS projects. This claim is my opinion, I’m not stating it as fact, and I can certainly think of specific cases of very high quality OSS and very low quality commercial software. That said, in my experience both personal and witnessing others, the sum total open source software has a worse user experience precisely because it’s not catering to what other people need, while paid work might seem less cared for but actually does take care of all the boring chores that need to be done to make software great. Things like good documentation, good unit and end-to-end tests, and polished interfaces, just to name a few. Even just building a GUI is probably eschewed more often by OSS projects because it takes loads more work than making a functional CLI. All these things tend to get skipped more often when you’re writing software for yourself, it certainly has been true for me as well as other people I know. It certainly seems true if you pick random projects to read through on github or npm or whatever, most of it seems like it was a passion project for a month or so before getting abandoned.

[+] Synaesthesia|3 years ago|reply
It makes a big difference to be working for yourself, rather than someone else. It shows that people are motivated by more than money. We have an intrinsic desire to create things.
[+] bruce511|3 years ago|reply
See Profession by Isacc Asimov.

I'm a creative. I have to create. I would be satisfied with nothing less.

I used to think, like you, that everyone was like me. But I've discovered, most are not. Most are happy to float through life just consuming what is around them.

Sure,many lack opportunities and resources. But creatives exist everywhere - creatives create regardless. There are lots of creatives, but most are just consumers.

And that's fine.

[+] stinos|3 years ago|reply
It makes a big difference to be working for yourself, rather than someone else

Statements like this, and the whole article basically, make me wonder - since I'm apparently an outlier because none of this is really true for me - whether this originates from people doing jobs they don't really like and/or working for companies which have questionable work ethics and/or working for companies which are mostly about profit not product. I don't really feel any difference in motivation for the payed jobs I do and the contributions to OSS and the personal side projects. And to some extent: the hobbies I have, the non-software things I build. I just want to get creative and do the best thing possible. Sometimes that gets skewed somewhat due to certain requirements, and that happens more for payed jobs, but that doesn't change my motivation.

[+] marcus_holmes|3 years ago|reply
If I was painting a picture, and some well-meaning observer came up to me and said "I think the bottom left corner should be red; I want to hang a copy of this on my wall and it needs to co-ordinate with my colour scheme" then I would rightly tell them to go away and paint their own picture, or pay me to paint the picture they want.

Code is no different: you only get to tell me how my code should look and feel, or what features it has, if you pay me for it. If I'm creating it for the joy of creating it, then I get to say what it is and what it does. And it's utterly my right to refuse your money, block your comments, and continue doing something with my code that you don't like.

At least in OS you can fork my repo. Then it's your code and you can do what you like with it.

[+] danuker|3 years ago|reply
I have a direct counterexample for this post.

Linux was created to meed common needs. For scratching each others' backs and sharing costs and risks, similar to investing in 1/10 of 10 risky enterprises, rather than taking on the full cost of one.

Linux does not care about "software quality, grandiosity, perfection", rather, to get/keep things working and address the needs of its stakeholders: https://www.linuxfoundation.org/our-members-are-our-superpow...

[+] lukaslalinsky|3 years ago|reply
Except that I'd say this applies to Linux as well. The main reason why so many commercial users of Linux leave their drivers closed source is because they don't meet the quality requirements to push them upstream. Commercial work is typically done on project bases, you write the drivers once and that's the end of your job. That's not the case for Linux. Someone has to maintain the drivers, so you want the code to be maintainable. If you maintain something long term, you have to care about the quality.
[+] nayuki|3 years ago|reply
> the best code is written when you are supposed to do something else

> programmers are likely to spend more energies in their open source side projects than during office hours

These remind me of Paul Graham's essay "Holding a Program in One's Head": http://www.paulgraham.com/head.html

> It's striking how often programmers manage to hit all eight points by accident. Someone has an idea for a new project, but because it's not officially sanctioned, he has to do it in off hours—which turn out to be more productive because there are no distractions.

> ordinary programmers working in typical office conditions never really understand the problems they're solving

[+] fedeb95|3 years ago|reply
A lack of proper funding of well made things doesn't mean it won't be achieved ever. Many assumptions made in this post... makes it quite useless
[+] tardyp|3 years ago|reply
Another key reason to me that open source can be very good quality is when the developer is the key user.

If the developer has strong knowledge of the business while designing a product, it always ends up with better qa as they are writing the right product on first draft.

You hardly get that when you hire someone to do something for you. That is valid in other domain than programming.

[+] daemond|3 years ago|reply
I agree with it that when the OSS is in the early stages. When the OSS has a large number of users, forms a community, and has commercial potential, things will change.