I don’t care if you’re volunteering your time; if you build something whose implied purpose and success depends on other people using it, you emphatically have a duty to those people not to silently destroy stuff that was there before your software was.
If I fork chromium, I do not get to claim that I am a chromium maintainer.
Vim and Neovim are two seperate programs.
If it's going to nuke vim's undo files, it can't hide behind "another program".
If that's not your point, then I have no idea what you're trying to say.
From what I can gather, you can use the same vimrc file to control both vim and neovim.
Even a gift comes with an implicit promise that it will do no harm. Deleting important data of yours without warning is harm.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.That's such an obvious category mistake that I'm not sure how to respond. It almost feels like a bad-faith interpretation of Wichary's original point.
That does leave the question of why this idea has started to take off more recently. Part of the answer is certainly that Rich Hickey, disgracefully, set the ball rolling in this direction, and that many others have welcomed it as one weird trick and one pat answer for all the worsening problems of developer burnout. Unfortunately it seems hard to dismiss the idea that it's also social breakdown driven by a broader trend, as over time we move further and further from the pre-'60s "neurotic society" of people obsessed with duty and social conformity (often with oppressive or destructive results, to be sure) into the "psychopathic society" in which even people who don't themselves merit a Cluster B diagnosis have internalised narcissistic and psychopathic attitudes.
You can't have both.
> anyone gets to do more or less what they want with the code
so if the software had explicitly installed a root kit, you'd say the same?
If you give out free soup, you get to poison it too?
"Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE."
Unclear? The fact that it's part of a license does not make it a legal-system-only warning.
The software might eat your dog, and feed your homework. Run it at your own risk, and be prepared to submit patches or fork it to make it behave the way one prefers.
Some bit of open source software does something bad or unwanted which causes people point out that it shouldn't do that bad thing. In this case, not even "the authors of this software should be held liable for the software doing the bad thing", just, "Hey, the right thing to do would be to update the software to not do the bad thing."
Why does this always lead a zillion people to come out of the woodwork to point at licenses and warnings or whatever? Like, yes, there's a warning. Your software having a warning doesn't mean people can't criticize you and your software for doing bad thing. Your software license does not give you immunity from criticism or from people saying you should change your software.
No, you don't have to change the software. Yes, other people are within their rights to fork the software themselves. But they can also point out that they told you that your software was doing the bad thing and you didn't fix it or change it, and that as a result they don't like you or your software or both — whatever. Nothing at all wrong with that.
Sure, and when it does we can say “this piece of shit ate my dog, and the authors of the software have no concept of a duty of care to their users”. And no amount of “well, axually…” is going to make any difference. I have a hard believing someone is copy-pasting a license file in good faith in response.
If my neighbor mows my lawn for free, I'm not going to complain about his workmanship. If I want the job done a particular way, the solution is to do it myself, or pay someone to do it the way I like.
I think this is a decent analogy, but it works better the other way. If my neighbour offers to mow my lawn, I accept, and then he destroys the flower bed adjacent to the lawn, I will be upset, and I will have every right to complain about what he did. If he reacts by blithely dismissing my concern, then I certainly have the right (and arguably the obligation) to warn others that they should think twice about accepting his offers of gardening assistance.
Some expectations reasonably go without saying; "don't destroy my flower bed when mowing my lawn" is one, and IMO "don't destroy my data without a clear warning and a chance to back out" is another, though of course we might disagree about exactly where this does and doesn't apply.
This is a great example of why. Most humans have a sense, deep down, that contracts often exist to bridge the gulf between the ethically defensible and the legally defensible.
It's hard to imagine that any sane person who is just looking to use a popular editor would read some broad limitation of liability language like the above, and interpret it to mean, "By the way, we intend to quietly delete certain files created by a competing fork of this project whenever we find them."
It's true that contracts with liability limitation clauses like this are an absolute necessity in this day and age. But there's also a non-legal principle of mutual respect that is absolutely necessary to a healthy open source community.
Forks of projects trodding all over each others files is one of the more common problems that has happened, historically. Prior to the major efforts around freedesktop.org around configuration standardization, it was quite common. It'd be one of the first things I looked for when switching to a fork.
I also suspect that few people actually believe it’s ok and these legalistic defenses are more about circling the wagons. How many people would defend Microsoft if a new Office version automatically and quietly stripped edit history from documents that were originally created by other versions? Would we be hunting for limited liability clauses in their EULA to defend the design decision?
Thankfully, that's not a thing I ever did.
> I also suspect that few people actually believe it’s ok and these legalistic defenses are more about circling the wagons.
For me it's more about healthy boundaries and expectations. If I'm somehow paying for a project's development, I have higher expectations. If I'm not, I understand that I've chosen the dev/test track and there will be bugs and issues. The developer may choose to run off in an odd direction coughGnome3cough and my only recourse is to fork or hope someone else does. Disagreements as to how things should work happen pretty often.
I'm not defending anything or anyone. Just describing the system as it exists.
“Ow, the gas pedal is actually a bear trap.”
“Why are you complaining? It’s free!”
How does this translate to the vim situation?
The only way to "fix" this from a source code perspective would be to fork Neovim.
Maybe if they’re making their own persistent undo standard, use different file naming conventions.
That said, as a fork of Vim, maybe the Neovim authors are at least partially reasonable in assuming that you’re not running multiple forks of Vim that could then potentially conflict with each other. It just sucks that they never really thought of a migration path for this particular feature.
> If I give away food I have a duty not to poison you. It doesn’t matter you didn’t pay for it.
If I invite you to eat at my house, there is no health inspector and no government. I'm just giving you free food. Would you agree that I have a duty not to poison you in that case?
If we aren’t making the business analogy though, then Neovim has even less obligation to produce a professional quality product. When you come to my cookout the expectations are different than when you go to a restaurant.
At the top of this discussion parent to where I said “software is not food”
> If I give away food I have a duty not to poison you. It doesn’t matter you didn’t pay for it.
First, I’ll start with the loaded language here: “duty not to poison you.” Yes, duh, no matter what, intentional poisoning is a crime. But the phrase is “not to poison you” which I interpreted to mean that we are taking about harm mitigation/prevention rather than intentional crime.
In that context it very much does matter if the relationship is giving away food for free in a private home versus selling or giving away food in public.
If we are to consider Neovim to line up with the “giving away food for free at my backyard cookout” analogy, they have a more relaxed standard of care. We don’t go to a BBQ and expect the hosts to have training from the department of health and signs that say “employees must wash hands before returning to work.” In this sense, Neovim would say, “hey, we did our best, we tried to make good software but this condition caused it to fuck up your files. Sorry.”
If we are considering Neovim to line up with “McDonald’s giving away free hamburgers for national hamburger day,” then now we have to recognize that the software industry does not involve nearly as much regulation as McDonald’s. Neovim’s story doesn’t change: “hey, sorry, we did our best, …” but McDonald’s doesn’t have that same standard of operation. Whether or not the hamburgers are free they have to get all the same licenses, do all the same training, and make their employees keep all the meats to temperature and all of that.
There’s no regulation around the general quality of software. You don’t have a strong claim to damages if your software crashes or causes problems. The remediation for problems like that is accomplished via SLAs in the business world, which obviously nobody has with Neovim. They’re just providing software as-is with no warranty or guarantee of quality or fit for purpose (#7 in the license agreement) and they’ve even been nice enough to provide the code ahead of time so you can audit it.
So unless someone at Neovim is in an evil lair declaring that they want to delete stuff on purpose to fuck up your day, there’s really not much of a logical case for their negligence here. It was provided at no cost, there are no significant legal regulations on software quality, they offered the code so you can inspect it, and they warned you in the license that it is provided with no guarantees or promises.
This concept of “duty of care” doesn’t exist in the software world, as much as we might prefer it to really exist.
To avoid metaphors: There's an implicit assumption that when you install a piece of software, it will not fuck up your data/system without your consent. No, installing it is not consent, neither is using it. Neovim does exactly that. No amount of food analogies or license quotes will change that fact.
Neovim authors should've just used a separate file, just like they're happy to use separate format and files for the configuration. Instead, they've decided to be dickheads, and interfere with vim's file, even after the issue being pointed out to them.
Neovim being free software is a lot different than United Airlines giving me a free flight or my doctor giving me a free consultation.
It’s very true that you can go to civil court and make a claim that a business or individual harmed you. If you do that with Neovim the judge is going to pretty quickly read bullet point #7 of the Apache 2.0 license, you’re going to struggle to prove any kind of mal-intent, you’re going to tell the judge that you paid $0 for the software, and you’ll be pretty quickly sent along your way with no damages awarded.
Do you really believe developers have exactly zero moral responsibility to their users? None at all?
Really?
Would you still believe that if you found the developers of ssh deliberately included a backdoor for hackers, or neovim was uploading everyone's code to the NSA?
This issue with Neovim sounds like less than ideal design, or a bug, or both, not some kind of intentional affront to users.
But actually there is! They didn't start from scratch. They took another very successfull and beloved project with the promise "to make it better". There is some promise here and the duty not to make it worse.
How many neovim users were made aware that the software would proactively delete their decade-long file history?
This is the extreme version of "I enjoy coding but I hate users."
It may be legally valid in absolute technical terms, but I'm going to take a lot of persuading that it's a healthy attitude.
Everyone in open source is trying to write good software and the definition of good is subjective depending on overall design, features, ease of use, quality, and performance.
If an open source project is missing a feature, go build it. If the project maintainers don’t want it, fork the project. Be the change you want to see in the world. That’s the beauty of open source.
> Be the change you want to see in the world.
The feature being: don't delete my data belonging by another program? It's kind of too late once deleted isn't it? And now even that other program cannot use the data either.
By that logic, if Facebook gives away their services for free then they don't have the duty to protect their user's privacy and mental health?
And for what it's worth, I have flagged your comment for the inevitable pointless bickering it has precipitated. While applying reductionist frameworks and seeing where they lead is a necessary part of an individual's path to understanding, please avoid pushing ignorant assertions ("there is no duty here") as if they might constitute well reasoned truths.
And even mentioning that results in "fork it if you're not happy" which immediately turns everyone off who's had to maintain a fork to fix a minor issue in something before. And anyone who can't fork it is being told to go to hell.
Everyone needs to quite frankly get off their high horse, crank the ego down and listen to users. Because you're damaging open source with the attitude.
30 years ago, things were better. They got a lot worse, particularly since github appeared.
Yes, OSS can start with just a passion without a duty, but as the scale grows you have a duty to make sure it does not have adverse effect.
If you don't like the duty, just make it die by building it crappy like VIM does.