关注

《关于自由》

参与了一串关于苹果公司是否流氓的话题讨论。原串太多分支,冗杂不堪,不便继续有效探讨,于是我在这里总结梳理一下自己的观点:

--- 自由

首先需要明确的是,自由软件的自由,并非自由民主的自由。自由软件的自由是开发者**赋予**用户的自由,而我们通常说的自由民主的自由,不需要人赋予。

既然是赋予的自由,自然有多赋予和少赋予之分。开源软件选择了把「自由」多赋予甚至全赋予用户,而苹果选择有限赋予。这原本就是开发者自己的自由——而这个自由是不需要谁来赋予的绝对自由。

这其实完全不是新鲜道理,但是显然很多人忽略了,或没加以区分。希望在此可以达成共识。

--- 侵害

不给出更具体的条件时,对绝对自由的限制,我们才称之为侵害。言下之意,不管是法律强制手段还是舆论打击手段,如果我们利用这些手段去阻碍苹果生产封闭系统的自由,则是我们侵害了苹果。

当然,其实所谓绝对自由并没有那么宽泛,一旦自由涉及到和他人的交互,就不是绝对的了。

正如有嘟友提到前几年苹果公司「降频门」的案件就是例证。

此案的大致内容是:苹果推送的系统更新里加入了一种判断机制,如果妳的手机电池已经老化,新系统更复杂密集的计算可能在电池不能稳定应对时导致自动关机,这个判断作用是此时给手机处理器降频,来防止关机等情况下的数据损失。

怎么设计产品,是苹果的自由,但是和用户交互时,没有事先告知,是不行的。所以,赔了5亿美元达成和解。后续更新中把这个选择权交给了用户。

绝大多数用户在更新后依然会主动选择降频,这是后话。但是此处更需要注意的一点是,如何证明这种行为是主观上的欺瞒、主动且恶意地劣化体验?

当事实上可以达到避免数据丢失的结果,且作用范围仅为某些特定的电池老化的旧型号,对动机的判断需要格外谨慎。

当然,如果遇到事实发生的侵害,我十分鼓励妳拿起法律武器维权且自由地选择弃之不用。

--- 自由软件

不管怎样,上述事件证明了封闭的系统是有可能发生侵害的。那么自由软件是否就是更好的替代方案呢?

对有些人是,对有些人不是。

这几乎是废话,但是很遗憾,还是有人习惯于把世界简化为非此即彼。似乎一个有不足那另一个一定是好的。所以废话还是要说一说的:

如果妳不懂编程也没打算学习编程,自由软件的自由对妳来说是几乎无法从中得益的虚假自由。

自由软件承诺的四个基本自由:

0. 以不管何种目的运行的自由;
作为普通用户的我,完全不会除了开发者定制的初始状态之外的其他运行方式。这和使用一款私有软件并无二致。

1. 学习和修改的自由;
不是学不会,但是如果我真的不想学……这份自由其实是赋予了别人比我更了解我的软件的自由。这当然会带来情感上的不安全感以及事实层面上被第三方侵害的可能性。而与之相对的私有软件的不可修改,则是代表着恶意软件也没法修改妳的系统。

2. 分发;3. 修改后分发……
(普通用户:??)

有嘟友说苹果「以安全之名 xxxx」,但是我们不妨也想想,自由软件以自由之名干了些什么?自由软件真的是尊重用户的吗?

自由软件的商业模式一般也是卖服务,这很容易理解,从逻辑上想一下:源码都是开放的,任何人都可以访问获取,妳原本就可以访问的代码,估计不会愿意花钱购买。

但是这也就包含一层含义:如果妳很懂编程,妳可以不用花钱,自己动手为自己服务。

而什么都不会的用户才需要花钱。这和使用私有软件,尤其是口碑良好的商业公司的私有软件相比,哪一个更「平等」呢?得到的服务哪个更优呢?这需要妳自己来回答。

--- 允许不同

每一种模式的追捧者都会极力鼓吹自家模式是更好的。

私有软件自然会反复强调自己如何专业专注、如何提供良好服务、如何保证用户安全方便。但是我们应该知道,它们始终还是值得警惕的。一旦受到侵害,要积极拿起法律武器。

