我对这个网站上的内容感到很困惑。一方面,似乎没有程序员能够编写原始代码,如果他们曾经查看过执行相同或类似操作的程序的源代码的话。

如果程序员曾经查看过产生类似结果的程序的源代码,他们怎么可能编写原始源代码呢?除非没有程序员查看过产生类似结果的源代码,否则为什么编写的每个程序都不是某个预先存在的程序的衍生品?为什么不是每个可用程序都不是其他更基本程序的衍生品?

程序员真的从来不看他们没有从头开始编写的任何源代码吗?我觉得这个想法是不可能的,不仅仅是困难或不可能,而是完全不可能。

我很困惑,但我想了解一下。如果每个程序员都想编写非衍生的原创代码,那么禁止他们查看源代码是不可能的。

我该如何将此与软件行业存在的事实相协调呢?

(原贴编辑)感谢大家的回答。除了这些问题,我还问了另一个问题,并且阅读了这个网站的内容,我想我已经不那么困惑了。我在某处读到,只有编码的某些方面才受版权保护,并非所有代码都是受版权保护的。另外,我想澄清一下,我是站在一个即将从头开始学习编程的人的角度来发言的。除了非常基本的 HTML 之外,我甚至还不懂一门语言。我只想把它做好,做对,所以我处于研究和游戏计划制定阶段。我对这个社区也很陌生,所以如果我没有正确使用它或没有正确使用网站礼仪或做法,我深表歉意。

5

  • 3
    这在很大程度上取决于上下文,有时我们甚至想避免“看起来”是衍生作品,无论是否有必要——例如,假设你想写一部关于男巫师的原创小说;如果是这样,那么你可能会故意避免将你的主角巫师命名为“哈利”,只是为了避免听起来像是从另一个也有著名男巫师的故事中衍生而来。这并不是说哈利这个名字是原创的。我认为这甚至是这个名字的一部分。


    – 

  • 3
    除了您给出的很好的答案之外,“软件行业之所以存在”也是因为没有多少人喜欢起诉。


    – 

  • 4
    “难道程序员真的从来不看他们没有从头开始编写的任何源代码吗?我觉得这个想法是不可能的,不仅仅是困难或不太可能,而是完全不可能。”为什么这是不可能的?我们中的一些人实际上是从分析师或程序经理编写的规范开始编写代码的。我编写了一个类似太空侵略者的游戏,却没有看到 Atari 源代码。你是说每个编写类似贪吃蛇游戏的大学新生都会先查看别人的贪吃蛇代码吗?


    – 

  • 1
    你当然可以从头开始创造新事物,但你必须从某个地方开始。从某种意义上说,你可以说每个人所做的一切都是衍生性的,有句老话说太阳底下没有新鲜事,但这种哲学会演变成虚无主义,对任何人都没有帮助。即使你站在前人的肩膀上,你也可以做出伟大的工作。


    – 

  • 好问题。一个相关的主题是模式,关于它你会看到很多晦涩难懂的废话模式是众多程序员解决问题的成功方法的广泛抽象。模式不是特定于语言的,但可能与特定语言缺乏相关性:例如,在汇编语言中,if-then-else是一种模式:高级语言有它的语法。能够本能地找到合适的模式是编程成熟的标志。这不是缺乏创意也不是偷窃。但如果没有我们前辈的创造力,模式就不会存在。


    – 


10 个回答
10

如果您创作了受版权保护的作品,版权法赋予您制作该作品衍生作品的专有权利。

确实,每个程序都是之前某套程序的衍生品,就像您说过的每句话都是您经历过的整套语言的衍生品一样。版权侵权案件会考虑某作品是否与其他特定作品足够相似,是否侵犯了其他作者准备该作品衍生品的专有特权。

这不是一个明确的标准,事实上已经有几个著名的案例和原则规定了什么符合侵权相似的标准,什么不符合。

  • 例如,案经过多轮审理,直至美国最高法院,以裁定复制函数签名是否构成侵犯版权。

  • 原则认为,作品的“必要”组成部分(例如,特定类型所必不可少的组成部分)不侵犯之前恰好使用这些组成部分的作品。正如您所预料的,什么是“必要”是一个模糊的判断,留给法院来决定。

  • 版权只适用于创造性表达,不适用于创意。合并原则是指一个足够基本的创意可能有有限数量的表达方式,因此简单创意及其不可避免的表达方式合并为纯创意的不可保护性,超出了版权的范围。

至于避免阅读源代码,您可能读过类似这样的话:“您可以通过不查看作品的源代码来避免侵犯作品的版权”,这是真的:版权侵权是由相似性访问两个因素决定的(至少在美国是这样) 。您不能侵犯从未见过的作品,因此不查看作品(并在法庭上证明这一点)足以使侵权索赔无效。

