声明:本文章的任何内容均不能代表(且不打算代表)官方解释

该篇可能行文凌乱缺乏整理

来到 Deepin 工作(目前还在试用期)有大概一个半月了,而这段时间多多少少对一些事情有了很多看法,一些看法也有或多或少的变化,这促使我去写这篇文章。前来 Deepin 工作是因为我认为 Deepin 是国内企业中为数不多的至少象模像样在认真做开源软件的企业之一,故尽管其开出的薪资较我同期在其它企业实习的同学的薪资低一些,且地理位置并没有什么优势的情况下,我依然来到了这个地方,而我现在并不知道如何评价我自己的这个选择。

在开始之前,我还是要强调一些事情,一个是,下面你的确可以看到一些我的立场,它可能与你的印象想法或者 Deepin 官方的描述有冲突,这是正常的,且仅仅只能代表我自己的观点。而写这篇文章并不是为了洗白或者抹黑 Deepin ,也仅仅是为了表明立场而已。另外,这篇文章对一些比较常见的观点做了一些解释,这些解释并不代表官方立场,且我并不保证我的解释和官方的想法是否冲突。

另外一点是,如果你也是 Deepin 的员工或者领导,并且你不认同我的观点或者认为我的观点哪里有偏差,也希望你可以以任何形式——发博客也好,发邮件给我也好——将你的立场亮出来,同时希望你把链接发送给我,我会根据观点做出进一步回复并把你的观点/博客链接贴在下面给其它读者查阅。以及,如果你有兴趣的话,可以去 Wayback Machine 那里 Archive 一下这个网页。

这篇文章会尽可能的选一些有争议的话题来讲,以此一方面表明我的立场,另一方面也希望能够带来的争议可以帮我判断一些事情1。那么下面开始…

答疑 分类

这段本来叫 “说好听的话 分类” ,但是的确有几个问题我不能给出一个好听的答复,故名字还是改回来了。

ps. 并不是欲抑先扬,我的确是这么想的。

“Linux Deepin 是个套壳骗经费产物” ?

这个的答案是“并不是”。深度一直以来的确有在正经的做东西,比如 Deepin Desktop Environment (dde)全家桶(某种角度上讲 dde 并不比 GNOME 差),其代码质量并不低,而使用体验也并不差2

由于企业的确是要挣钱的,不然也没法给员工发工资,所以 Deepin 必然要寻找他们的目标客户并迎合他们,故你会看到 deepin.com 上类似于 “适用于党、政、军等机要部门中” 的让普通用户看着瘆人(下面解释)的字眼。这是经济来源不假,但并不代表 Deepin 是套别的 DE 的壳然后改个主题就拿来骗钱的项目。

由于目标用户是新手,故 DDE 默认的使用体验大致会给人留下它有 “抄 Windows 模式” 和 “抄 Mac 模式” 的印象,这个的确不假,但的确是刻意这样做的,并下了一些功夫在里面——至少不是拿现有的 DE 换皮肤这样的存粹骗经费的行为。

“他们的目标客户是…,会不会内置个后门” ?

如果熟悉了 Deepin 的软件开发流程就会知道,其实整个开发过程是完全可见的,源码位于公司的服务器,使用 gerrit 作为 codereview 平台且外网可访问,代码在 review 完成后被 merge 会自动同步到 GitHub 。而 review 过程则是贡献者(即公司内的开发者,员工)人工 review 和 CI 跑构建和测试。由于源码甚至整个流程都是用户可见的,故这样保证了只要源码没有问题,就不会存在问题了。

尽管并不是说开源项目就一定有人去读代码,但这至少能够保证所有人都能够监督这份代码,以确保其不作恶,或者说确保人们有着能够发现其作恶的能力。当然,顺带提几件事情,一个是前段时间小米浏览器下载黑名单并禁止访问上面的网站的事件3,另一个是国行一加手机会匹配剪切板关键字并上传剪切板的事件。

倘若发现 Deepin 有内置后门之类的行为,这篇文章也就不会存在了。

