问题

为什么要开源?

回答
好,咱们就来聊聊这个“开源”的事儿,不整那些虚头巴脑的,就说点实在的。为什么有那么多好东西,大家愿意把它做得跟个大集市一样,敞开了让你看,让你拿,甚至让你改?这背后到底有什么道道儿?

首先,最最直接的,就是“免费午餐”这块招牌。

你听过 Linux 吗?操作系统界的“常青树”。还有 Apache Web 服务器,全世界无数网站都在用。Python、PHP 这些编程语言,更是成了开发者的“标配”。这些玩意儿,你随便用,不收你一分钱,也不对你说“你只能这么用”。这对于个人开发者、小公司,甚至是那些不想被某个巨头“绑架”的大企业来说,简直是雪中送炭。省下的钱,可以去干更有价值的事儿,比如招人、打磨产品、开拓市场,而不是把大把银子交给别人买个使用权。

但开源远不止于此,它更像是一种“集众人智慧,办大事”的哲学。

你想想,一个人的脑子再好使,也抵不过成千上万个脑袋一起琢磨一个问题。开源项目,就像是一个巨大的、全球性的社区。有的人可能技术顶尖,能写出高效的代码;有的人可能更擅长发现bug,把程序弄得更稳当;还有的人,可能对用户体验特别敏感,能提出改进界面的建议。

这些来自世界各地的开发者,出于兴趣、出于学习、出于解决自己实际问题的需求,甚至是出于一种“分享和贡献”的朴素愿望,都会加入进来。他们一起写代码,一起测试,一起讨论。这就好比建一座大桥,一个人怎么可能在短时间内完成?但如果几百几千人齐心协力,分工合作,这座桥可能很快就能横跨江河。

这种开放带来的“透明度”和“安全性”,也是一大看点。

你想啊,你用的软件,如果是别人给你锁起来,你根本不知道里面到底藏了什么猫腻。是不是有后门?是不是在偷偷收集你的数据?你心里没底吧。

而开源软件不一样,它的“内脏”是完全暴露在你眼前的。任何一个懂行的人,都可以去翻看它的源代码,看看它是怎么工作的,有没有什么不妥之处。这就像是把一个产品拿到显微镜下,一点一点地去观察。如果有人发现问题,无论是安全漏洞还是设计缺陷,都可以提出来,甚至自己动手去修复。这种公开的监督,让软件本身变得更可靠、更让人放心。

当然,开源也给了用户“选择权”和“控制权”。

想象一下,你依赖一个商业软件,结果开发公司突然决定停产了,或者大幅涨价了,你怎么办?是不是只能干瞪眼?

开源项目就不一样了。即使原始的开发者不维护了,总会有其他人觉得这个项目还有价值,会接着把它发展下去。你也不用担心被一家公司“掐住脖子”,因为你知道,如果真的不行,你可以自己去修改它,或者找别人来接手。这给了用户一种“掌握自己命运”的感觉。

再往深了说,开源是推动技术进步的“催化剂”。

当你看到别人做的好东西,你不仅可以学习,还可以在此基础上进行创新。就像搭建在巨人肩膀上一样,你可以站在前所未有的高度上,去探索新的可能性。很多新的技术和理念,都是通过开源项目快速传播和迭代的。没有开源,很多领域的进步速度都会慢很多。

当然,开源也不是没有“挑战”。

维护一个庞大的开源项目需要大量的时间和精力,而很多贡献者都是义务劳动。如何激励这些贡献者,如何让项目可持续发展,这都是需要思考的问题。而且,开源并不等于“零成本”,你可能需要自己去安装、配置、维护,这些都需要一定的技术能力。

但总体来说,开源带来的好处是显而易见的。

它降低了技术的门槛,促进了协作和创新,提高了软件的质量和安全性,并赋予了用户更大的自由度。这是一种共享经济在软件领域的生动体现,是一种“大家一起把蛋糕做大”的生态模式。所以,你会看到越来越多优秀的开源项目涌现,它们正在改变着我们工作、学习和生活的方式。这是一种力量,一种让技术更普惠、更自由的力量。

网友意见

user avatar

在不太久远的过去——大概也就是十多年前,互联网精神代表着自由、平等、共享——人人为我,我为人人。维基百科、CC协议、FTP服务器、P2P(不是那个臭名昭著的理财模式),包括开源软件,都是那个时代的产物。

