作为一个渴望成为程序员的年轻学生,我应该对开源软件有何看法?[关闭]


17

有时,在某些技术网站上会弹出这样的标题:http : //www.osor.eu/news/nl-moving-to-open-source-would-save-government-one-to-four十亿

我最初对政府和组织转向开源软件的想法是,成千上万的程序员将失去工作,行业将萎缩。同时,在许多编程社区中似乎都极大地鼓励了开源软件的扩散和使用。

我是否认为,到处都在全面拥抱开源软件会伤害软件业一个误解?如果不是,那么为什么那么多程序员喜欢开源软件?


4
如果您认为开源策略意味着裁员,请阅读Joel Spolsky的“策略字母V”。joelonsoftware.com/articles/StrategyLetterV.html
2011年

Answers:


26

仅仅因为一个项目是开源的,并不意味着程序员不会以此为生。政府和公司向mozilla和apache等基金会捐赠大量资金。

还请记住,公司必须雇用程序员来修改开源项目以针对其业务进行自定义。公司不能使用现成的工具来处理所有事情。这是使用封闭源代码软件无法完成的,因此它是如何开拓编程新机遇的一个示例。这不是要淘汰程序员或不付钱给他们,而是要重新安排结构,以期使事情更有效率,以便我们有更多时间进行新项目。

关于开源的另一件事是,除非您要分发程序,否则不必公开程序的源代码。对于公司要用于其服务器或公司内部需求的程序,它可能不会分发,因此不必透露修改后的程序的源代码。


从事主线项目的人也很容易从事这些定制工作,这是因为他们已经知道了项目的内部。
马修·沙利

我不知道Steve Streeting(Ogre3D项目的创始人)如何在3D图形领域工作,以及它如何影响他制作的引擎。
11

5

开源经济学很奇怪,而且常常违反直觉。拿一个像Excel电子表格这样的产品(仅举一个例子,任何大型商业产品都可以)。X表示,构建和支持Excel的业务雇用了一些员工。X听起来对您和我来说都是很大的数目,但我不知道它是什么。我所知道的是,与依靠办公室,学校和其他机构支持Excel并使用Excel创建工具为生的人数相比,这是一个很小的数目。该数字可能是X *10000。因此,如果用开源产品替换Excel,则替换X,但是X * 10000不受影响。

实际上,这还不是那么简单。如果没有X员工,则需要更多的付费开发人员来培训,排查和修改开源电子表格。仅仅因为产品背后没有商业企业,并不意味着企业就不会要求(并支付)优质的服务。实际上,如果您的开源产品获得了足够的吸引力,则公司有时会愿意为保证该产品未来开发的基础提供支持。如果他们的商业利益与产品密切相关,则尤其如此。想想MozillaApache软件基金会Mono项目Canonical

最后,当您尝试出售服务时,开源工具永远不会构成威胁。想想诸如Facebook,Twitter甚至Stackoverflow之类的组织。最终,这些组织不想向您出售软件。他们想建立一个庞大的网络。一旦网络足够大,它就会产生自己的引力。使用任何其他“产品”都没有意义,因为最重要的是参与者的数量。底层技术只是一个细节。


3

我想说说一些更著名的OpenSource项目(例如Chromium,Mozilla等)背后的各种意识形态,然后下定决心。没有人真正有权告诉您如何以一种或另一种方式感受。

话虽如此,我之所以拥护OpenSource,是因为我喜欢软件设计中透明的想法。我也喜欢用户社区对项目的方向有非常真实和直接的影响。您不会在封闭源环境中得到它。

如果我没记错的话,知识共享支持者提出的观点之一是,通过使事情“免费”,您可以使人们以您从未想过的方式来使用您的想法。这是我特别喜欢的视频:https : //creativecommons.org/videos/a-shared-culture


2
我认为像mozilla这样的项目不会减少对程序员的需求。除非您的公司正在开发它自己的Web浏览器,否则我真的怀疑。另外,我认为大多数人甚至都不会看源代码。程序员关心源代码,客户不在乎。
Joel Gauvreau

1

我们永远不会看到一个完整的拥抱

我们喜欢尝试为世界做出积极的贡献。此外,参加开源项目对您的简历来说是一个不错的选择。


3
我们不会将开源贡献与有偿经验一样对待。实际上,我们的经验告诉我们,避免雇用任何对开源项目做出重大贡献的人,因为现实世界中的软件开发充满乐趣,而枯燥的工作却占90%。我们招募的那些从事开源项目的候选人并不想做生产专业质量解决方案所必需的枯燥乏味的工作。
比特币2011年

6
@位旋弄:当然,有人做开源项目的枯燥部分
安托

1
@Anto:问题在于,无聊的部分通常不会在开源项目中执行。例如,文档是区分高质量商业产品和其开源软件同类产品的属性之一。与成功的同等规模的商业产品相比,即使是最成功的开源项目的文档也相形见pale。缺乏足够的文档使学习开源产品成为一个主要的难题。我没有报酬收集和破译拙劣的文档。我得到报酬以产生结果。
2011年