但是有一点,我是的确没有做过 Linux Deepin 发行版的软件包验证的,比如全部从源码构建软件包并对比哈希码。以及我也并没有逐个了解对于非 Deepin 开发的(或者叫,那些被打过 Patch 的)软件包都做了哪些工作。立场上我必然倾向于隐私和安全为首,故我鼓励任何有时间意愿和精力的人来监督或者叫验证这些。如果你发现任何问题,别忘了联系我以便我更新这部分内容。

“小白才用 Deepin ,大神都用…”

这种论调很可能源于官方对用户友好的宣传和给大众留下 “抄windows” “抄Mac” 印象的缘故,或者源自于之前的盗版 XP 印象——大神都用原版 iso 镜像装。

Linux Deepin 其实(目前)是一个基于 Debian 的,默认使用 DDE 桌面环境的,另外携带一些第三方非自由软件的发行版。其中 DDE 是 Deepin 自己造的轮子,剩下的一些软件是预装好和折腾好的,以达到开箱即用的体验而已。这和大多衍生发行版并没有什么区别,只是预先提供的桌面环境,预装的软件等有别而已。至于选择什么桌面环境,使用什么软件,其实取决于用户,用户大可根据自己的习惯和喜好选择,其实这是一种自由,并不能代表什么小白大神云云。

当然,新手友好和开箱即用的确是吸引很多 Linux 新手使用的原因之一,个人认为 Deepin 在开箱即用和用户友好这方面的确做了很大的努力(下面还会提到),尽管因此它可能还是无法满足一些人的习惯,但无论如何,这些努力多少不是坏事对吧?倘若你喜欢,觉得他符合你的习惯,就去用,这种选择便是你的权利了。而将 DDE 全家桶做的更符合 DDE 的理念(开箱即用,用户友好,简单美观啥的)则是 Deepin 开发团队的目标。

顺便,我用 KDE ,但我的确觉得 DDE 其实蛮好的,尽管很多地方可以完善。

The program included with Deepin/GNU linux are free software.

这句话是 Linux Deepin 15.5 的 /etc/motd 的内容的一部分。目前 Linux Deepin 是基于 Debian 的,而这大概就是直接修改的这个文件,把字符串 Debian 改成了 Deepin/GNU linux 了而已。然而实际上包含在 Linux Deepin 中的很多软件并非自由软件,比如有道词典网易云音乐之类。故这句话肯定是错的了。

由于目前我的确没办法判断这仅仅是因为疏忽而忘记修改了还是其它原因,于是实际上我并没有什么办法根据这个现象来做出什么有用的评价。今天(18/5/17)我把这个问题提给相应的维护人员,这个过程中并没有遇到奇怪的质疑,于是目前我更倾向于相信这个是由于疏忽忘记修改了。15.5.1 15.6 版将至,我个人还是希望新版本不会再有这个问题出现了。

后续(于18/5/18):这个问题现在在问题看板上已经在解决中了(改是改完了就等测试说 ok 了),大概下一个工作日就完成了,当然,实际用户看到估计的确得等到 15.5.1 15.6 4 版本发布。

你们如此惧怕并且痛恨自由(GPL),到底是害怕什么?到底是想要掩饰什么?

这个的官方人员回复就在原帖下方。所以在阅读我的看法之前我建议先阅读一下原提问者的完整质疑内容和“官方”的回答。

然而我对这个质疑和官方回答两者,都不满意。

对于提问者,这位提问者好像没有搞清楚 Deepin 到底在做什么。首先,除了 Deepin 的网站本身是否开源我不清楚之外,所有来自 Deepin 的程序都是以 GPLv3 协议开源在网络并在 GitHub 有同步(虽然这个同步插件有时候会抽风)镜像更新的,也就是说, Deepin 本身也是自由软件的开发者,所以抨击 Deepin 本身在剥夺用户的这个论调其实站不住脚。

另外,开发私有软件是一种权利的行使,故我们没有办法要求第三方提供给 Deepin 使用和再发行的软件一定是自由软件。 Linux Deepin 镜像附带的第三方软件大多是为了方便用户开箱即用而做的预装,而源内附带非自由软件对于一个发行版而言也并无过错(当然这里还有一点,下面提)。故仅仅是因为 Deepin 和第三方私有软件开发商合作而抨击 Deepin 也是没道理的,况且这些合作开发或合作发布的软件多多少少对国内 Linux 桌面平台应用的生态有些贡献。

