“我计划开源一个应用,但又怕被竞争对手利用,怎么办?”

作者 | 何苗

出品 | CSDN(ID:CSDNnews)

昨天,在知名社交新闻论坛 Reddit 上,一网友发帖求助:“我开发了一个应用程序。一些用户要求它开源。我该怎么办?”此帖迅速引发了评论区的数百条留言热烈讨论。

这位求助者并非计算机科班出身,对自己写的应用程序代码也没有很自信,之前写了个应用程序,但是在考虑是否将其开源期间,就在网上遭受了一场“小战争”,导致他对这个网络世界的信任崩塌了。

对他影响很大的一点是,“一位开发类似应用程序的用户在公开场合对我的应用程序非常居高临下地指点,但私下里请求我与他分享部分代码。嫉妒与钦佩几乎来自同一个地方”。

图片来源:Reddit社区

在此之前,他确实是考虑开源其应用的。但在这之后,他开始持保留态度。截至发稿前,该原贴已经删除,他的最后决定也无从求证。但从求助者的原帖,以及他与网友的探讨中,我们发现不少人对开源软件的认识仍然非常有限,也存在一些误解。

热心网友在线出招儿

在原帖评论区,有人鼓励他不必理会旁人,继续做自己想做的事,自己决定是否开放源代码。

也有劝他先从商业利益考虑:“看看你能不能先用它赚钱,如果它流行起来,你可以选择让它开源。不用把它送给可能会从你这里获利的人。”

还有从实际操作方面给出建议:“你可以把它保密并手动添加协作者。这样社区的人可以帮助你,但你可以控制谁才能看到源码。”

与求助者经历类似的网友,建议他等待至少 6 个月到 1 年的时间再开源,实际上倾向于劝其不要开源。并认为这种行为可能有利于竞争对手复制源码。

从大部分回帖来看,求助者更倾向于以防开源代码落入竞争对手手中,不开源。

因此被早先劝作者“做自己想做的事”的那位网友直白地怼:不要让那些讨厌的人影响最初的判断、支配你的行为,这听起来更像是你为不开源找的理由和借口。同时又苦口婆心地劝他:这是你的代码,用它做你想做的事。对于你的宏伟计划,世界不会关心你用哪种方式实现。

不过求助者也强调了自己不是在找借口,如果这个问题没有发生,应用程序可能已经开源了。我们看到的只是一个即将踏入开源世界、还没有对开源有太多认识的萌新被击穿了信任,因此缩回了保护壳,令人惋惜。

开源专家的正面解读

开源世界到底是怎样的?此类问题在开源世界的解法是什么?或许大家可以来听听几位开源前辈的分享。

在最新一期 CSDN《开谈》——“开源是如何开始吞噬软件的?”直播中,恰好也聊到了此类话题:有开发者认为,开源可以让任何一种核心是基于算法/软件/程序的技术或者产品在很短的时间内失去技术门槛,全世界各国的技术人员都可以快速迈入这个门槛。既然开源可以让大家站在同一个起跑线,那是否意味着最早开源此类技术的人也失去了先发优势,面临被力量更大、其他优势更多的企业碾压、垄断市场的可能?如此一来,开源反而让这些开发者处于市场竞争劣势?如何看待开发者这类的忧虑?

开源社理事庄表伟表示:其实这种忧虑在今天而言是一种幻觉。换言之,开放源代码给你带来的也可能是一种虚幻的满足或者说虚幻的安全感。许多厉害的软件源代码就在那里,你随时可以取用,但这不意味着你就能编译出一个同样厉害的产品。同样的,对厂商而言,代码不开源就能够守住商业秘密吗?这是另外一种虚幻的安全感。对于个体开发者,开放的源代码并不会给你带来更多安全感,对厂商来说,闭源的代码也不会给你带来更高的竞争优势。

真正的市场竞争力往往不在代码上,可能是在别的东西上。例如产品设计、功能、市场占有率的提升技巧这些与代码无关的地方。

开源之道主创适兕对以上观点也表示认同,同时他还为开源的真正价值做了诠释:

过去几十年是一个被信息轰炸的时代。如今的开放源代码,就像过去的信息轰炸,信息的产生速度已经远远大于每个人吸收的速度。此时我们要认识到人力成本才是真正的生产要素。

开放源码非常重要的一点是开放“可能性”,它可以让社区用户和创始者一起创新,挖掘更多新玩法,这是开源非常大的价值点。当全世界都可以基于开源项目协作、使用,这会为整个社会带来更大的价值,这是我们大力推崇开源的很大因素。

以上是开源专家们的解答,仅为大家提供一种参考。开源给了普通人很好的机会去参与到更大的历史贡献中来,也为大家打开一扇窗去探索新的世界。对于初入开源世界的新人,专家们也给到了几条探索思路:

对开源世界有好奇心,对看到的开源内容保持不断探索下去的兴趣;

对代码有好奇心,去查看源代码、试着使用源代码;

对社区有好奇心,参与线上或者线下的开源社区,结识志同道合的好友,交流思想、增长见识。

对此问题有不同观点,也请留言分享给我们~

参考来源:

https://old.reddit.com/r/learnprogramming/comments/y26efa/im_made_an_app_some_users_are_demanding_it_to_be/

原文地址:https://www.toutiao.com/article/7154000796328460833/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340