然而,这并不意味着避免作品是避免侵权的唯一方法,但它是最绝对的方法。如果你看过一部作品,而该作品的版权持有人指控你侵权,那么你就又要证明你的作品与原作有足够大的差异,不会根据版权法形成衍生作品。

1

  • 音乐行业也出现了同样的问题。


    – 

我猜雇主一定告诉过你“别看这个!”。这可能是个好建议,但通常人们担心的是软件专利,而不是版权。与版权不同,专利可以涵盖算法、产品部分或设计技术背后的单纯想法。它们保护的想法是,简单地发明概念应该是新颖和困难的部分,而不一定是实施;显然,通过浏览代码来了解所述概念的要点比在版权侵权所需的具体程度上复制它更容易。

4

  • 4
    不知道某件东西已申请专利并不能成为防止侵犯专利的辩护理由。因此,只有当其他人(真正了解该专利的人)检查你是否偶然制造了受专利保护的东西时,这种方法才有效。


    – 

  • 3
    @PaŭloEbermann 你说得对,但在某些司法管辖区,明知侵犯专利比不知情侵犯专利受到更严厉的惩罚。因此,不阅读专利的既定做法是针对故意侵权指控的良好辩护。


    – 


  • 1
    @MadHatter …但是你没有办法避免侵犯专利(因为你不知道它涵盖什么,或者任何给定的实施是否会侵犯或规避它),所以即使在你描述的司法管辖区内,它显然也不是更安全!


    – 


  • 1
    @MarkAmery:这就是为什么你只能在有法律部门的公司这样做,该部门会单独核实专利侵权。他们会看到专利,但不会参与实施。


    – 

是也不是。我的职业生涯始于 commodore c64。那时我能够学习“if then else”。并且阅读书籍以了解硬件具有哪些功能(例如,没有你认为的乘法)。我必须自己解决硬件限制。有时已知挑战已经有已知解决方案,但程序更小更简单。我曾经开发过图形之类的东西。结果发现其他人的做法不同,而且我在屏幕上绘制线条的代码比图形库中的代码慢得多。我做了我的第一个操作系统。那时我已经熟练掌握了汇编语言和 pascal。我的旅程开始于电子(模拟和数字)。我开始更多地了解“其他开发人员做了什么”。我学习了设计模式。从那时起,我就一直在学习。

请注意,我一开始开发时并不知道“类似源代码”。我开发了一些硬件操作码来执行硬件操作……后来才知道 CISC 提供了开箱即用的功能。我的出发点是否是我所见过内容的复制品?

如今,我了解了事物。了解了人们是如何创造它们的。了解了如何与它们互动。如果我不喜欢这种实现方式,那么我有能力按照自己的方式去做(通常这是一个坏主意,因为其他人做了更好、更快的线条绘制以及其他事情)。我还可以改进现有的东西。或者使用我见过的其他来源的奇特的东西。这就是开源的力量。然后其他人也可以使用我的模式。我创造了新的东西还是创造了衍生的东西?

作为一名建筑师,我经常只是简单地将预先准备好的模块连接在一起。但我也会计划如何连接它们。我会计划牺牲什么来获得一些收益。我会在迭代中改进事物。

我开始读一些蹩脚的书。后来我遇到了其他人。然后我找到了更好的书。然后我开始使用图书馆。然后互联网让我能够访问许多数据源。如今,“人工智能”让我能够以更快的方式处理来自多个来源的数据,以做我想做的事情。并利用他人的工作来改进它。这是我自己的作品还是衍生的?这是人工智能的作品还是仅仅是一个工具?

目前,许多开发人员只是在重复他们曾经的想法。他们没有做出调整。而且这无法解决以前没有遇到过的新挑战。他们将被廉价的人工智能取代。但还有创造者。发明家。人类,他们可以在不失去基本规则、道德和其他一些指导原则的情况下进行调整。也许在某个时候人工智能能够做到这一点。我只希望它能得到一些验证,以坚持其基本规则。

最后,要说的是:当有新的挑战时,你需要调整。你需要创造一个新的解决方案。如果你足够幸运,你可以创造一些以前从未见过的东西。你可以尝试已知的解决方案——也许现有的解决方案会起作用?或者你可以遵循一些解决问题的规则。无论哪种方式,你都会创造出以前没有做过的东西,与现有和已知的解决方案有更多或更少的共同点。由于你假设你的工作是衍生的,你可能属于“重复者”。但既然你问了问题,你就有可能找到新的东西。祝你好运

1

  • 真是个很棒的答案。感谢您的时间和考虑,我非常感激。实际上我都不是,因为我还没有学习一门语言。我目前正在研究和制定一个游戏计划,以学习编写我希望别人会但到目前为止没有人做到的代码~可能永远不会。如果您愿意,可以看看我的其他问题吗?


    – 