但在今天的移动互联网大潮中,主流思维已变成了商业化、消费主义、版权、信息壁垒。无怪乎新时代的互联网子民,已经不理解为什么有人会无私地奉献。“一定从中得到了什么利益”,他们揣测道。

user avatar

开源社区的贡献者,都是有国际主义精神的一群人,一定程度上是世界公民。

他们的知识和技能可以让他们保持局部领先,但是为了拓展人类的知识边界,为了人类整体的福利,他们将工具或者知识开源出来,别人就可以在他们的基础上工作,人类进步的速度就加快了。

他们放弃了自己的局部领先优势,选择人类整体的福利,不可谓不伟大。

知乎上的很多答主也是这样的表率,他们分享的知识与见解直接或者见解的改变很多人,甚至改变人的一生。与他们贡献相比,收获的一点名利就显得太微不足道。

他们的例子有很多,我心中立马可能想起好几位,但为了避免造成棒杀或者抱团的嫌疑,就不列举他们的ID了。

总之,向所有的共源知识贡献者致敬,向国际主义者致敬。

user avatar

题主问的非常好,尤其是从功利的角度来看为什么要开源。我把这个问题分成三个回答你:

从无私的角度看,为什么要开源?

从自私的角度看,个人为什么要开源?

从自私的角度看,公司为什么要开源?

从无私的角度看,为什么要开源?

1. 建立社区:可以这么说,如果没有开源社区,苹果,谷歌,Facebook都不会是现在这样。如果没有Linux,现在互联网的格局简直无法想象。为了让更多人能够使用优秀的产品,需要有人来愿意把自己的产品免费给他人使用。很多开源社区的贡献者都是为了建立,维持这样一个互助互利的社区而不断努力的。

2. 帮助他人:开源一个很美妙的地方就是,别人不用花时间解决一样的问题。当你看到你的一个大问题已经有人做了开源项目的时候,你一定感觉如释重负。同样,有人感谢你的开源项目帮他们解决了一个大问题,真的是种很美妙的成就感。

3. 结识朋友:开源社区中经常能遇到很多志同道合的好朋友。你帮我改代码,我帮你加功能,说不定两个人就认识成了好朋友。我和我现在的一位导师和几位朋友就是在贡献开源项目的时候认识的。


好,下面来说说不明显的:

从自私的角度看,个人为什么要开源?

1. 提升代码质量:开源是提升个人代码质量的好方法。这个有两个方面:首先,如果你知道你的代码要给别人看,你会不自觉的把代码写的更干净一点,多加点说明。其次,开源之后别人会建议怎么改(如果你的项目有一定影响力),给你建议的人多了,你也大概就有概念怎么把代码写的更好了。

2. 展示个人代码:如果你在找工作,这个很可能会是你的主要动机。公司实际上很好奇你写的代码质量如何,但是光从1个小时的面试实在看不出太多。所以很多公司会非常喜欢看你的开源项目,来评估一下你的代码质量如何。同样,如果你面试的时候告诉公司,“我有个开源项目,你们可以去看看”,这将是个不错的加分项。

3. 建立个人品牌:如果你足够厉害,把一个优质项目开源是个迅速提升影响力的好方法。很多在大公司工作过的顶级工程师,我们都是通过他们的开源项目认识的。git的发明人,Linus Torvalds,就是一个好例子。一个工程师如果在工作之外想要树立个人品牌的话,写一个高质量的开源项目是个相当好的选择。

4. 备份个人项目:其实很多人把项目放到Github的时候根本没想这么多。。。他们只是想把家庭作业,代码练习啥的备份到网上去而已。。。其实Github当中绝大部分项目都是这种实际没啥用的代码备份(只是Github没让你看到)。。



从自私的角度看,公司为什么要开源?

1. 树立品牌形象:公司与个人开源的动机不同。公司开源很多情况下是为了提升外界对公司的形象认知。任何一个大科技公司,肯定用了多多少少用了开源项目(Linux,至少吧?)。如果连一个开源项目都没有,这很容易给人造成,“这公司总是索取,却不回馈给开源社区”的形象(尤其在美国)。