自由软件当然会强调自己如何「自由」。但基本上妳需要具备相应技术才能真正享受那些额外自由。我鼓励妳学习技能,但不可能强迫所有人都学会。

我相信选用私有软件的用户是希望更自由地享受生活,而让私有软件提供商去管理潜在恶意软件等等一切杂物事;选择自由软件的人则更重视一种理念:不论结果如何,都由自己参与和承担的理念。

这都是再正常不过的道理,它们原本可以共存。

一个真正崇尚自由的人,是会认可这世界完全能够多种模式共存的。因为对自由最基础、也最深刻的信仰,其实就是信仰「相比强迫他人按照自己以为善的方式生活,更愿意容忍、尊重彼此在自己认为善的方式下生活」。

反之,如果对一种模式仅因理念不同、不欣赏,就上升到「抵制」的程度,这不是自由,这是以自由为名的法西斯。

@dimlau 在你匿名之前,稍不小心就得罪商业机构和中共,警方随时可以请你喝茶,谈什么自由?

@magma

哈!

我用不匿名来捍卫匿名的权利。

@dimlau 每个政治广谱带上都站有人,大家手拉着手往正确的方向走。

@magma @dimlau 这条嘟下面估计很快也会开很多分支,血雨腥风,赶紧先占个地方回复了。

在闭源生态中谈自由,有点像在中国用Signal。Signal很好,protocol经过审计、成熟、使用率高,客户端在GPLv3下发布,还被EFF、PrivacyTools推荐。能有啥问题?

——他们想不到中国警察可以任意搜捕、强制你输入密码解锁手机,然后直接通过通讯录里面的手机号抓人。Signal在减少元数据的泄露,但估计没怎么想到中国警察可以根据元数据抓人。

第一世界只需要面对第一世界的问题。

闭源生态看起来很美丽,就像被广泛认可的Signal一样——如果事情像想象的那样运作的话。

在中国,没有匿名,就随时可能失去自由,这是Signal的设计者想不到的黑天鹅。而同样的黑天鹅也可能在闭源生态中发生,就像上一次已经暴露过的棱镜门一样。

而自由软件、开放生态,对这一切更resilient。

@wsb @magma

瑞士有一年某城镇公投,投票表决是否允许在该城镇举办「天体活动」(大意)。也就是说你如果支持裸体出行,就要在众目睽睽之下表态。(哇喔这人原来有这爱好啊!)

我当然不是说匿名不好,我尊重每个人匿名的权利。但是在我们希望到达的那个更好的社会里,不匿名表达主张,也是可以的。

这里面有很多隐含的含义,包括自由、民主都需要勇气;也包括靠等是等不来那个更美好社会的……etc

@dimlau

自由软件的自由对于 "非编程" 用户而言并非 "几乎无法从中得益";一个软件的 "自由性" 对所有用户来说都是加分项。

并非只有自己动手学习、修改、分发才算是从自由软件中得益,非编程用户若使用其他开发者在自由软件的基础上开发出 "更好" 的软件,就是得益于自由软件的自由。

@pessoa

大多数情况下,但凡增加了市场的丰富度,用户都会在长远的时间尺度上获益。

正因如此,我主张**不要**动辄抵制 xxx。

---

自由软件靠社区贡献获得产生「更好」软件的可能性;私有软件靠回应用户需求获得产生「更好」软件的可能性。

结合上下文环境,这不是用户从一个模式转换到另一个模式之后新获得的好处。

---

软件的「自由性」是不是对所有用户来说都是加分项,无法给出确切答复暂且不谈。但是显然帮助用户做判断的是总体打分而不是有没有加分项:

简单一个例子,「Photoshop」和「GIMP/Krita」妳选哪个。问十个人不可能只有一种答案。

---

我个人很欣赏自由软件(或者至少说开源软件),但是我不觉得它像很多人说的那样带有道德层面的高低意味。所以我甚至不觉得有义务去呼吁大家都来用。

但是如本嘟文开头做说,我很希望看到大家推荐自己喜欢的具体的软件,不论它是私有软件还是自由软件,增加市场丰富度,用户才会真正获益。

@dimlau

自由软件**也有**靠回应用户需求获得产生「更好」软件的可能性,而人们**难以**在私有软件基础上创造「更好」的软件。