接下来是对那个官方回答的评价。官方的回答似乎并没有注意到那位质疑者似乎是有些误解而是直接撕了回去。当然,这个官方回答本身并没有什么问题,但是这个回答漏掉了质疑者提到的一点,“除了其他骗经费的所谓国产操作系统,放眼世界,哪个GNU/Linux发行版把私有软件放在主源里面?Ubuntu都不敢这么干。”。

于是这要说起一个叫 Chrome 的软件,在软件的 EULA 中,提及了其不允许被任何第三方分发这一条,而显然你可以在 Deepin 的软件源的 main 仓库中看到 Chrome 这个软件包的身影。这件事我有过一次反馈,最终得到的答复是为了方便用户,不做处理。这件事某种程度上讲其实很减印象分,我认为对开源的“信仰”或多或少应该包含对使用协议的敬畏,而违背这种规则显然是不值得尊敬的行为——当然这只是我的观点罢了。

于是我只能说,如果我是拍板算数的老板,我肯定不会因此而去违背使用协议而分发软件,而这件事我们还是没办法得到什么有用的结论——比如说 Deepin 憎恶 GNU 和软件自由云云——只能说明似乎拍板算数的那些维护者可能压根不觉得这是个问题罢了。

这件事和上面提到的 MOTD 里那段话其实也可以联系起来,两者都能说明是相关人员忽视或者不重视这件事。而我认为这个情况应该改善,于是希望可以尽可能的改变这个局面。提出修改 MOTD 那段话也好,其它反馈也好,希望能够引起一些讨论,而我进行过的这些反馈尽管没能每次都被修整,但多少可以起到一些作用。以及好像 Deepin 内好像的确没见到什么 “GNU Fanboy”…

差点忘了,于是我对那个提问者的第三条的答复是:我的确不清楚为什么非自由软件会在主源,虽然我并不介意使用非自由软件但是我觉得 Deepin 把非自由软件放到主源的确不妥。不过我在验证的过程中发现很多软件包在 non-free 源也有对应的软件包且相对主源的版本更新,故我觉得有一定可能是历史遗留缘故。由 MOTD 和这件事我们可以知道 Deepin 在这方面做的的确不够好,而我觉得我能做的就是在可能的情况下试图改善这个现状了。当然,倘若 Deepin 本身有在蔑视自由软件本身而拒不对这些不妥当的地方进行修正的话,这就是另一回事了。

题外话,在那层“正面回复”的评论区反而有一些相比质疑者更偏激的评论,这不是个好事。

“贵司文档什么时候好好写一遍”

这点我是认同的,文档目前是硬伤之一。

其实无论入职前还是入职后我都觉得 deepin 的文档这块是个非常蛋疼的问题,最简单的例子就是下载页面 甚至看不到推荐配置和架构信息,无从得知发行代号,下载源之类。官方 wiki 写的也不甚清楚(比如对于软件源,只是列出了默认的内容而没有具体解释不同版本之间的区别之类)。开发相关的文档则几乎是没有级别的。

Linux Deepin 发行版本身由于倾向于对新手小白用户甚至完全没有使用过 Linux 桌面发行版的用户,故目前 Deepin 的文档倾向于 F1 带的那个帮助似乎也是可以理解的,但剩下的内容极度缺少或者甚至没有文档的情况也是事实,在一些时候也会因此给一些用户,尤其是比较注重这些的用户留下 Linux Deepin 是一个不怎么专业的发行版的印象。

关于文档方面我目前并没有进行问题反馈,一部分原因是不知道反馈给谁,另一部分原因是觉得即便反馈了,这部分的优先级或许也不会太高。Deepin 现在的问题反馈机制,文档结构,社区协同机制我觉得问题还是蛮大的,可以改进的地方还很多,这个下面会提到。另外是,关于开发文档,最近也要求强制要写了,可惜依然不是开放给社区看的,故实际上对社区还是帮助不大。还有一件事是,传说 Deepin 之前的(代码内)文档还是比较全的,不过由于需求变更和代码版本迭代太快,新代码来不及写文档,旧的则就在废弃后被删掉了…

