开源对开发人员本身不利吗?[关闭]


21

为什么程序员甚至喜欢开源的想法?我不是在谈论那些项目的创建者,当然他们是成名的,但是我在谈论的是整个行业,为什么当开源概念给行业带来如此多的负面影响时,我们为什么如此喜欢开源概念?

首先,在诸如wordpress和其他CMS之类的项目中,它们剥夺了许多自由职业者的工作,客户需要博客或简单的网站。其次,在诸如Rails以及其他库和API之类的项目中,它们使很多程序员无法工作,并使对程序员的需求减小,因为现在有了这些开源API,一个程序员可以做10个程序员曾经做过的事情。最后,使用诸如Notepad ++之类的开源软件,现在,当人们要求他们购买软件时,人们会感到很有趣。

所以,问题是,如果这会使我们变得贫穷,为什么我们仍然喜欢开源?可能,我作为程序员的生活会更艰难,但至少我可以靠它谋生。但是现在,它更像是机器在代替人类,有趣的是,我们正在创造那些取代我们自己的“机器”。

假设,如果您发明了一种工具,则不必共享它,它将仍然对您和您的公司有所帮助。即使没有这些开源工具,其他程序员也会活着,因为他们仍然有一份赚钱的工作。


25
您的问题中有很多假设。此外,您的“观点”适用于旨在提高人们效率的任何工具,无论这些工具是否是开源的。.NET就是一个例子。
user16764 2012年

7
-1。我是Ruby on Rails的开发人员,我不知道您从哪里得到这个想法。如果有的话,开源技术将为每个人带来更多机会。仅仅因为RoR使工作变得更轻松,并不意味着PHP / .NET / Java程序员将失去工作。
Terence Ponce 2012年

9
粉碎旋转珍妮!燃烧滚滚的罗莎琳德!摧毁格特鲁德的上升和下降然后移动!并不是说我真的在指责你是个卑鄙的人……但是你会在这里划清界限吗?您实质上是在为创造工作/繁忙的工作而提倡放弃技术进步。从更广泛的角度来看,这是我们作为一个社会进步的方式之一,因此烹饪,清洁和洗涤不会像过去那样占用我们一天的12个小时。
小夫

13
如果您的论点是“生产力不好”,那么您就必须讨厌工业革命。
Michael B

9
但是,您是否使用Web 2.0网站提出询问,而不是写信给当地代表凿凿成石碑或使用钢笔和墨水?从长远来看,生产力和开放性倾向于为每个人提供帮助。至少看来?
杰森克2012年

Answers:


66

为什么我们喜欢商品硬件?
英特尔和戴尔停止了我组装自己的计算机和制造自己的PCB的费用。

高级语言意味着我无法为用Assembly编写的简单打印机功能花2周的时间开票。

最后,互联网意味着人们可以免费提出问题,然后有人会回答这些问题,而不必付钱给我写书和授课。

我只花了几天的时间安装并学习scipy + numpy + skimage,这意味着我一天就能编写一个图像处理器。这比起我花了数周的工作来研究所有原始论文的数学知识,然后再用C ++编写所有代码的方式,对我的公司股东来说更有价值。


如果可以的话,将+10。
Demian Brecht 2012年

2
@martin,但这并不是工厂劳动发明了戴尔,而书作家也发明了互联网。我要说的是,工厂劳动者不喜欢戴尔所做的任何事情,而书的作者也不喜欢互联网上的内容,因为它们彼此竞争。但是在这种开放源代码场景中,程序员制作的东西会相互竞争,这很奇怪。
安迪

27
@Andy-您似乎并不反对开源代码,而是让人们无需做大量昂贵的底层工作即可创造价值的高级代码。这就像说Excel对程序员不利,因为否则每个办公室都会有Cobol程序员团队来做帐户应用程序。
马丁·贝克特

6
在这种情况下,IE6是Web开发人员有史以来最好的事情。
卡勒姆·罗杰斯

+1表示不计费2周即可使用简单的打印机功能。@Andy-如今,您因工作而获得报酬,而不是产品本身。假设您创建了一个工具,它已经足够好了,人们就会购买它。然后,如果他们想要添加一些功能,即使它是开源的,他们自然会求助的第一个人就是最初的作者。如果作者放弃支持,他们可以雇用其他人并提供支持。你得到报酬的附加值您提供的,并不是每个人都是程序员,你雇人更胜任你的税等相同的方式
TC1

31

在诸如Rails以及其他库和API之类的项目中,它们使许多程序员无法工作,并使对程序员的需求减小,因为现在有了这些开源API,一位程序员可以完成10位程序员曾经做过的事情。