自由软件与私有软件的区别仅在于其是否自由,特定软件 (功能和操作) 的好与坏和其是否自由没有直接的关联。我没有否认 "帮助用户做判断的是总体打分",我否认的是 "几乎无法从中得益"——所以提出它是加分项 (没有说是决定因素),是有好处的。

无论从哪个层面,推广某种软件当然不是义务,只是个人喜好。没有谁用或买更锋利的菜刀就更道德的事。推广自由软件可以是出于个人利益——用户越多,软件往往发展得就更好,推广者作为软件的用户未来就可以用到更好的软件。

我觉得推广软件自由化不是抵制市场上十款软件中其中 8 款私有软件,而是希望现有的和未来的软件能够自由化。自由的软件能够孕育出更多的同类软件,有时还提供了自建或托管两种选择,对增加市场丰富度有很大的帮助。

要说 "义务、道德" 这种东西,得在另一个领域讨论,例如学校/政府要不要倾向于 (或尽可能) 使用自由/开源软件 (Hacker News 上有一些这样的讨论)。我以为现在我们讨论的还是个人层面。

@pessoa 从第一条你就提到「更好」的软件,妳需要定义一下更好,然后才能进一步讨论为何私有软件「难以更好」。

自由软件和私有软件必然还会共存很多年,至少是会陪伴我们这一代人终生。再一个简单的例子,三维全功能软件blender(GPL协议)已经算是专业领域里很成功的自由软件,十多年前我上学的时候就接触过,但是妳现在去搜索这个关键词,结果里依然大量存在「前景如何」「好找工作吗」。

虽然这种论据些许功利,但是可以看出软件自由化这个「加分项」(如果是的话)的对面有多少等着抵消的减分项,不容乐观。同时,私有软件在专业领域的自由度之高、各种插件外设之齐全…

其他观点似乎也没有什么分歧了。不再赘论。

@dimlau

为了便于讨论,我们可以认为有改动的就是 "更好" 的。

我没有说 "私有软件「难以更好」" 😂 而是 "难以在私有软件基础上创造「更好」的软件",即只能参考其设计,难以直接学习或使用其源码。

我一直强调的是自由软件与私有软件 "唯一" 的区别是其是否自由。"私有软件在专业领域的自由度之高、各种插件外设之齐全…" 自由软件有何种限制让它不能具备私有软件这些特点?由软件的自由性带来的减分项有哪些?不能把某个自由的软件的缺点当自由软件的缺点 😂 就像不能因为没有超过一百年的互联网公司就说互联网公司活不过一百岁一样。

@pessoa

妳的原话是说:「自由软件**也有**靠回应用户需求获得产生「更好」软件的可能性,而人们**难以**在私有软件基础上创造「更好」的软件。」

既然这一段话是在讨论软件本身的优化、进化。在这个角度来说,「难以在私有软件基础上创造更好的软件」和「私有软件难以更好」含义无差别。

好的,我们可以忽略语言表达上的歧义。假定妳的观点是自由软件不但和私有软件一样可以通过用户反馈来进化,而且还能借助社区的力量互相学习创造更好的软件;与此同时私有软件似乎只有通过用户反馈实现自身进化,而难以借鉴来创造新的更好的软件。

但是现实是否是这样?私有软件当然可以如你定义的「更好」那样「有改动」。而且有大量例证(或仅从逻辑中推论),私有软件提供方在其中一款软件的基础上开发另一款用于更好地解决不同需求的软件是很常见的。与自由/开源社区相对应,私有软件背后有一个或多个开发团队,团队内部或之间互相学习借鉴太正常了,只不过这需要资金来维持。

这也就引出了(回到了)我的观点:相比较而言,自由/开源软件对生产端更有利——能提高生产率、降低成本;私有/封闭则更偏向于消费端——利润支撑下的更好服务、更好的控制、一致的体验。

如果妳有阅读我上条嘟文,应该能够了解我举例的用意,是说明现实世界的客观现状,导致了私有软件和自由软件会长久共存。至少在一些专业领域里是这样。

这是说,在某些领域,私有软件在事实层面上,做得更好;而不是自由软件就都不好。