至于什么时候反馈,我目前没什么好打算,但至少就于我力所能及的部分,会尝试尽可能提供比较好的文档或者至少给提供文档这个工作提供充足的空间。关于文档结构方面,如果读者有什么好的意见也可以试着告诉我或者直接去 bbs 发帖子。

我的想法 分类

其实在我表明想法之前,我应该提一下我的立场,我是因为认为 Deepin 在做有意义的事情才来的 Deepin ,而不是因为 Deepin 是一个多大多大的公司。Deepin 的确有很多做的不够好的,甚至不够规范的地方,但我觉得改善和进步是可能发生的,故依然存在意义。倘若 Deepin 本身并不值得尊重,而是仅仅挂着 GNU 或者自由软件、开源软件的旗号来做幌子来圈钱,或者做一些侵犯用户自由或者隐私的,违背我认为的原则的事情,那我就没有任何理由继续待在这家公司了。

在我发现的 Deepin 存在的(理念)问题中,一部分问题我还没有来得及确认完整问题来自哪里以及是否是我的误解,故在表述我的想法之前,我会持续进行了解、试图反馈和获得更多有用的信息以便我做出判断。另外,我认为一家公司应该有着能够接受质疑的勇气和直面错误的能力,故我不认为在这篇博客做出任何客观但负面的评价是什么问题,但在有任何负面评价之前,我还是希望能够先搞清楚问题以避免误会。

我尚在试用期,在下次负责人反馈谈话的时候我会将我的疑问想法清单提出并期望得到回答,在那时之后我会更新这篇博客以提供更有用的信息。

-Update(2018年6月4日)-

在上周四早上,和负责人进行了谈话,其间对我的大多数问题进行了提问,下面则以小结的形式列出相关的内容。

深度的软件开发流程有点像是让人看代码的商业软件

这个比较惊讶但是让我赶到高兴的是这个问题是在我发问之前他主动提到的。实际上由于文档的匮乏,对于社区开发者和用户的不友好(指的是文档和资料方面的),基本是没有社区外的开发者能正经的参与社区协作的,以及甚至还是有大把的用户觉得 dde 全家桶其实就是别的桌面环境换个皮。另一个值得我高兴的是,在我主动问及之前它也表示它已经在试图改善这方面的问题了,但是由于他也只是一个普通员工,对于不能左右老板决定的地方他也没什么办法。

非自由软件分non-free源,以及提供仅包含自由软件的“精简”版本?

没敢直接问“自由软件的看法”这样的问题,于是用了这样的形式提问。个人上其实我并不介意使用专有软件但我依然觉得应当尊重具有这样习惯或者愿景的人,故当有人在社区以专有软件来说事的时候我一点都不觉得奇怪甚至觉得并没有哪里不合理。这两个问题得到的答案虽然合理但却有点意外。

分源这点其实是已经在做的改善,但做到哪个程度了不得而知。据说之前是并不这样划分的,这多少说明这件事有在做但可能没有非常高的优先级。而对于仅仅包含自由软件的“精简”版,他提到了维护成本。虽然据我猜测只需要在打包iso的时候选取自由软件打包即可,但可能的确我还有一些没有考虑到的地方。他告诉我可能的确会有精简版但可能并不会是一个完全没有非自由软件的版本。

另外,他表示 deepin 可能会有面向个人的付费发行版(支持性质的,会有特别的功能,但源码依然开放,以及不影响社区版的免费),我认为能够在开放与盈利中获得一个平衡点是一个很好的事情,但由于这只是一个尚未成型的想法或者计划,事情会怎么发展我也不清楚。

文档?

其实我预先准备的几个问题很多都和文档相关,我问了为什么现在正在使用的错误跟踪系统和文档系统为什么都是外界(社区)不可见的,以及 GitHub 甚至采用了 专门的 repo 作建议意见收集而不是分散到各个 repo 的 issue 面板。得到的答案是两个,一个是因为 deepin 并非所有人都来自开源社区或者熟悉开源社区的运作方式,另一个则是统一的入口方便了更多人做事更方便。专门的 repo 处理意见是因为当用户不知道问题出在哪个 repo 时也可以正确的派发问题。