2. 发掘潜在员工:比如,我读了谷歌的Android的代码,发现里面有个大安全漏洞,然后我提交一个修改把漏洞给补了。你说谷歌想不想拉起我去工作?很多公司一个很好的招聘渠道是开源项目的贡献者。如果能在公司开源项目做出有意义贡献的话,这个对于公司来说是比面试好很多的能力证明。

3. 实现额外功能:这点实际上很有意思,有的公司/项目实际上有很多想做的小功能,但是没时间也没人力去单独做。这个时候开源的力量就体现出来了,项目开源之后很多时候能吸引到开源贡献者来做一些自己感兴趣,项目想要,但项目没时间做的feature。我之前在Socket.io做的时候写的就是这样的一个小feature。

4. 扩大影响范围:公司开源项目的质量,很多时候能反映公司的影响力。所以硅谷的很多大公司,都有一些厉害的开源项目。一方面是回馈社区,一方面是展示公司的影响力和代码质量,吸引更多人才。同样,如果一个公司很希望自己的一个产品有更大影响力的话,开源是个好方法。苹果的Swift就是个好例子。Swift开源之后,能够用在不少iOS之外的领域。说不定之后我们还能看到用Swift写的网站架构。

5. 用作战略武器:开源项目还可以作为公司的战略武器。最好的例子就是谷歌的Android。通过开源和病毒式的传播一下追上iOS。这里面有很多弊端(比如碎片化严重),不过谷歌这么一招给了开发者十分大的力量,Android一下成为一个和iOS比肩的选项。


如果你好奇全职的开源工程师如何赚钱的话,这是我之前的答案:

世界顶级开源软件工程师,他们如何谋利? - 编程

最后,也希望题主能继续为开源社区出一分力 :)

user avatar

2021年08月24日,再更新一波。

今天闲着没事逛了下论坛,突然发现Github推出了一款AI编程软件Copilot,我很好奇于是搜了下,发现实现原理应该是通过用户输入一段要实现的功能,然后通过算法去寻找具备相同功能的代码,然后复制粘贴。

哈哈,这功能太有意思了,这意味着开源项目越多,开源功能数量越完善,那么使用这款软件就越便捷,而大部分软件开发,抛开UI定制,其功能大多相同,无非展示与编辑。

以前,要做一款非常简单的App也需要程序员。

现在,如果你要做一款简单应用或游戏就可以使用unity+插件的方式进行游戏开发,如果功能超级简单,你甚至不需要编写代码,只要你熟悉unity软件的操作即可。

未来,我不知道,或许是大部分功能都可以通过AI人类语言分析匹配到对应模块,然后将其组装起来就行,然后少部分需要定制的模块自行开发。

嗯,就如同乐高积木一般,企业的维护成本大大降低,程序员的工作量大大减少,这是不是支持开源的人想要的未来?

也许这就是未来大部分的软件开发模式:

       // 基于upd实现IM系统 ...AI代码生成  // udp传输加密 ...AI代码生成  // 本地存储临时文件 ...AI代码生成  // 本地存储配置文件 ...AI代码生成  // 用户登录UI ...AI代码生成  // 好友列表UI ...AI代码生成  // 聊天界面UI ...AI代码生成  以上主要功能由产品经理老王实现,最后一些需要定制的模块需程序员小张开发。     

对于说被淘汰是因为自己学习效率低下导致被行业抛弃的,我想说的是,我同意你的看法,行业的更新换代这是必然的规律。其他行业也有,但周期按十年算,这段时间大家都有足够的时间去应对,但IT这个行业,这么说吧如果脱节两年,除非你已经在某个行业里建立了自己的壁垒,要不你很难找到工作,而这最直接的原因就是开源社区的逐渐成熟,让更多更好的人才有了展现自己的平台,相对应的就是跟不上节奏或不愿意主动降低待遇的从业者失去了他的工作。

我们来看看这个行业经历了什么,大伙最早是卖技术,然后是卖项目,之后到了送技术,再然后就是整个项目Github免费下,到了现在居然还催生出来了淘宝Github点Star的业务,是什么让大家变得这么贱,赔本赚吆喝?

工业革命不可怕,羊吃人不可怕,失业大浪潮不可怕,可怕的是明明结果就摆在眼前,为什么还有这么多人义无反顾的成为祭品。

