Why are so many great packages not trying to get included in GNU Emacs

From https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg00856.html

The better option is to stop requiring copyright paperwork. It is harmful to the Emacs project.

    Stefan

討論: https://www.reddit.com/r/emacs/comments/gf8rmc/the_better_option_is_to_stop_requiring_copyright/

1 个赞

Emacs核心的程序员接受软件包的态度比较谨慎。

最早我是把counsel-etags提交给GNU ELPA(我很久以前已完成GNU的版权协议签署)的,那时插件的名字还叫mtags。但是emacs mailing list上很多讨论认为mtags和xref重复。事实上我就是对xref不满意,所以开发了这个插件。这个讨论耗时太久,后期和我的最初想法有差距。所以就不再给GNU ELPA提交包了。

Why are so many great packages not trying to get included in GNU Emacs

作为用户,从私心来说当然希望自己用到的插件直接集成进工具里面,这样可以简化自己部署工具的流程。不过对于开发者来说,过多“招安”第三方插件却未必是件好事。

  1. 大量吸取第三方插件后,会造成开发仓库膨胀,更新代码库和编译的时间都会增加。
  2. Emacs有规定好的代码风格,提交格式等,比较严格。普通写插件分享的人很难全盘接受这些“繁文褥节”,如果他们觉得这些小细节麻烦,很大可能会直接放弃后续向Emacs内的插件更新代码。那么他们之前提交的代码就成了没有生机的死代码。这对Emacs本身来说是一种负担。
  3. 从Elisp语言本身发展的角度,如果官方把所有东西都写完了,不利于社区的持续发展。
  4. 如果大量第三方插件进入Emacs core,为了开发便捷,势必要向这些人提供推送权限。存在被人推送恶意代码的风险,而且有推送权限的人越多越危险。

The better option is to stop requiring copyright paperwork. It is harmful to the Emacs project.

Eli已经反驳了

Stefan is wrong. The annoyance of signing the paperwork is minor and the process is usually simple. When asked, contributors are ready to sign the papers, I cannot remember when I last heard someone say no (if I ever did).

We have more than 2500 people who signed the copyright assignment for Emacs (and many more for other core GNU projects).

签这个assignment并没有想象中困难。我是直接在线签署,只需要打印一份assignment,签名之后扫描回去就行了(几块钱),而且只用签一次。他处理你的assignment耗时1个月左右,期间不用你参与。

的确存在有人单纯只是不喜欢GPL,不喜欢FSF,硬不想签的。那其实也没有问题,起码FSF没有说不签assignment或者不注册就不给你用Emacs :)(这点比某Qt好,下载Qt安装器还得注册帐号)

我觉得,Reddit下面一边倒批判assignment的人,可能是太过理想化了。这个东西真的毫无用处吗?大家应该知道前一阵子Nginx之父被逮捕的事情

假如某一天你成了某公司的大牛,假如 公司觉得你上班写的合并进Emacs core的代码也属于公司(事实上和公司屁关系没有)。有assignment的情况FSF是可以给你提供法律援助的。抛开FSF对代码“纯度”的“变态”要求以外,对程序员本身也是一种保护作用。

https://www.gnu.org/licenses/why-assign.html

3 个赞

收录新包必然会有个筛选的过程;有进自然也要有出,剔除一个包也要有个说法。 这看上去比技术上做维护还折腾人的样子。。。

为 Emacs 提交代码默认同意那份,或那几份声明,不就行了

如果只是加入ELPA的话,不用遵守Emacs的commit规范,能进MELPA的水平就可以,所以还好。