@ bit-twiddler:那么,您的程序员也应该发布写得很好的文档吗?雇用技术作家不是更便宜,而且他们通常不会生产出更好的产品吗?
David Thornley

1
@David Thornley:是的,除了有能力的完整生命周期软件开发人员(即,我们没有纯代码人员)之外,所有开发人员都应能写得很好。没有人比设计和实施团队更了解产品。我们唯一的技术作家的任务是协调和按摩可交付文档。
比特币2011年

1

开源对打包软件公司构成了威胁,这些打包软件公司的产品流行于某个领域,以至于开源社区中有足够的兴趣开发免费的替代产品。我认为其中一个例子是甲骨文和微软都可以对数据库软件收取的价格大幅下降。mysql对于大多数项目来说已经绰绰有余了,并且基本上是免费的,除非客户想要支付支持费用,否则如果事情不顺利,他们会招人。

它绝对是咨询和服务业务的补充,因为它降低了总生产成本并提高了开发人员的生产率。公司出于同样的原因喜欢它,尽管有些公司坚持寻找供应商来提供商业支持,以便在不符合期望的情况下有人打电话/怪罪。


MySQL由Oracle拥有。没有什么能阻止Oracle关闭该产品的源代码了,就像没有什么能阻止Oracle移除社区对Java的输入一样。软件公司不出售软件,而是让高管放心!公众公司继续购买商业软件,因为他们希望能够与同等规模的公司吠叫,并希望有人跳过去以解决问题。出售IP是小型软件公司成为大型软件公司的方式。仅服务模式完全取决于人工成本。
2011年

2
开源是一种威胁,就像竞争对手是一种威胁一样。如果Oracle的数据库(确切地说是如今的名字?)比PostgreSQL好得多,他们将能够出售它。如果不是,为什么我们要付给甲骨文?
David Thornley

1

最大的风险...

  • 波动性:许多OSS都是突飞猛进的。有一些著名的项目,鲜为人知的稳定版本,但是由于OSS的领域在许多领域都如此分散和分散(并且还在不断发展),因此很少有项目能够成熟到足以说出开发将是有规律的,不确定的,或永久。即使产品是免费的,也要中途更改课程成本很高,因为集成,回归和动手或即时支持也不是免费的(即使有)。

  • 缺乏问责制:没有人“投资”,因此在发生坏事时很难寻求追索权。没有保修。没有什么比这更像。通常,您唯一的保证就是声誉,最终是您自己的个人经历。由于它是免费的,因此开发人员可以告诉您取消救火车,而不必担心您是否缺乏成功,或者更重要的是,如果您继续使用他们的产品。


2
这与商业专有专有的闭源软件有何不同?拥有者总是可以决定转向另一个方向,而我所听说过的唯一具有合理保证的普通产品是TurboTax。
David Thornley

它在许多方面都不同。一种方法是商业化的,对于软件(尤其是组件,库和运行时)的利润产生者而言,通常在提供更平滑的过渡方面做得更好。例如,通过显式枚举重大更改,以及由于这些重大更改应执行或不执行的操作。通常,在软件本身不可用之前就已经准备并发布了这种明确的枚举,并且发布后的勘误表也很快可用,并且此信息通常处于一致的位置和格式。
JustinC'3

1

拥抱OSS工具和东西,但不要被它们迷住(是的,我已经看到很多人被开源东西迷住了,几乎总是对他们有害)。

无论每个工作是否为开源,都应为其选择最佳的工具(请注意,一些开源许可证使他们许可下的任何东西都无法用于商业工作,尤其是GPL许可的库遭受此苦)。


1

大多数现代开放源代码软件都是由全职员工开发的,这些员工主要是因为开发它而获得报酬。其余的由那些根据自己正在开发的软件来做某事的人而开发,这些人依赖于他们所开发的软件来进行工作,并且在该软件上进行协作工作,对他们进行支持和维护是绝对必要的。


1

绝大多数程序员不会从他们创建的软件的分发副本中获得报酬。他们花时间花了一笔时间费。即使聘用程序员的公司通常也不会从每份售出的书中赚钱。除了Microsoft和Adobe这样的少数显着例外,软件通常是其基础结构的一部分,例如公司网站或内部工具,或者作为其他产品或服务的一部分被赠与。

其他人指出,大多数主要的开源贡献者都有公司赞助者。在业余爱好者方面,我发现有趣的是,人们总是专注于给予而不是接受。这就像电工免费获得房屋的所有组件,除了他自己进行的一些布线改进外,已经组装好了,如果他一个周末花几个小时教其他人对其他房子进行同样的改进,则人们会认为他很疯狂。同样的交易。当然,他免费提供一些时间和专业知识,但作为回报,他得到的产品价值是他投入的工作的几倍,并确保下次需要时可以确保健康的生态系统。


0