至于直接攻击我本人的,我报一下我的工作经验。

5年Android/IOs开发经验,带过16人的团队,带过上线的项目有4个(不算普通打代码、技术支持、架构设计等,仅仅算我带队开发时的项目),其中还在运营的项目有2个。

在ReactNative出来之前你们还在使用PhoneGap做开发的时候,我就参与过Lua脚本的跨平台开发框架的架构搭建这里包括脚本引擎的移植以及性能调优还有组件化模块集成,目前这套架构在某行业外包工程中一直在使用。

对于基于ffmpeg的客户端流媒体优化这块我自己有一套成熟的解决方案,其实ffmpeg内部的东西也被我改得七七八八了,某流媒体公司倒闭前还在用。

前公司自己的推送系是我搭建的,从Server端到Android/IOs的SDK,离职前上线,百万级别消息推送没什么问题,在没有联系手机开发商拿权限的情况下,客户端单App离线到达率58%左右,在线到达率98%,耗电量也与目前主流的第三方相差无几。

我不知道说我技术平庸的人是谁给你的勇气去贬低一个你不曾了解的人?并且目前我已经赚够了自己的原始积累,开始享受平凡的28岁退休生活(积累虽然不多,但按照我的道系生活方式,花到死还是没什么大问题的),对于开源会导致的后果已经与我无关了(但愿无人零售发展别这么快,不然我还得更新设备)。

再说一次支持不同角度的讨论,但不会跟任何一个上升到人身攻击的人浪费喉舌。


以下是原答案:

因为资本恨透了旧规则,设计一个螺丝都需要看看有没有人申请过专利,每次做一件别人做过的事情也需要付出别人付出过的成本,所以他们提出了开源,但你会发现,提出开源的公司,他们的核心代码你不会再任何开源社区上找到。

以前我也是一个天真的小男孩,幻想着开源有多么好,我能得到社区无偿的帮助,我能通过社区秀一秀我的代码。我能成为一个优秀的程序员,从此愉快的与心爱的代码一直走下去。自从有了开源社区,我需要的功能开源社区上都有,我只需要经过少许的修改之后将他们组装在一起即可,我省了很多时间去写一些社区里已经存在的功能,这简直是上帝赐予程序员的福音啊!

渐渐地我发现了问题,随着时间的推移开源工具越来越完善,我的工期越来越短,我写“有趣”代码的时间越来越少,因为隔壁的小张他也用开源工具,如果我不打算使用那些开源工具,那么我的工期将会是他的两倍,季度考核我会成为垫底的人,所以我不得不放弃自己的爱好而去使用开源社区“成熟”的工具,这时我对代码越来越烦躁,我写代码的愉快感越来越低,我感觉自己就是一个搬运代码的工具。

时间慢慢的过去,突然有一天,开源社区的F公司发布了一款名为R的跨平台的开发框架,社区沸腾了,大家跃跃欲试,我也不例外。当我再把公司的一个比较简单的项目移植到R框架内后我震惊了,R框架减少了一半的开发人员,减少了很多的兼容性问题,大大的增加了开发的效率。当我把这一框架测试的结果在技术骨干会上发表后,技术总监也震惊了,之后我们围绕着这个框架展开了一场又一场的技术讨论。

若干月后,R框架发布了第一次release版本,于此同时我们公司也决定让我带领团队将公司主营项目移植到R框架上,经过两个月的艰苦鏖战后,移植App正式发布了,我们看到了程序安然无恙的在线上运行都轻松的吐了一口气,终于解放了,再见了版本适配,再见了UI适配,我突然觉得今后的工作会变得无比的轻松。

到了年中,部门突然宣布将要做一次部门内部人员优化,原因是公司目前无力扩张业务,且R框架降低了开发难度,无需那么多技术员工对项目进行维护了。经过一月的调整,移动部门从之前的20人团队缩减到8人,除了我和老李负责做一些底层设计交互,其余的同事都使用R框架进行业务开发。

经过这一连串的事件后,我发现,我的工作时间没有减少,但公司省下了一笔钱,12位同事因为R框架丢了工作。无产阶级失去了他的面包,资本家拥有了更多的资本去投资,而我所涨的薪水并不是这是12名同事的总和。剩下的人除了我和老李,其他的同事连在正式项目中接触native的代码都成了奢望。

