作业要求
这个作业的要求是: https://bbs.csdn.net/topics/607938212
开源是当代软件开发经常采用的模式,在近期学校课程的学习中,我们经常使用GitHub等开源代码托管平台进行团队协作,在课程设计中也采用了很多开源代码以实现课程需求。就我个人的经验而言,开源模式为软件技术的交流传播提供了极大的便利,大大提高了学习效率和开发效率。
关于开源的五个问题
1.国内同领域的开源项目是否存在过度竞争的风险
《2022中国开源发展蓝皮书》在开篇就提到说
从最初的启蒙阶段、 萌芽阶段逐步演进到发展阶段,当前中国开源正处于空前的加速阶段。
后文也提及了在操作系统、开源芯片、数据库等领域中国主导的众多开源项目。我们可以看到,在不同的产品赛道上,都有很多中国企业各自主导开发开源项目。例如在操作系统领域:
截至2022年4月,国内已累计涌现出100+种操作系统。
而从我个人的观察视角出发,国产开源软件项目目前总体所占的市场份额并不大,而且同国外竞品的竞争压力较大。很多国内企业都在试图构建自己的开源生态以形成竞争力,但目前在很多关键赛道上,国际上可能已有生态足够发达的开源项目,国内相关企业如果各自主导增量开发的方向,是否有着较大的市场试错风险?
2.开源项目离本科生有多近?有多远?
在读了 开源生活实录.1.LAMP之辉_CSDN资讯的博客-CSDN博客 这篇文章后,我发现作者在毕业后还经历了长年的开源技术学习过程,是在工作和兴趣的驱使下慢慢接触到开源社区,在工作的同时作为开源社区贡献者活跃。
我们的课程要求我们参与一个开源项目的开发,但以我目前的技术水平,我不清楚什么样的开源项目适合我,我可以为开源项目做出什么样的贡献。可能对于一些小软件的项目我可以有所贡献,但对于大型的商业开源项目,我目前是否还没有必要深入接触?
3.大型开源项目的管理模式?
开源基金会是开源生态中的重要部分。对于非营利性且处于中立位置的开源基金会来说,他们拥有 开源项目的知识产权,而且没有任何商业利益,这为贡献者、开发者、用户提供了良好的协作平台; 基金会也会通过技术服务和项目孵化来帮助开发者和开源企业,如软件仓库、问题跟踪、技术指导、 法律支持、项目投资、公共关系维护等;基金会还会提供项目日常的运营和治理,以满足在项目生命 周期不同阶段对于管理项目的需求。
《2022中国开源发展蓝皮书》中提到了很多知名开源项目采用开源基金会的模式,也提到了中国企业和开发者对开源基金会的贡献。课程中提到了基金会对于开源项目知识产权的持有权利,但对于大型开源项目,面对来自全球各地不同背景不同水平的开源开发者,怎样把握开源项目的开发方向,管理开发者的贡献请求,这让我感到困惑。一个中心化的管理机构能否较好地管理大型开源项目,它的组织架构是什么样的?人员组成和分工又是什么样的呢?
4.主导开源项目的企业获得了什么样的收益?
第三代,本身可能拥有基础软件属性,且能够提供云服务的Open Core模式和基于开源的商业 产品,可以在商业上形成闭环。可以说,Open Core和基于开源的商业产品加上云原生(Cloud Native),是开源商业化大爆发最为重要的内在因素。其外部因素就是在数字经济的驱动下,这个模 式形成了飞轮效应。
《2022中国开源发展蓝皮书》提到了多种开源项目的商业模式,特别提及了Open Core和云原生已成为开源主流。Open Core的意思大概是,企业划分项目的开源部分和非开源部分,通过非开源的外围获取直接收益。我的理解是,如华为的OpenHarmony是开源的,但其捆绑在搭载Harmony操作系统(包括云服务、应用商店)的硬件终端上进行销售,华为一方面可以利用开源社区不断打磨操作系统内核,拓展操作系统生态,另一方面利用系统竞争力提升硬件产品竞争力,这可能是开源收益的一种方式。但对于规模相对较小的项目,或者无法捆绑销售的软件项目,或者是平台类的项目,拓展商业收益的模式似乎不甚明晰。尤其是对于基于开源项目的中小企业来说,缺少其他盈利手段,仅凭开源项目实现盈利似乎需要很大努力。
5.本科生参与开源项目提升自己的路径?
大家都讲Talk is cheap, show me the code,但对于我这样的本科生来说,似乎还需要再进一步提升自己的技术能力才能参与到大型的开源项目中去?很多文章都提及开源的经历对于作者个人的帮助,那么对于本科生而言,是否需要从较易的项目入手,逐步在开源社区提升能力?开源项目与学校的课程间如何结合?我应该在开源项目上投入多少精力?我们的课程基于GitHub进行团队协作开发,是否也可以认为是开源项目协作的模式?