您是否有任何统计数据可以证明这一点?实际上,根据Jevons的悖论,它们实际上应该引起对程序员的更多需求。

另外,有很多开源软件和免费软件的参与者都为此付费。


5
+1对于Jevon的悖论,我以前从未考虑过将其应用于自由软件。
奥斯汀2012年

假设工作是创建一个博客网站,您可能需要2个程序员在其上使用普通php进行一周的工作,但如果使用rails,则一天中可以有1个程序员来完成它。如果您同时完成了简单的PHP和Rails,您就会明白我的意思。
安迪2012年

5
@Andy因此,您可以在他们执行1的时间中创建7。这将获得7倍的报酬。有什么问题?
Pubby 2012年

8
@Andy-您假设要做的工作量是恒定的,但事实并非如此。如果您可以在1/7的时间内创建博客,则可以收取1/7的费用,而较低的价格意味着更多的人愿意支付。Jevon的Paraxdox表示,愿意的客户数量甚至可能增加7倍以上。
奥斯汀

2
Rails和类似的工具可以创建初创公司,否则就无法通过将初始开发成本降低到可以承受的水平来创建初创公司。这些框架实际上通过增加Web公司的数量来增加对开发人员的需求。正是这些初创公司导致了工作增长,而开源框架可以帮助初创公司。
卡勒姆·罗杰斯

14

超出马丁的答案:

开源意味着您有机会从事一些项目,而如果您只是坚持自己的专业工作,那么您很可能没有机会从事这些项目。在那有两个巨大的好处:

  • 让您保持兴趣。
  • 您可以从其他人那里学习,否则您将无法与之合作。

两者都使您成为更好的程序员,对您的公司更有价值。


@Andy-程序员需求减少了吗?那是非常区域性的-公司甚至在我所在的地方都找不到足够的开发人员,在加利福尼亚湾区,他们在开发人员池中苦苦挣扎。
wkl 2012年

11
  1. 一些开源开发商为此而付费。如果他们获得了开发产品的报酬,那么公司提供该产品所依据的商业模式就不那么重要了。
  2. 如果他们没有得到报酬,则在其简历上进行开源项目可以使准雇主对它们的要求更高。
  3. 大多数开源项目是库/框架,仍然需要开发人员才能将它们合并到产品中。
  4. 随着开源工具数量的增加,它并不会减少我们可以得到的工作量,因为我们创建的产品也变得越来越先进,需要越来越多的这些工具来支持它们。

2
+1,The majority of open source projects are libraries/frameworks which still require developers in order to incorporate them into products.非常正确。
PresleyDias 2012年

您有什么要备份的吗?特别是对于那些在OSS上工作而又无法工作的人?
安迪

@Andy更常见的情况是,如果他们没有得到报酬,他们会在业余时间这样做。我的意思是除了定期的带薪工作。
吉安(Gyan)加里·巴恩(Gary Buy)2012年

如果我们将自己局限于开放源代码/免费模型,那么请记住:1.每个计算机科学专业的毕业生(@@ $$%RMS之外的人)都想在他们离开时得到一份有薪工作,以及2.有人兴致勃勃地去编写免费软件,假装他们以某种方式罗宾汉只是成功地使软件工程师更难找到工作。所有这一切“哦,帮助了软件行业!” 由BS组成,就像“哦,但Napster帮助音乐界!” 2000年初的学士学位。完全编造了借口满载的想法。
tgm1024--莫妮卡(Monica)在

11

你的位置让我想起了《勇敢的新世界》。在那本书中,他们人为地停止了科学和技术的发展,这样人们就不会失去工作,地位不会失去现状。

即便如此,您的观点之一还是引起了我的注意:

首先,在诸如wordpress和其他CMS之类的项目中,它们剥夺了许多自由职业者的工作,客户需要博客或简单的网站。

我认为这种推理是有缺陷的,原因如下:

  • 这些项目只会夺走自由职业者的工作,而自由职业者应从头开始构建整个博客。另一方面,他们实际上创造了了设置CMS的更多自由职业。大多数付费客户都不知道什么是CMS,并且并不真正在乎您是从头开始构建CMS还是只是配置了某些内容,只要它能按预期运行即可。
  • 的确,在许多情况下,配置CMS所需要的缓存比编写完整的应用程序要少,但是请注意,由于所需的时间更少,因此您自己的投资要低得多,因此通常您应该获得纯利润。
  • 有时,客户特别希望您不要使用广泛使用的CMS或至少对其进行大量自定义,以使其站点脱颖而出。不用说,这通常会花费更多。如您所见,即使在这里供求关系也发挥了作用-工业产品的较低价格实际上提高了手工产品的价格。