你在标题中提出的主张完全是错误的。查看类似的源代码绝对不会使我的代码成为衍生作品。

要制作副本,我需要制作绝对 100% 的副本。要制作衍生作品,我需要通过复制原作品,然后根据我的目的修改该副本来创作我的作品。没有复制就意味着没有制作衍生作品。

还有一个问题,即您是否可以证明您的作品不是衍生作品。如果您可以声称您从未看过原作,那么这是一个很好的证据,证明您没有抄袭原作(因为您不可能抄袭),因此没有创作衍生作品(即使您想创作,您也不可能创作)。另一方面,如果没有人看到您创作衍生作品,因此没有直接证据,那么有人可能会试图证明您的作品与另一部作品非常相似,这不可能是巧合,它一定是衍生作品。排除合理怀疑。

2

  • 5
    我不确定我是否同意。好莱坞对使用他们角色的同人小说持非常负面的看法,即使它不是通过复制现有作品并根据自己的目的进行修改而制作的。如果你决定制作一部关于名叫加里·特罗特的男巫师就读于一所名为博格沃茨的学校的电影,并且取得了商业上的成功,你很可能会发现华纳兄弟的授权部门正在敲你的门。是的,按照你描述的方式做很可能会成为侵权作品;但你也可以用其他方式来做。


    – 


  • 1
    这不是一个主张,这实际上是一个问题〜实际上是在询问,因为我很困惑。


    – 

这是一个很好的问题。

这取决于你正在构建什么,以及它的创新程度。

完全摆脱现有技术是十分困难的。

但是,任何事物都有其最初的版本。第一个 Web 服务器、第一个 Web 浏览器、第一个路由器、第一个网页等等。在互联网出现之前,我们使用的书籍样本很少,等等。当时“开源”并不常见,而且没有互联网,您又能将开源存储在哪里呢?

我举这些“老”例子是为了证明现在有人在研究尖端创新事物。我们大多数人还无法想象这些事物。而且这些事物的代码可能不那么具有衍生性,甚至根本不具有衍生性。

2

  • 2
    顺便说一句,我注意到第一个 Web 服务器是 CERN httpd(由 MIT 发布),第一个(图形)Web 浏览器是 WorldWideWeb(发布到公共领域)()。路由器我会给你,虽然几乎早于整个软件许可概念。所以我不确定“开源在当时不太常见”;可以说,软件囤积在当时不太常见。


    – 


  • 就授权而言,是的!但就可用性而言(因此其他人看到代码的可能性),可能性很低。无论如何,关键是真正新颖和不同的东西往往是非衍生性的。


    – 

在这里,乐高积木可以作为软件的良好实体替代品。

您的论点就像说您用乐高积木制作的东西都不是原创的。仅仅因为它们是成套出售的,并不妨碍您制作完全不同且独特的东西。

如果有文件显示你可以用所有可以想象到的方式组合乐高积木,你当然可以争辩说一切都是衍生品。但这些文件并不存在。

这是那种虽然全是衍生品但实际上却不是衍生品的东西。读你需要的,用你需要的,写你需要的。只要你不复制你没有获得许可的代码,那就没有问题,只是会有几个人感到不快。

简单的答案是,我们不会再去重新发明轮子,轮子已经完成了,现在就在此基础上继续。如果你遇到一个问题,并且你认为你可以解决它,那就检查一下解决方案是否已经存在。如果是,那就继续,解决其他问题。如果不是,那就继续展示你能做什么,然后你就是那个解决方案的原创者。

它与其说是原创的工作,不如说是符合案例的逻辑的工作以及适当的系统理论和设计模式。

想想科学,我们不是发明科学,而是发现科学,我们发现现实的领域、规律和结构;好吧,它们是一样的,只是另一个领域,如果你想要最好的设计,相似性很高是很正常的。如果合乎逻辑的选择是圆形的,你就不会发明方形的轮子。

版权只是一种幻觉,你以为你是第一个找到最佳方法实现某事的人。一方面,你可能确实是第一个,但另一方面,你并没有发明它,你只是“首先”找到了一种做事的方法,而且可能很快就会被取代。

有了适当的知识,你就不需要复制任何特定的东西,而是将适当的逻辑组合在一起,以满足你的适当用例。🚀🌐

用例几乎从来不是完全相同的。

每个作家如何依靠底层语言写出原创故事,难道他们不是独一无二的吗?

他们难道没有研究语言学并创造出与英语不同的语言吗?

想象一下这是一个疑问。

我们使用的编程语言可以被媒介(浏览器、操作系统等)读取、编译和解释,并可以被最终用户查看。

因此需要有连续性,在这个空间内有很多框架、帮助程序、打包程序和运行时的选择,这些都是可选的。编程语言是将你的想法传递给消费者的画布和工具