你感觉如何?真可悲,接下来您会问“我如何与女性交谈”。开源绝不会取代付费软件的一小部分。对于大多数组织而言,从他们已经知道的内容迁移到其他任何内容(甚至免费)所增加的成本,都比软件仓库的成本高。


0

自由/开源的主要理念(如我所见)是,当您分发软件时,您也将同时分发源。开源不一定意味着没有成本。当然,在任何大型项目中,仅仅选择一个开放源代码解决方案并不意味着您只是从架子上摘下东西并将其插入就可以了。对于任何大型应用程序,您都需要使其适应特定的需求(可以像设置它一样简单,并将现有系统迁移到该系统上,也可以像修改它的大部分一样复杂),并具有可靠的支持和支持机制。原始软件的更新/错误修复。这意味着程序员总会有工作。更不用说,对于任何大型开源项目,

这样考虑一下,如果有一个成熟的开源解决方案可以解决您的问题,并且已经被很多人使用,那么就花大量现金购买可能不那么成熟的东西有意义吗? ?使用它效率更高。它不是要保留工作(就像我说的那样,总会需要程序员),而是简单的业务意识,这在纳税人花钱时显得尤为重要。以保留工作为名而拒绝开源只是在创造一个人造的环境,从而限制了技术和IMHO的共享,这通常对编程社区的健康不利。



0

对我而言,开源也是政治上的:它允许程序员互相帮助,这样就不必重复努力,也不必在项目之间使用辛苦的工作。

它还为项目设置了更好的背景规则集,不受管理规则的限制:最后,结果是质量和寿命更长的代码。

知道计算机科学的主题非常广泛,并且有些软件非常复杂,以至于没有那么多能干的人来编写,维护和添加有趣的功能。

我确实发现您的论点“成千上万的程序员会失业,行业会萎缩”,这不仅对软件行业,而且对整个世界都是极具误导性的。记住网络泡沫:很容易愚弄公司中不编程的人。开源是为之设置障碍的安全方法。

您还必须认为软件与许多其他行业不同:您交付的是易变的东西,是资本主义无法真正使用的东西。试想一下,如果我们能够复制物理物体,但是您需要为复制的每个阿司匹林药支付费用,因为该分子是某人“拥有”的。那可能毫无意义。现在考虑复制纯净的水(有一天将变得昂贵):您认为让人们为此买单在道德和哲学上是正确的吗?

如果程序员由于开源而失业,那可能是因为他们无法复制相同类型的软件质量,所以在某种程度上,他们应该被解雇。但这并不意味着他们应该减少程序员的工作量;这只是社区,团队合作和道德的问题:公司应该向程序员付费,或者使用现有软件来实现问题的解决方案,否则,应该聘请更多能干的程序员现有代码的功能。

以iOS,Windows Phone,Symbian和android为例:75%的人做同样的事情,意思是几乎相同的“轮子”。只是口味不同,但最终,公司花了很多钱,因为公司希望能够实现自己的理想。

开源不仅是政治上的,而且还涉及创新:如果您必须一遍又一遍地重新启动一切,您想如何将新想法变为现实?


0

免费/开源软件所做的工作是建立一个基准:如果您的公司无法生产出比F / OS替代产品更好的产品,那么它将无法出售很多副本。如果您的公司能够提供比现有F / OS更好的产品,它将能够出售副本并获利。因此,一种用途是它降低了公司通过销售劣质软件获得软件的能力。

这也降低了进入壁垒。任何拥有现代台式机或笔记本电脑的人都可以在不花一分钱的软件许可证的情况下,拥有功能强大的OS,具有易于使用的GUI和出色的开发环境(很多人认为带有Visual Studio的MS Windows比这更好。那种环境,还有很多没有的人)。

因此,F / OSS帮助软件企业家以低成本启动业务。与财务人员相比,这增加了软件创新者的影响力和利润,财务人员是过去控制大多数非大学计算机使用的人。没有F / OSS及其影响,许多最近取得的巨大成功故事将很难走下去,也许是不可能的。

它减少了没有相应能力而赚很多钱的机会,这无疑是一件好事。

对于那些不依赖计算机系统作为战略资产的公司,不太擅长的开发人员会在内部软件中找到适当的位置,并且这些工作不会受到F / OSS的太大影响。

优秀但不是企业家类型的开发人员仍然可以与销售高质量非F / OS商业软件的公司合作。与F / OSS信誉市场相比,基于货币的市场在满足许多需求方面更为有效,并且在生产乏味的必需品方面要好得多。大多数F / OSS开发人员都会避免很多重要的应用程序。

因此,总的来说,我认为对开发社区来说这是健康的。它使开发人员能够更好地致富,并且可以激励人们制造出优质的产品(而且大多数开发人员宁愿开发优质产品也要劣质产品)。它可能会伤害不太出色的开发人员或为运营不佳的公司工作的开发人员,但并不能减少太多需求,反正他们仍然可以找到工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.