然后,您扩展该点以包括其他库和API:

其次,在诸如Rails以及其他库和API之类的项目中,它们使很多程序员无法工作,并使对程序员的需求减小,因为现在有了这些开源API,一个程序员可以做10个程序员曾经做过的事情。

再次,我的回应:

  • 这些库仅在定量的基础上减少工作量,而没有定性的方法。用英语来说:它们只会减少代码行,而不会减少所需的工作量。既然这些库已经可以广泛使用,那么您只是期望使用它们来编写更酷的东西。因此,不再需要博客和简单站点,现在您可以为数据挖掘,社交网络和其他新事物付费。
  • 他们没有有效地使程序员失业。在较早的日子里,您只需要编写几天代码,以便拥有一个将一些数据发送到另一台计算机的软件。然后,您必须从另一端与程序员会面,并决定使用哪种格式进行数据交换,然后才使程序执行某些工作,等等。等到您有机会这样做时,公司就破产了,你失业。今天,您可以找到库并在数小时内完成相同的工作。您的公司赚钱,您还有工作,甚至更多的机会出现。
  • 您是否真的喜欢您和另外9位程序员忙于为另一个博客多次键入代码的想法?如果听起来像精英主义者,请原谅我,代码仓鼠不是我希望在明年开发的那种程序员。为了他们和我自己,如果我能维护该代码。

这就是我要提出的重点。但这已经很晚了,我想上床睡觉-好的答案
马丁·贝克特

8

这里有用的思想实验是倒退。为什么要停在Web框架上,如果一切都必须在组装中手工编码,该怎么办?届时会有多少程序员工作?数量不多,因为开发大多数东西会太昂贵并且花费太长时间。

拥有大量免费软件可以扩展您可以到达的市场。您一天编写的C程序的市场有多大?不是很大 一个需要您花费一天时间来制作一些免费框架的网站的市场有多大?数以千万计。


6

但是现在,它更像是机器在代替人类,有趣的是,我们正在创造那些取代我们自己的“机器”。

您似乎担心某些时候所有软件都将被编写,否则我们将无法工作。实际上,情况恰恰相反。直到不再使用软件时,它才真正被“完成”。软件越多,就越有更多的软件可以以新颖有趣的方式进行维护,改进和重组。

此外,软件可用性的提高创造了更多的客户,而不是更少。诸如MySQL和PostgreSQL之类的工具为数以百万计的人和组织打开了数据库的力量,如果他们不得不从Oracle购买许可证,他们可能永远不会使用数据库。如果不使用Apache Web服务器之类的工具,Web肯定会小得多,用处不大,这对于Web开发人员来说意味着更少的工作。


3

阅读完问题后,我想起了在1990年代流传在我身边的一种恐惧,那就是计算机会带走他们的工作!

开源和较大的开发者社区是有很多原因的关键;

  1. 它可以帮助社区中的新成员学习。
  2. 您无需从头开始。已经完成了一些事情。您可以从头开始,也可以将其作为参考并构建自己的东西。
  3. 认真对待业务的人不会认为仅开源就足够了。仅举一个例子,有博客作者,单词出版商,还有许多免费博客(如您所言),但是有多少家公司或公司使用它们?90%的人将拥有自己的网站和博客。
  4. 任何行业都可以通过相互共享和学习来发展。开源提供了一个学习和适应的好平台。
  5. 通过迫使越来越多的公司使用它来大幅降低其软件构建成本,这将为开发人员带来更多工作。

3

关于开源的一件事是共享想法/代码。从开发前景的角度来看,这可能是一个很好的学习经历,可以查看他人的代码并学习其工作方式或为开源项目做出贡献。我看到了很多学习和成长的机会。因此,从发展前景来看,我不认为这会带来负面影响。

但是从业务角度来看,肯定会产生负面影响。如果我为X销售产品,然后有一个免费的开源项目(让我们认为它是平等的),那么我就倒闭了。

没有什么是免费的。即使有了开源项目,人们还是放弃了那里的时间来生产某些东西,也许他们愿意这样做,但是仍然花了时间。因此,它是一把双刃剑。只要有免费的东西,它将贬值为其开发的市场。为什么要免费付费?这可能会使人们失业或导致一些市场枯竭。

但是,这也会抑制创新。它可以推动行业前进,可以激发增长和进一步的创新。