关于文档完善方面,现行的文档平台是强制的,但那个文档平台一方面并不对外,另一方面内容迁移很困难(输出只有 pdf 和 word )。这方面的改善方式我还没有个比较好的主意,不过就文档改善方面,我打算试着从我负责的部分逐渐变得开放并在达到效果后试图带动其它项目一起做文档和社区支持的内容。

为何采取 beta 测试的形式而不是开放出来?

他告诉我早期时源分档的确是有的,后来由于很多用户盲目的修改源到激进档并汇报奇怪的bug,一方面汇报的质量极低(没有复现方式,没log,描述不清楚问题),另一方面那些用户由于不明白自己到底在做什么而因此觉得 deepin 做的很糟糕而放弃使用 deepin 了…

其实我觉得这个有点好笑,但是社区用户的平均水平的确很感人,到现在也能在 bbs 看到啥也不会就随随便便把源替换成 ubuntu 源的人(注:linux deepin 基于 debian ) ,以及自己作死把软件/系统搞坏了不搞清楚原因就喷 linux deepin 的人… 由此我又想起了小米 miui 10 的 F 码内测这件事。或许对于用户平均水平较低的情况,做了使用限制反而是较为好(或者叫保守)一些的方案?

当然我觉得不应该因此就断掉真正有能力的人获取信息和资源的途径,不过目前还没有什么比较好的主意。

“爱管闲事的”,能做不能做,敢做不敢做

KDE 的社区 guidelines 有一条是 Be pragmatic. 虽然我不知道这条到底是说“务实”还是“爱管闲事”,但我觉得对于完善生态,“爱管闲事”的确是必要的,或者说,如果来到 Deepin 只能做的是按照分配的任务做事,那就没有任何在这里工作的意义了。故弄清楚从公司的层面是否允许以及给员工多大的空间或者自由度去做事是很有必要的。

对于上面提到的文档部分,我提过我能做的事情的想法之后,得到了一部分赞同并加了 deepin 的 GitHub 组织(我是想要开 gh-pages 的权限,用来放文档)。另一方面提议我也提出了一些我的想法(尽管不成熟)但我看他记了笔记并且向我逐一确认了。所以我暂且觉得 Deepin 还是可以留下来做事的。

packages.deepin.xxxxx

这个我提问的时候脑抽了,本来是想问是不是所有源码都有提供的,以及从源码“reproduce packages”,结果只单纯问了我提问稿写的字面意思。不过好事是这件事他告诉我之前也是做了但是因为服务器原因拿下来了,后续也本来就打算做了不过优先级并不高。

从源码重现软件包这个,由于没来得及问,我感觉还是我自己先研究研究再说吧。毕竟说不定本来就有提供但是我没找到在哪儿——但是为什么会出现提供了但是找不到在哪的情况呢?还不是缺文档的原因么..

最后

于是其实从我一大堆的疑惑变成了对改善抱有希望了。既然如此我希望能够让事情朝着好的方向发展,做点我能做的事情。当然我还是希望有人能提出更好的问题/质疑/建议/意见来,会很有帮助。

有兴趣的话读者可以 Web Archive 一下该页面,也希望你可以提出一些其它的问题告诉我,无论是正面负面还是单纯好奇或是你认为的尖酸刻薄的问题都可以。联系方式请见导航栏 About 标签内

上述的内容如果你不同意我的说法,也欢迎告诉我

  1. 其实最坏的情况是老板或者类似的人看到之后觉得啊你看这个员工的价值观不符,开掉开掉。显然我还在试用期就决定发这篇评价是考虑过这个风险的。但我觉得,我前来这里本是因为觉得这个地方的工作值得我来做,但却发现其中存在种种问题,那么我们应该做的事情首先是试图解决问题,修复或者说完善它。这篇文章事实上是这样的尝试。 

  2. 体验是一种因人而异的事情,但对于常用的应用, dde 的确至少不能算上体验差,至少单纯的就我个人而言,我觉得 dde 全家桶比 GNOME 3 全家桶用着会舒服很多。 

  3. 突然发现那个API得到的列表现在已经是空的了。 

  4. 于 18/5/30 :15.5.1 这个版本号会被跳过…