社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub 的 App 会开源吗?

SegmentFault • 5 年前 • 408 次点击  


早在 2019 年的 GitHub Universe 大会上,GitHub 官方就宣布,他们即将推出移动端 App。而近日,GitHub APP 终于问世了。


作为世界上最受欢迎的同性交友网站,在发布之后自然是喜大普奔,但在此之外,也有很多开发者提出功能不太全面,希望可以添加比如代码编辑之类的其他功能。


对此,有热心的开发者留言建议,建议将 GitHub 的移动应用程序开源,大家一起来进行优化。


对于此事,GitHub 的总监给出了回复。





GitHub 的移动应用程序会开源么?



对于这个问题,GitHub 的工程总监 Ryan Nystrom 给出了两个回复:


"It's not right now。"

"Maybe."


开源是现在的一个大趋势,虽然有很多软件确实是不需要开源的,但作为全球最大的开源软件平台,自己的产品不应该开源么?


当今很多开源项目的开发都是在 GitHub 上或者通过 GitHub 进行的。对于这一开发者用来“吃饭”的工具,改善 GitHub App 的使用体验能有效的改善开发者的工作效率和方式,所以如果该项目真的开源,一定会吸引很多开发者参与其中。


但 Ryan Nystrom 之所以不急于开源或者不“期待”开源的原因,是他认为要想让开源项目蓬勃发展,既要有对其感兴趣的开发者群体,也需要该群体具备足够的能力来为项目作出贡献。


我们可以看一下 Linux。Linux 的开源之所以做的好,是因为每个开发者都需要这样的一个操作系统,并且有相当一部分人有能力对其作出贡献。


但根据业内分析师给出的分析,假如 GitHub 推出一个收费程序,那么开发者的兴趣就会大幅降低;如果 GitHub App 的开源项目只是通过加载项/扩展的方式进行开发,那么 GitHub 项目的开源就没有太大的意义。


所以 GitHub 总监说的“Maybe”,可能真的就是个“Maybe”了,毕竟没有人比他们更了解开源能带来多少价值。





开源的定义



开源的概念,在电脑诞生前就已经出现了。最早的开源可能是发生在「吃」的领域,为了生存下去、提升食物的品质,人类学会了分享食谱。而目前对于开源比较认可的定义,由 Debian 的创始人 Bruce Perens 提出:


- 自由再散布(Free Distribution):

允许获得源代码的人可自由再将此源代码散布。


- 源代码(Source Code):

程序的可执行档在散布时,必须以随附完整源代码或是可让人方便的时候获取源代码。


- 派生著作(Derived Works):

让人可依此源代码修改后,在依照同一许可协议的情形下再散布。


- 原创作者程序源代码的完整性(Integrity of The Author’s Source Code):

意即修改后的版本,需以不同的版本号码以与原始的代码做分别,保障原始的代码完整性。


- 不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):

开放源代码软件不得因性别、团体、国家、族群等设置限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。


- 对程序在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):

意即不得限制商业使用。


- 散布许可协议(Distribution of License):

若软件再散布,必须以同一条款散布之。


- 许可协议不得专属于特定产品(License Must Not Be Specific to a Product):

若多个程序组合成一套软件,则当某一开放源代码的程序单独散布时,也必须要符合开放源代码的条件。


- 许可协议不得限制其他软件(License Must Not Restrict Other Software):

当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光盘),不得限制其他软件的许可条件也要遵照开放源代码的许可。


- 许可协议必须技术中立(License Must Be Technology-Neutral):

意即许可协议不得限制为电子格式才有效,若是纸本的许可协议也应视为有效。




在软件产业中,免费软件、开源软件与自由软件的概念常常被不同程度地混淆起来,一般人并没有理顺其中的逻辑关系,造成了一定的误解,也引发了不少的错误决策。

但其实简单来说,免费软件不一定必然开源,开源软件不一定必然免费。这点大家都很好理解。

严格地来说,开放源代码软件与自由软件是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代码软件(开源软件)。自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都是“自由”的。

虽说自由的态度就是要激励打破牢笼穿越围墙迎接思想的开放,努力分享展示自己的技术、原理,而不为了蝇头小利而对自己所谓的“技术”沾沾自喜而固步自封,但自由软件是否一定免费呢?

也不能一概而论。

每一位自由软件的贡献者当然是此软件的开发者和免费使用者,但对于普通用户而言,就不那么确定了。普通用户一般需要的不是软件而是服务,软件也许是免费,但是服务就从来都不是免费的了。




开源的价值

对于很多人来说,提到开源想到的就是「免费」和「非专业软件」。但实际上,随着开源的发展,现在的「开源」已经成为技术发展最好的生长模式之一。

可以这么说,如果没有开源,很多的科技企业都不能达到今天的行业高度,比如谷歌、Facebook 和我们前面提到的 Linux。

为了让更多人能够使用优秀的产品、让技术或者项目能够群策群力、快速的发展升级,都离不开开源带来的价值。

美国的科技企业之所以热衷于开源,和文化有很大的关系。如果一家企业没有开源项目,会被质疑这家公司只会一味的索取,而不为行业和生态做出应有的贡献。

所以从企业层面来说,开源一方面可以树立品牌形象,另外还可以通过开源项目吸引人才,招揽员工。往大了说开源对于企业甚至具有一定的战略意义。

比如 Android,最初就是通过开源和病毒式的传播一下就赶上了 iOS。

从个人层面来说,尝试开源也有着两个比较突出的意义。

第一是有助于提升自己的代码水平。既然是开源项目,那么在写代码的时候一定会尽量的展现自身最好的水平,这会逼着自己让代码更简洁、易懂。其次,你的代码开源后,别人也能针对性的给你提出一些建议,帮助你进行代码的优化。

其次可以通过开源项目展示个人的能力。虽然现在 GitHub 已经快被「别有用心的人」给玩坏了,但对于企业招聘来说仍然具有一定的参考价值。如果个人有个不错的开源项目,那么在面试的时候一定是个不错的加分项。

你有自己的开源项目么?SegmentFault 思否社区会定期推广社区用户提供的开源项目,欢迎自荐或者推荐,有推广需求可以点击阅读原文和作者进行私信沟通~



参考资料:

《GitHub's mobile app to go open source? Definitely "maybe"》:
https://www.techrepublic.com/article/githubs-mobile-app-to-go-open-source-definitely-maybe/
《免费、开源与自由》:
https://www.jianshu.com/p/eab781d2f8b9



- END -

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56860
 
408 次点击