这两年G公司推出了他的F框架,性能更好,代码更简洁,天然支持热更,今年H公司也推出了他的H框架,这套框架更牛(虽然只是PPT)。MVC也渐渐地被MVVM、MVP取代,为了降低开发成本,App内大量地方使用到了H5,这部分人多数是刚刚毕业的,并且有一部分人从入职开始就已注定熬不过试用期。

行业内渐渐地从技术主导慢慢的转向成为业务主导,现在大家更关心的是用户数量、用户黏度,代码再烂不重要,一期上线拉融资,二期招大牛重构,三期大扩展,四期大裁员,铁打的营盘流水的兵。


开源带动了生产力,而这并没有为从业者带来应有的物质提升,相反生产力的提升却加速了从业者的淘汰速度,我估计大多数支持开源的从业者也是如下图一般想的吧。。。


user avatar

开源是一种商业模式。

类似的话题

  • 回答
    好,咱们就来聊聊这个“开源”的事儿,不整那些虚头巴脑的,就说点实在的。为什么有那么多好东西,大家愿意把它做得跟个大集市一样,敞开了让你看,让你拿,甚至让你改?这背后到底有什么道道儿?首先,最最直接的,就是“免费午餐”这块招牌。你听过 Linux 吗?操作系统界的“常青树”。还有 Apache Web.............
  • 回答
    这个问题触及了技术、商业和地缘政治的交织点,要详细讲清楚,我们需要一层层剥开:首先,我们必须明确安卓的“开源”和GMS的“非开源”安卓(Android)本身的确是一个开源项目,基于Linux内核,由Google主导开发。这意味着任何人都可以下载安卓的源代码,进行修改、定制,并将其集成到自己的设备中。.............
  • 回答
    谷歌之所以大力支持 Chromium,尤其是将其作为 Chrome 浏览器底层的开源项目,这背后有着非常丰富且多层次的战略考量。这不仅仅是一个单纯的“开源好”情怀,而是关乎技术主导权、生态构建、用户体验、以及长远的商业利益。首先,“开源”是赢得开发者和合作伙伴的基石。 想象一下,如果 Chrome .............
  • 回答
    开豪车,这事儿说起来,可不是一两句话能说透的。它里面门道太多了,跟人的心头好、社会地位、生活方式,甚至是一种自我表达,都搅和在一起了。想知道为啥有人会掏出大把银子买这么个大家伙,咱就得一点点掰开了聊。首先,最直接也最显而易见的,那得是面子和身份的象征。这就像你穿一身名牌西装,别人一看就知道你不是一般.............
  • 回答
    大家可能都听过“氢能源”这个词,也听说过氢燃料电池汽车。但有个问题可能就没那么多人想过:既然氢能源这么厉害,我们直接用它来发电,解决咱们国家能源问题不是更直接、更高效吗?为什么还要费这么大劲,去搞什么氢燃料电池汽车,听起来像是绕了远路?这背后其实涉及到一些挺有意思的技术考量和发展思路。咱们慢慢来捋一.............
  • 回答
    华为开发鸿蒙系统的动因,绝非一朝一夕的灵光乍现,而是多年来在通信领域深耕细作,对技术发展趋势的深刻洞察,以及面对地缘政治挑战时,为了保障自身核心业务安全和未来发展主动布局的必然结果。简单来说,它是一个战略性、生存性、前瞻性的多重目标驱动下的产物。一、 应对外部环境压力,保障核心业务安全:这是鸿蒙系统.............
  • 回答
    关于巫女服腰部为何有开口,这其实是一个很有趣的文化细节,背后藏着一些实用的考量和历史演变。我们不妨从几个方面来聊聊这个话题。首先,最直接也是最常被提及的原因,是为了方便巫女在进行仪式时能够自如地活动。大家可能看过一些描绘巫女的影视作品或者插画,她们在祭祀、祈福或者驱邪的时候,常常会有一些比较大幅度的.............
  • 回答
    .......
  • 回答
    机械专业,这个曾经光芒四射的学科,如今却常常被贴上“就业难”、“薪资低”的标签,不少毕业生甚至直言“毕业即失业”,或是只能拿着微薄的薪水在工厂流水线上默默耕耘。那么,既然如此“惨淡”,为什么大学里还有源源不断地开设机械专业,每年输送着大量毕业生呢?这背后其实隐藏着更深层次的考量和无奈。首先,我们得承.............
  • 回答
    .......
  • 回答
    中国邮政,这个承载着几代人记忆的“国家队”,近日跨界进军奶茶行业,开设了名为“邮氧的茶”的奶茶店,这无疑是一个令人颇感意外的举动。当我们审视这一现象时,需要深入剖析其背后的动机和可能带来的影响。首先,我们要明白中国邮政的现状。作为一家拥有悠久历史和庞大网络的企业,中国邮政在数字化浪潮和电商冲击下,传.............
  • 回答
    微软开发 Windows 10,这可不是个一时兴起的决定,背后有一系列深思熟虑的战略考量和对市场趋势的敏锐洞察。简单来说,微软希望通过 Windows 10 来解决过去几代 Windows 系统的一些痛点,同时为未来的计算环境打下坚实的基础。咱们一点点掰开了聊聊这个过程。首先,得说说 Windows.............
  • 回答
    .......
  • 回答
    咱们说说这手机上的反诈软件,为啥非得装,还非得开着,这事儿啊,说白了,就是咱日子过得越来越好,也越来越容易被盯着了。你想啊,以前咱们哪有这么多值钱的玩意儿搁在手机上?现在呢?银行卡、支付账号、身份信息,全都在手机里,这不就成了个“金库”吗?这帮搞诈骗的,他们可不是什么吃素的,脑子转得飞快,专挑咱不太.............
  • 回答
    关于福柯“精神病不是病”的说法,以及围绕这一论点引发的关于精神病院存在的疑问,这是一个非常值得深入探讨的议题。需要澄清的是,福柯在他的早期著作,《疯愚观史》(Madness and Civilization)中,确实对“疯愚”这个概念进行了深刻的历史和社会分析,他质疑的是我们如何将某些行为定义为“疯.............
  • 回答
    在网站开发的早期,编码问题确实是一个让不少开发者头疼的难题。当时,互联网刚刚起步,兼容性和用户体验远没有现在这么被重视,很多系统和软件的设计都带着那个时代的烙印。之所以你会看到一些老网站源码会同时存在 GBK 和 UTF8 的版本,这其实是历史原因和技术演进的必然结果。简单来说,就是为了照顾不同时期.............
  • 回答
    开车为什么要用方向盘,而不是像电脑游戏里那样用 WASD 键呢?这其实是个很有意思的问题,涉及到人类对驾驶的感知方式、车辆的物理特性,以及我们与机械交互的历史和习惯。首先,咱们得明白方向盘的核心作用:控制车辆的转向,也就是改变行驶方向。方向盘的优势,从直观和人体的角度来看: 模拟自然的动作: 想.............
  • 回答
    这是一个非常常见的问题,很多准妈妈在分娩过程中都会有疑问:为什么一定要等到宫口开三指才能打无痛分娩?开一指的时候上无痛有什么不行吗?要详细解释这个问题,我们需要从以下几个方面来理解:1. 无痛分娩的原理和作用无痛分娩,学名为“硬膜外麻醉分娩”,是通过在产妇的腰部(通常是腰椎间隙)注入局部麻醉药物,阻.............
  • 回答
    俄罗斯对乌克兰的开战,不是一个简单的突发事件,而是多种复杂因素长期积累、相互作用的结果。要理解这场战争,我们需要深入剖析其历史根源、地缘政治考量、安全关切以及俄罗斯内部的战略目标。历史的阴影与身份认同的纠葛要理解俄罗斯为何会对乌克兰采取军事行动,就不能不回溯历史。俄罗斯和乌克兰拥有悠久而错综复杂的共.............
  • 回答
    大学情侣选择开房,这背后其实牵扯着挺多原因,很少是大家想象中那么简单直接的“迫不及待”。首先,得承认,大学时期是很多人第一次真正独立生活,摆脱了原生家庭的束缚,拥有了更多的自由空间。这种自由,自然也包括了对亲密关系的处理方式。对于很多年轻的情侣来说,他们渴望在私密的空间里,更深入地了解彼此,体验爱情.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有