最后,我倾向于认为有中间立场。当然,我们不想以编程社会主义的形式免费提供一切。但是,开源与商业资源的结合将使行业保持健康和创新。


3

仍然需要程序员来操作这些开源工具和库。就像其他领域一样,规模更大。建造摩天大楼已经不是不可能了,但是仍然需要工程师和工人来完成。同样,安装wordpress只需5分钟,但是如果您要自定义某些内容,则仍然需要程序员(因为这是简单的CSS更改,大多数非程序员都无法做到这一点,因为这不是他们的专业)。也许没有人会雇用您来编写博客引擎,但是总有其他工作要做。这些开源项目简化或消除的任务不会花费太多时间,因此企业会做其他事情,并雇用您从事实际工作。为什么?因为每个人都想扩展以与他人竞争。这意味着他们将投资于IT,因为其中包含商业价值。


3

您可以通过以下方式开始提问:

“我不是在谈论那些项目的创造者,当然他们是成名的,但是我在谈论的是整个行业,为什么当开源概念给行业带来如此多的负面影响时,我们为什么如此喜欢它?”

但是,当然,开源软件的创建者才是最重要的:如果他们不编写和发布代码,那么它就不存在。如果他们这样做,那么不管其他人希望什么,它都会这样做。而且,许多人-我想说的是,如果不是全部,那么几乎所有人-从中声名远播。

当然,有些人通过直接写开源(例如,写软件然后出售对它的支持)或间接地从写开源中获利,因为他们在一家付费的公司工作(这通常意味着该公司正在获得收益)超过名声)。但是,很多开源软件是写给作者自己使用的,他们只是想“挠痒痒”:他们只是从软件的存在中获得实用性,而其他人对其进行的任何改进都只是对软件的奖励。最重要的。

例如,假设我想要一个博客。假设我希望我的博客具有某些功能,而这些功能是现有的免费博客软件都无法提供的(因为这样我就可以下载该软件并安装并完成)。

我可以做的一件事是,如果市场上有合适的博客购买一个封闭的博客平台,然后向销售它的人支付额外的费用以添加我需要的功能。但是,由于我碰巧自己了解一些Perl和PHP,因此我有更多选择:

  1. 我可以从头开始编写自己的博客软件,然后将其保存给我自己。

  2. 我可以从头开始编写自己的博客软件,并将其作为开源发布。

  3. 我可以下载一个开源博客平台,并添加自己需要的功能(如果我需要和/或需要许可证,请以开源形式发布添加的内容)。

(当然,如果我自己的编程技能还不够好,或者如果我觉得自己太忙而不能将时间浪费在此类工作上,那么我也可以选择雇用其他人来做这些事情。)

显然,如果有任何现有的开源软件甚至可以满足我的需要,那么最后的选择可能是三个中最简单的选择。但是,即使没有,为什么我还是选择选项1而不是选项2?

请记住,我对向他人出售博客或博客软件没有兴趣-这是一件枯燥乏味的工作,而且这也不关我的事。我想要的只是一个自己的博客,它拥有我需要的功能。如果其他人使用相同的软件创建自己的博客,我也不会失去任何东西;如果有的话,如果他们的博客很有趣,我就读了一些东西。因此,与选项2相比,选择2不会给我带来任何好处。

另一方面,如果我选择选项2,而其他人决定在其博客中使用该软件,则他们可能会想要一些我不会打扰的功能。并且,如果他们实现了这些功能并发布了它们(要么是因为我的许可证要求他们这样做,要么是因为他们的推理方式与我相同),那么毕竟我可能会发现其中一些对我的博客也很有用。也许他们还会找到我错过的一些错误并进行修复,这意味着我也免费获得了修复程序。

因此,这就是开源经济运作的原因。这与无偿开发人员编写不需要的软件,然后“为了成名”而放弃软件无关。相反,它是关于人们编写对他们有用的软件并与他人共享,以便其他人可以与他们分享对软件的改进。


1

我没有任何数字,但是我怀疑今天的程序员比十年前还多。我从事IT相关工作已有几十年了,我想说开源似乎可以保留下来,并且比有害更有益。

开源本身并不比PHP或Ruby有害。顺便提一下,这两种都是开源语言。过去,如果您走得足够远,则必须付费使用taht编译器(和解释器),但是如今,您可以免费获得不错的编译器。似乎并没有停止“编写商业编译器”业务(但我不知道它在任何时期内是否已经增长,缩小或保持不变)。


1

这不是一个愚蠢的问题。我可能会争辩说,我几乎不需要写一些有用的软件来出售,因为可能已经有了免费的开源替代方案。如果没有,我的软件可能很快就会出现。

