How does excluding the coworker help you? It certainly won't make them suddenly realize that you do deserve human rights after all. Why not make the best of the situation and create something of value to both of you?
Reform is not the intent, although it is the criteria for re-inclusion. The intent is to create a community that respects all of it's members rights. Excluding the co-worker helps me because I don't have to worry about whether the fruits of my labor are going to a effort that will cause me harm either in the present or in the future.
Social interaction and software development go hand in hand - The idea that someone with a fundamentally hostile viewpoint is needed to create something of value for both of us is not applicable. There are many software developers who don't wish harm upon others, and they will be more willing to work with you.
The best outcome in this situation is not the product that gets created. The best outcome is an environment in which members of the community don't feel like their basic rights are in question.
How does excluding that person ensure that they won't use the fruits of your labor for an effort that will you cause you harm? If you think that was the ultimate reason for them to work on the same thing as you, they can still make use of your work indirectly. If you think that they are not just a one-dimensional character, and just happen to enjoy some of the same things as you; then excluding them deprives them of that enjoyment, but it doesn't really help you, does it?
Your second paragraph seems to assume a fixed number of developers working on a project, and in that case there is no downside in replacing them. But what about an open-source project where they keep sending PRs for bug fixes and features that all have technical merit? Would you ignore that and redo the work? If I'm working on the same project, should I avoid merging their work to accommodate you?
While I agree that a community where everyone can feel comfortable is something to strive for, I think that does not require excluding some members for the views they hold. It is enough when they don't push those views onto the others.
You're right - you can't ensure that they won't use your work for bad, that's true. You can try to lessen the impact by making sure they're not part of your organization or community. Excluding them does help me, because I don't have to put up with someone who is actively trying to make my life worse.
I think if you manage an open source project you should feel comfortable taking a stand on contributors who have/advocate for actively discriminatory positions. Just because you organize a community project that may be used by people you fundamentally disagree with doesn't mean you have to check your sense of morality at the door.
If someone submitted a PR to my project who held openly racist positions, I would deny the PR. No amount of genius or technical merit makes up for that.
One could come up with a hypothetical of an open source project that is important enough to require any help it can get, and also somehow obscure enough that only a handful of developers are working on it. Nonetheless, I don't really think most open source projects (or even for-profit projects) fall into that category. At the point where work becomes so important that you need to compromise other parts of your character in order to finish it there are probably bigger things to worry about.
> If someone submitted a PR to my project who held openly racist positions, I would deny the PR. No amount of genius or technical merit makes up for that.
In contrast, I, and many other people, would evaluate it on its technical merits and merge it if it was good. It's just code; it inherits no sin from its writer.
But you discriminate against code--not even a person--based on your personal dislike of its writer. Isn't that bigoted?
Not at all - I don't read Orson Scott Card anymore, because he's a bigot. That is a decision that doesn't touch upon whether or not his books are any good. When it comes to code, there's no piece of code or software product that can't be replaced by someone who behaves morally.
Ultimately, you can't, and shouldn't decouple someone's work from the person themselves. We ought to feel ashamed when we support someone who's beliefs and actions are reprehensible.
> Ultimately, you can't, and shouldn't decouple someone's work from the person themselves.
This is a bizarre and grossly impractical idea. Do you interrogate everyone who sells you anything? Who prepares and serves your food at a restaurant? Who delivers your packages? If you don't, you are being a hypocrite. And if we all did that, society and economy would grind to a halt. You are truly an extremist and a totalitarian.
> We ought to feel ashamed when we support someone who's beliefs and actions are reprehensible.
By that logic, I would feel ashamed to support you. Nevertheless, I would accept your code if it were well-written, because I am tolerant of views differing from my own.
Of course not, because that's grossly impractical. There are easy ways of dealing with that - You can first work with the assumption that most people are fundamentally good human beings who don't carry hatred or bigotry around in their heart. This is not too much of a stretch. Additionally, you can try and have conversations with those who are wrong in their beliefs. This is not always successful, but it's a reasonable thing to do.
The thing is, to a large degree society and economy do already do this. If you're outed as a sexist, or a racist, you lose your job. We mostly operate under the assumption that people are not those things. We're just currently in the phase where we're defining additional boundaries to what is and is not acceptable in the workplace.
After all, everyone who starts a development job nowadays does several things that are akin to what you're describing: You voluntarily confirm that you will not harass or discriminate, and when you break those rules you get kicked out.
What is your basis for "rights"? The idea that there is a right to having a gay marriage recognized as a marriage by the state is very novel. How did that novel determination happen exactly? It can't be the will of the people because then rights are not recognized so much as commanded or agreed upon (in which case, it's possible that the will of the people can change and poof go your supposed rights).
P.S. My impression is that you believe that opposition to gay marriage is bigoted, that it's not possible to have intelligent and powerful arguments against the idea.
> "Yikes my dude - a trip through your comment history shows me you're not going to be an enjoyable debate partner."
Please don't do this. If you think having a discussion with a particular individual is going to be problematic, choose not to have it, or engage as constructively without calling them out like this. You're already involved in a contentious discussion. If your goal is to actually move the needle in some meaningful way, doing this is counterproductive. Regardless of how wrong you may feel someone else is, you have an obligation to raise the bar yourself, even more so when discussing topics such as these.
> My belief is that opposition to gay marriage is indicative of an objection to the idea of gay people themselves, since nobody who has any issues with gay people being gay has issues with gay marriage. It's just a thin veneer of respectability bigots put on in order to appear more civil.
So what would you say to the gay people who oppose government recognition of gay marriage? Are they bigoted against themselves?