结合这个事实证据的结论,既然自由软件也很好,那么「将会共存」的结论才有可能是成立的。仅此而已。

至于「有何种限制让它(自由软件)不能具备私有软件这些特点」这个问题,不应该由用户来思考。但非要说的话,我作为正在自己学习编程的人,可以动手写写/改改程序,但是专业领域的软件,比如还是拿三维软件领域来说即便是开源的,我的知识储备也不足以动手改造,遑论优化。

权衡利弊,显然不是纸面上的文字游戏。而是因人而异、因场合而异的具体分析。

作为妳所说的唯一区别的「自由」本身——如我在最开头嘟文中阐述的观点,不是自由民主的自由——是个中性词。有其优势也伴随缺点。所以有时候,强调区别还不够,还要进一步强调:私有软件和自由软件有其各自擅长的领域。原本不是互相矛盾的,妳能找到私有软件公司把其成果开源的例子,也能找到开源软件更新协议收缩自由的例子。为什么非要决出个优劣呢?

@dimlau

"既然这一段话是在讨论软件本身的优化、进化。" 如果这里指的是某一款软件的优化、进化,那么还是曲解了我的意思,我指的是创造其他新的软件,而非原软件的更改进步。

正如你所说,私有软件的**提供方**能在自己软件的基础上开发类似的软件,而所有人都可以在自由软件基础上开发其他软件,这显示说明相对而言 "难以在私有软件基础上创造更好的软件"。

现实情况中很多自由软件都比不上同类的私有软件,但这差距不完全是 "自由" 的原因,有多少私有软件也比不上同类的私有软件?具体软件间完善程度的区别和其自由或私有没有直接联系。

一昧地分开强调自由软件和私有软件在我看来就像是在分开强调蓝色图标的软件和非蓝色图标的软件一样,这两种软件互相之间是没法比的,要比的是和图标蓝不蓝直接相关的因素。

@pessoa

妳对「自由软件和私有软件,这两种软件形式可以不较高下地共存」不认同的部分到底在哪?

@dimlau

没什么不认同的地方,不过有点觉得这提法奇怪。就像说留长发和短发的人会长期共存一样😂

@pessoa

第一条嘟文介绍了此主张的背景。当一种发型被说成流氓,愿意留这种发型的人主张共存,并不奇怪。

@dimlau

我最开始不是反对 "自由性对非编程用户毫无益处" 的说法嘛。
对自由或私有的批评攻击我觉得都是不需要关注的言论😂

@pessoa

等妳时间充裕,不妨也分析一下妳认同私有软件和自由软件共存就像长头发和短头发共存一样自然,甚至讨论才显得奇怪了,这个观念的依据。

作为相似观念的持有者,我会从中汲取力量,并反思自己观点的不足之处。

毕竟,如果说有什么比倾听各种意见更有助于培养人的理解和判断力,就只有倾听各种见者(包括自己)的依据了。

@dimlau 对于您对「学习和修改的自由」的论证,我并不完全赞同。确然,有别人会更加了解此软件,但这同时也意味着从源码层面上,除作者之外的人是可以判断它在做什么的,安全漏洞会更快得到汇报和修复。而私有软件则只能等待官方修复。另外,闭源软件并不是不可以被修改,不然就没有所谓感染可执行文件的病毒存在了。其次,这种自由并不仅仅体现在可以修改源代码上。 phabricator.kde.org/T11091 提到了「开箱即自由」的概念,旨在使得(对编程没有太多了解的)用户可以更容易地定制软件。

@tusooa 多谢指正。

我在一些流行度很高的软件上同意你的看法。此部分显然我说错了,开放源码为提升安全性增加了可能。

但是在不那么流行的软件上,我不觉得自由软件可以得到更及时的反馈和更新。再考虑到时常伴随着自由/开源软件的无限免责条款……

重申我不希望抵制任何类型的软件,而是说恰恰因为(如上述例子)很多事要分不同条件来分别寻找应对方案,所以让不同类型的解决方案同时存在是重要的。

再次感谢妳的指正,尤其是后面的内容,我还需要再去了解一下。

登录以加入对话
TzCafe

一个畅所欲言的网上咖啡馆,欢迎在这里交流,就像在现实中的咖啡馆里那样。