现实并非如此。我记得在80年代末和90年代初,已经有大量的自由软件。看看有关Fred Fish的Wiki文章只是一个示例。我有自己的发行版,但是显然它们不足够重要,不能保证提供Wiki文章;)

但是为了赚钱,软件继续出现并开始盈利。我是一名开发人员,并为此付出了合理的努力。开源有时对我的公司发展有所帮助,这从来都不是问题,因此总的来说是有益的。


1

自由软件基金会的创始人Richard Stallman 数十年来一直在解释您为什么做错了。Linux,Firefox,MySQL和开放软件的概念和文化之所以存在,仅仅是因为许多人发现这些论点具有说服力。在FSF网站上阅读有关该问题的信息(向下滚动至“容易被驳回的异议”以获取问题的答案)。

http://www.gnu.org/gnu/manifesto.html


1
理查德·斯托曼(Richard Stallman)多年来一直在推动宣言,但坦率地说,他在《轻松反驳的异议》中的许多说法都是荒谬的。
保罗·泰勒

@PaulTaylor,您不认为您应该更具体一点吗?我为什么要关心您对斯托曼的论点“坦率荒谬”的声明?提供一些反驳的论点,也许我们将辩论他的一些观点。也许我会同意你的观点,有些夸张-他确实有很多强烈的意见。但是,不管您和我如何看待它们,它们都包含了许多开源是事物的原因。
Alexis

PS。“推销他的宣言多年”表明它并没有太大的作用,这显然是错误的-开源无处不在,而一切都始于RMS。
Alexis

“几十年来一直在解释你为什么做错了”,这意味着RMS实际上是正确的,而不仅仅是发表意见。但是,令人特别恼火的是他对“程序员不应该因其创造力而获得回报吗?”的回答。任何值得奖励的东西,都是社会的贡献。创造力可以是社会的贡献,但前提是社会可以自由使用结果。如果程序员因创建创新程序而应受到奖励,同样,如果他们限制使用这些程序,则应受到惩罚。
保罗·泰勒

1
归根结底,您可以编写程序,但必须自由分发,只是希望有人能为您捐款。您不能以此为基础开展业务,而且我不明白为什么应将程序员排除在独立于编程之外的道路上。专有文件格式是错误的,需要用户不断升级的许可模型是错误的,但是专有软件本身并没有错。
保罗·泰勒

1

我认为最重要并能赚钱的“业务逻辑”

因此,让人们建立一个开放源码的世界,您就担心您将如何利用这个世界做一个好生意。


1

看起来这个问题的前提是,编写代码的唯一原因是为了财富或成名。但是事实上,还有另一个原因来编写代码,制造软件,或者为此发明任何新技术……就是要使人们的生活更好,更高效,更高效!


0

如果您对开发高质量的软件产品感兴趣,那么免费和开源软件将是您的梦想。如果您的产品很好,它将出售。请注意,您销售的产品可以采用任何形式,例如,软件即服务(SAAS)或平台即服务(PAAS)。

开发产品时,您想花费有限的资源(时间和金钱)来为产品增加价值,而不是在编写(样板)代码上。开源项目通常是开放的,因此它们会生成高质量的软件。更多的程序员可以查看源代码,并贡献包含错误修复,优化或更多功能的补丁。购买要在产品中使用的软件时,您不会奢侈。我并不是说购买软件是不好的。当不允许您查看其源代码以查看其工作原理或修复它时,这很不好。很多时候,这附带了昂贵且质量低下的支持包和/或依赖于昂贵的第三方组件(当您担心总体拥有成本时,这是一场噩梦)。

现在,必须区分诸如GNU GPL之类的copyleft许可证和诸如MIT许可证之类的更宽松的许可证。他们有不同的目的。Copyleft许可证要求,如果您分发产品,则必须提供完整的源代码访问权限,并且必须允许其他人按自己认为合适的方式对其进行修改。我认为这是一件好事,但要通过您的工作获利则更加困难。这就是为什么大多数成功的开源项目都以宽松许可(MIT,BSD,Apache,MPL等)而不是诸如GPL或AGPL之类的Copyleft许可进行许可的原因。使用copyleft许可证,通常很难保护您的商业优势,但这取决于您的业务模型。我观察到的另一件事是,根据版权保留许可发布的组件在集成到系统中时往往会被隔离,因此它们不会“

我个人相信上述所有模型,因为与自然界一样,总是有不止一种方法来完成某件事,因此您必须选择能够很好地满足您的目的的模型。

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.