感谢CSDN的送测
《新程序员005:开源深度指南 & 新金融背后的科技力量》
是一本以计算机编程和金融科技为主题的杂志书,由中国最大的开源社区之一的开源社主办,内容丰富多样,包括了众多知名开源项目和工具的介绍,同时也涵盖了金融科技领域中新兴技术以及相关行业动态的分析和研究。
该杂志主要分成两部分,第一部分是“开源深度指南”,介绍了多个优秀的开源项目如何应用于实际项目中,并提供了详细的教程和案例分析;第二部分则是“新金融背后的科技力量”,着重从技术角度对新兴金融行业进行全面剖析,涉及区块链、人工智能、云计算等技术领域在金融行业中的应用和前景展望,更全面地为读者揭示金融科技行业的发展趋势和创新思路。
什么是开源
“开源(open source)”这个词,指的是事物规划为可以公开访问的,因此人们可以修改并分享。
这个词最初是起源于软件开发中,指的是一种开发软件的特殊形式。但到了今天,“开源”已经泛指一组概念——就是我们称之为的“开源的方式”。这些概念包括开源项目、产品,或是自发倡导并欢迎开放变化、协作参与、快速原型、公开透明、精英体制以及面向社区开发的原则。
开源是一种软件开发模式,它允许代码的自由分发和使用。当一个软件项目被开源时,这意味着该项目的源代码是公开可见的,并且任何人都可以查看、使用、复制和修改该代码,前提是遵循特定的许可协议。这种开放的方式促进了互相学习、改进和合作,使得软件生态系统更加繁荣和健康。目前,开源软件已经成为计算机领域的重要组成部分,广泛应用于各种操作系统、编程语言、数据库以及其他各种工具和应用程序中。
开源软件的发展得益于许多社区的支持和贡献。这些社区不仅提供了代码的自由分发和使用,还有助于确保代码的质量和安全性,并为自由软件开发者提供了一个合作学习的平台。同时,开源软件也推动了创新和技术进步,使得各个行业都能够更加灵活和高效地使用技术工具。开源软件的成功证明了“众人拾柴火焰高”的道理,也为未来的科技发展提供了更多可能性和机遇。
开源模式出现于20世纪90年代,早期主要由少数追求自由与共享的软件开发领军人物出于个人兴趣推动.经过30多年的发展,开源模式在快速占领市场、广聚研发人才、绑定下游应用、掌控产业生态等方面形成了巨大优势,成为国际巨头争夺软件产业生态主导权的“金钥匙”.2005年谷歌公司通过收购安卓公司从而掌控了安卓手机产业生态;2010年甲骨文公司收购了开源数据库 MySQL,增强了其在数据库领域的领先地位;2018年微软公司收 购 了 全 球 代 码 托 管 平 台 Github;2018年IBM 公司收购了开源软件供应商 RedHat,增强了其在服务器市场的竞争力.微软、甲骨文是典型的闭源软件公司,早期是开源软件的坚决抵制者.近年来,闭源软件龙头企业对开源软件的态度发生根本性改变,其背后的业务逻辑是通过开源快速抢占市场,形成下游应用黏连,从而掌握软件产业生态的主导权,争取更大的商业利益。
我们为什么要开源
开源的意思是将软件的源代码公开发布,让任何人都能自由地查看、使用和修改。开源有很多好处:
-
提高软件质量:开源能够让更多人参与到软件开发中来,不断地改进和完善软件,从而提高软件的质量。
-
加快开发速度:开源能够让更多的人参与到软件的开发中来,这样会加速软件的开发速度。
-
降低成本:开源使得软件的使用和开发变得更加经济实惠,因为没有使用和修改商业软件时所需支付的高昂费用。
-
促进技术的创新和传播:开源使得更多的人能够分享和学习先进的技术方法和实践。
-
提升社区互助精神:开源软件社群中存在着互助、分享的文化,这可以激发参与者对技术的热情和动力。
开源不仅有利于软件行业的发展和创新,也有利于个人的学习和发展。
开源的好处与坏处
开源的好处:
-
提高软件质量:更多的人参与软件的开发,可以不断改进和完善软件,从而提高软件的质量。
-
降低成本:相对闭源的商业软件,开源软件通常免费,可以降低使用和开发软件的成本。
-
促进技术的创新:开源软件社群中存在着互助、分享的文化,这样可以激发参与者对技术的热情和动力,促进技术的创新。
-
加速软件的开发速度:更多的人参与到软件的开发中,可以加速软件的开发速度,使软件更快地推向市场。
-
提高安全性:由于开源软件的代码公开,任何人都可以审查代码是否存在漏洞和安全问题,有助于提高软件的安全性。
开源的坏处:
-
某些开源软件可能存在用户界面或者易用性方面的缺陷,在开源社区中难以得到重视和解决。
-
开源软件很容易被攻击,因为恶意攻击者能够查看源代码来发现并利用软件的漏洞。
-
社区参与者的贡献水平不一,有些人只是为了交流和学习而参与,难以保证人员的素质和能力。
开源软件既有好处又有坏处,需要在具体情况下进行权衡和选择。
为什么人们更倾向于使用开源软件?
人们相对于专有软件更倾向于开源软件有很多原因,包括:
可控。很多人青睐开源软件因为相对其它类型软件他们可以拥有更多的可控。他们可以检查代码来保证它没有做任何不希望它做的事情,并且可以改变不喜欢的部分。不是开发者的用户也可以从开源软件获益,因为他们可以以任何目的使用这个软件——而不仅仅是某些人认为他们应该有的目的。
训练。其他人喜欢开源软件是因为它可以帮助他们成为更好的开发者。因为开源代码可以公开访问,学生可以在学习创建更好的软件时轻松地从中学习。学生还可以在提升技能的时候分享他们的成果给别人,获得评价和批评。当人们发现程序源代码中的错误的时候,可以将这个错误分享给其他人,帮助他们避免犯同样的错误。
安全。一些人倾向开源软件是因为他们认为它比专有软件更安全和稳定。因为任何人都可以查看和修改开源软件,就会有人可能会注意到并修正原作者遗漏的错误或疏忽。并且因为这么多的开发者可以在同一开源软件上工作,而不用事先联系获取原作者的授权,相比专有软件,他们可以更快速地修复、更新和升级开源软件。
稳定。许多用户在重要、长期的项目中相较专有软件更加青睐开源软件。因为开发者公开分发开源软件的源代码,如果最初的开发者停止开发了,关键任务依赖该软件的用户可以确保他们的工具不会消失,或是陷入无法修复的状态。另外,开源软件趋向于同时包含和按照开放标准进行操作。
我国软件产业在21世纪初开始大规模追踪学习国外开源软件.一是从贡献角度看,我国已经成为国际开源社区的重要贡献者.Github2020年4月的统计数据显示,我国源代码贡献度已经跃居全球第二.华为公司在国际开源社区的贡献度较高,华为腾讯、阿里巴巴等公司成为 Linux基金Apache软件基金会等国际主流开源基金会的白金会员.二是从创新路径上看,我国的鸿蒙、欧拉、麒麟、统信等操作系统是基于开源的内核代码进行的二次创新。
以开源模式推进基础软件创新可以提高 技 术 起 点、加 快 研 发 进 程、兼 容 业 务 应用、降低替代难度,是基础软件实现自主创新突破的现实可行路径.三是从自主创新上看,欧拉、鸿蒙社区已经形成技术分叉能力openEuler操作系统内核能够做到自我维护、自我演进.从总体上看,我国已经形成了基于开源模式的二次创新能力.
![在这里插入图片描述](https://img-blog.csdnimg.cn/4693cdd5ac2a467d8481fe69de81f986.png#pic_center
从开源软件使用者的角度出发开源软件具有以下几个优势:
1)具有较高的灵活性。开源使用者可以根据自身需要对软件进行定制,以满足其需求,从而赋予更多控制权。
2)更好的社区支持。开源软件通常会有论坛和由开发人员组成的社区,这些社区会针对出现的问题进行修复和更新。从中获得改进的支持。
3)稳定性。开源软件能够应用于周期较长的项目,即使作者停止使用它,也不会从市场上消失,因此更加稳定可靠。
4)相对较低的费用。开源软件购买成本往往低于同类专有软件,甚至许多开源软件是免费的。
但当前开源软件的使用者普遍存在以下几个误区:
1)开源软件是免费的。开源并不意味着完全免费,开源许可证给出了使用和修改条款,必须在许可下进行合理使用。
2)开源软件相对于专有软件更加安全。攻击者时常利用开源软件在软件供应链中不可或缺的地位,通过依赖项管理器在软件生命周期中的自动解析,造成了针对软件供应链的攻击。
3)开源软件的使用不用遵守任何规范。错误地使用没有获得许可的开源软件可能会带来知识产权方面的诉讼,使用开源软件必须遵守相关的软件许可的条款。
开源软件社区用户知识贡献行为研究
开源软件(open source software,OSS)是指聚集大量用户的集体智慧共同开发、不断完善所得到的软件,其通常是免费、开放、共享的。如Linux、Android、Apache、MySQL等都是OSS的代表。相较商业软件,OSS作为一个热门概念,近年来获得了企业的广泛关注。知名互联网企业如Facebook、Google、阿里巴巴等应用大量开源软件,在技术架构中得到了广泛采用。开源软件社区为用户提供了高效交流、共同开发和分享OSS的平台,Github是其典型代表。但其他众多开源社区还存在用户参与度不够、高质量项目缺乏、维护问题等问题。用户积极参与特别是贡献知识是决定开源社区成功的关键因素。开源社区建立于成员的自愿分享软件或代码行为基础上,管理者亟需了解影响用户分享的显著因素,以促进用户的积极参与和分享。
国内开源突出贡献
宫敏把自由软件和 Linux 带回中国
宫敏(Gong Min)是中国自由软件和开源社区的重要人物之一。他曾经将自由软件和Linux引入了中国,创立了国内第一个开源社区,并在互联网技术、开源社区、语言学习等领域做出了很多贡献。
宫敏曾就读于美国密歇根大学安娜堡分校,获得计算机科学硕士学位。1998年,他回到中国,成为了北京大学信息科学技术学院的助理研究员,开始致力于推广自由软件和开源社区的发展。当时,国内几乎没有人知道自由软件和开源社区的概念,但宫敏认为这是一个非常有前途的领域,于是开始在中国推广这个意念。
宫敏创建了中国第一个开源社区——北京GNU/Linux用户组 (BLUG),并成为了该社区的主席。 BLUG在当时非常活跃,吸引了很多爱好者加入,并在中国推广了Linux操作系统以及自由软件的概念。宫敏还积极参与了很多国内外自由软件项目的开发和翻译工作,为中国自由软件和开源社区的发展做出了很大贡献。
除了自由软件和开源社区领域,宫敏还在互联网技术和语言学习方面做出了很多工作。他曾经推广过RSS订阅和博客文化,并创建了英文学习社区LivingInEnglish.net,设立中国大学英语水平考试(CET)在线辅导课程等。
宫敏是中国互联网和开源社区的重要人物之一,为中国IT行业和互联网发展做出了很大贡献。
1994 年,北京,国内贸易部正在建立 VSAT 信息发布平台,没有互联网,包括主站在内的很多应用都在 Windows 系统上运行,性能很差,问题频发。回国休假的宫敏看后说道:“咱们试试这个”,就拿出自己从芬兰带回的 SLS Linux 发行版系统,装上后,贸易部的同行惊讶道:“这个系统一装,怎么感觉我的 PC 变成工作站了!”高兴得不得了,“这东西哪来的?”“自由软件是怎么回事?”“唉!可惜咱们接触不到这东西呀!”宫敏说:“会接触到的,我能让你们接触到!”
这神奇的系统,是宫敏在赫尔辛基理工大学做研究时发现的。他在构建新的分布式并行计算模型,需要用到 IP 多播协议,可没有操作系统能支持这个 IP 协议,在浏览教育科研网的 FTP 时,突然出现的 Linux Kernel 引起了宫敏的注意,他的分布式并行处理有些东西要在 Kernel 里做,“这玩意儿有点意思!是赫尔辛基大学二年级的学生 Linus Torvalds 写的,自由软件、源代码开放、运行自由修改和散发,太好了!”
可此时,Linux 的状态还做不了什么。
一年后,网上一些人拿出了一个叫 SLS 的 Distrbution(Softlanding Linux System,最早的 Linux 发行版之一),“这大概是 Linux 最早的一个 Distribution”,宫敏拿过来开始安装,下载了内核代码,发现可以支持自己需要的 IP 多播协议,研究工作进一步推进,“加进来经过修改原先的 Bug 之后就好用了,这东西可太好了!”“如果以前做地面站的时候有它,我的系统会做得非常漂亮。”
同时,他认为中国应该很需要这个东西。
一次,宫敏去瑞典计算机科学研究所(SICS,Swedish Institute of Computer Science)做交流,大家聊天时谈到瑞典比芬兰更发达,可为什么 Linux 会出现在芬兰,而没出现在瑞典?其中有个人说:“是因为全世界最大的软件库 Archive 在芬兰,芬兰的学生、老师有机会接触到全世界几乎所有的源代码,所以这里的人思路开阔。”大家也认同这种观点。
宫敏受到启示,“我得把这东西拿到中国,让中国人也能接触到它。”
…
-
阿里巴巴:阿里巴巴集团旗下的很多开源项目都得到了广泛关注和应用,如Dubbo(分布式服务框架)、RocketMQ(消息队列中间件)等。这些项目在国内外企业中得到广泛应用,为提升技术水平作出了突出贡献。
-
腾讯:腾讯公司也拥有众多知名的开源项目,例如TencentOS(腾讯云操作系统)、WePY(微信小程序框架)以及Angel(大规模机器学习平台)。这些项目在云计算、移动开发和人工智能等领域产生了深远影响。
-
华为:华为在开源领域也表现出色,推出了HarmonyOS(鸿蒙操作系统)和MindSpore(AI计算框架)等重要项目。这些创新产品有助于提高中国在全球科技竞争力。
-
Linux Deepin:Linux Deepin是由国内团队开发的一款基于Debian的Linux发行版,它采用了自主研发的DDE(Deepin Desktop Environment)桌面环境,为用户提供了美观、易用的Linux体验。
-
开源个人:在国内开源社区,许多杰出的个人也为开源事业作出了贡献。例如,“月影寒江”(GitHub用户名:hustcc)是一位知名的前端开发者,创建了很多受欢迎的开源项目,如echarts-for-react(React封装的ECharts组件库)等。
开源是怎么一回事,对中国的意义是什么?
宫敏:我只表达自己的观点。实际上在理查德·马修·斯托曼(Richard Matthew Stallman)看来,开源这个说法很不精确。2005 年,科技部委托我代表中国去柬埔寨暹粒市参加联合国开发署亚太地区的开源论坛,会上有人播放了一段 Bruce Perens 的视频,他是开源概念的提出者之一,谈他是怎么看开源和自由软件关系的。
在那段视频里,Perens 说,在他看来这两个东西大致是一个意思(More or less the same),只是开源的概念让人更容易理解,这是否代表现在开源的普遍概念,也不一定,至少是 Perens 的一家之言。
鉴于他是开源这个词的发起人之一,他的看法应该也有一定的代表性。要是按照 Perens 的说法,我们姑且认为开源软件和自由软件基本上就是一回事。另外,我也看到一些开源组织的统计数据,它们定义了一个开源的标准,在所有符合开源软件标准的软件当中,自由软件大概占了 60%以上,这样是不是可以认为,自由软件是开源软件的一大组成部分。
实际上在很多基础性、有代表性的开源软件当中,基本上是自由软件。操作系统、编译器,甚至包括 FirmWare 固件,都是以自由软件的信息形式存在的,尽管自由软件是一个小集合,但它是开源软件当中相当大的一部分,应该是超过 50%的。如果我们从基础性来看的话,自由软件应该是更重要一些。
我一直是认为我们国家最弱的不是你能玩出花来、短期能挣很多钱的上层应用,恰恰底层系统是我们最弱的部分,要加强我们的底层系统。自由软件是一个非常好的学习对象,因为有自由的编译器和工具链,包括 Linker、汇编器,这些东西包括操作系统 Kernel、Shell,和上面的 Utilities,这些东西构成了一个最基本的操作系统,那么这些东西应该是以自由软件为主的,虽然说有 BSD 那个更宽松的也不错,你愿意学也没问题,但现在从活跃度上来说,最活跃的还是 GNU/Linux。
在活跃的情况下,你往往通过讨论能学到很多东西,包括与人交流的方式,这个我觉得也是需要学习的。早年间我看到国内有人参加研讨会,上来就说,我希望你能够加入这个,加入那个,我觉得这个可能不是研讨的方式,你凭什么告诉别人他应该做什么?正确的方式是,你要觉得这个事情很有必要,你就把它做了,然后拿出来讨论,源代码也是对你开放的。
你可以做得不是太好,来征求一下他人的意见是可以的。所以什么是开源文化?是一帮人在一起应该怎么互动,这些都是需要学习的。社区里面也没有那种,我是头儿,你们都得听我的,那凭什么呀?你愿意做什么你倒是做呀,凭什么让我做呀?
这是我们所欠缺的文化之一。
另外,我刚回国的时候,教育部搞过一次 Linux 相关的教材的审定,也请我去,我说这个教材的审定可能不是我们几个人坐在这儿拍拍脑袋就可以审的,这些教材有哪些学校用过?在教的过程当中有什么经验和教训?它到底好在哪里?这些也要考虑,所以可能不是先着急审定一批教材,而是让大家把现有的教材先用起来,然后根据使用情况写出文章,老师对这些书都会有评价的,把几本不错的书取长补短,来编一本是可行的。
你看自由软件,包括开源软件很多发展都是自下而上的,并不是谁下了一个任务,你给我做一个东西。
这些话我希望大家能听进去,有很多事情我也是反复讲,很多年以后,我发现越来越多的人的说法,跟我的说法越来越像了,这个就是成功不必在我吧。
刘韧:为什么开源在中国还没有很好地开花结果?
宫敏:我可以用更积极的说法来讲,应该是越来越好了,比如你去看 Linux Kernel 里的贡献者,中国人的名字越来越多,所以我用积极的方式来说还是越来越好了,可能这个速度不像有些人期望得那么快,可它毕竟在向前走。
二十几年前,我说开源的时候,很多人都怀疑:“这个家伙到底在说什么?他是骗子吧?”现在已经不是这样了。
从这个方面来看还是有些积极的进展,确实这个东西对很多人的价值观,对社会构成、行为模式是有颠覆和冲击的,要理解和接受它是有困难的,现在大家是在逐渐接受。
也有很多人说自由软件就是各尽所能,各取所需。后来我跟斯托曼聊天,他也一直在强调自由软件的关键不在开源,而在自由。
他还说很多的软件公司实际上在做的是殖民主义在对人群进行分割(segregate),这样不好,自由软件的实质是让大家团结一心,不能各打各的小主意。
所以我认为,我们是能学到不少东西的,把这些东西真正学到手,就像你念了很多书之后,可以自己写书,在你自己的书里,你可能引用其他书里的话,只要在文中注明出处,这不影响它是你的作品,但你要是没有这些修炼,你想一下子写出一本好书来,恐怕不太可能。
要写出好软件,你就必须读过很多好软件。
刘韧:你怎么评价 Linux 对世界的贡献?
宫敏:我认为 Linux 的胜利是自由软件的胜利,因为 Linus Torvalds 拿出他第一版 Kernel 的时候,许可证不是 GPL,很多人就劝他如果用这种方式许可的话,你的东西是不会有前途的,没人跟你玩儿。
他听劝之后就改成了 GNU GPL,事实表明这个决定是正确的,这也从一个侧面反映出许可证的精神条款对你的东西能否发展、活跃的重要性。举个例子,BSD 的条款比 GPL 条款要宽松很多,可是你也看到了极度的宽松,并不能使它很流行;极度的不宽松,也不一定能让它很流行。从这个角度来看,斯托曼的 GNU GPL 把人性拿捏的比较好,所以与其说 Linux 的胜利,不如说是 GNU GPL 的胜利,是社区的胜利,组织方式的胜利。
中科大“开源之夏”项目介绍
https://summer-ospp.ac.cn/help/student/(学生操作指南)
https://space.bilibili.com/2010658923(项目官方B站)
开源之夏是什么活动
开源之夏是中国科学院软件研究所发起的开源软件供应链点亮计划系列暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。
学生可自主选择感兴趣的项目进行申请,中选后在项目开发者(社区导师)的指导下进行开发。根据项目的难易程度和完成情况,结项者将获取开源之夏活动奖金和结项证书。
开源教育的未来发展
开源教育已经成为当今全球教育领域科技創新的热点之一。未来,开源教育有如下几个发展趋势:
-
开源教育平台化:随着更多的人参与到开源教育的建设中来,各种开源教育资源和工具会逐渐形成生态系统,孕育出更完善、更全面的开源教育平台。例如 edX、Coursera 等在线教育平台,以及 Open edX、Moodle 等开源教育平台已经开始体现这一发展趋势。
-
课程内容丰富多样:开源教育将有更多的课程类型和知识领域,涵盖从幼儿园到大学、职业培训、社区组织和企业等广泛领域的多层次教育课程,其中包括 STEM 等专业性课程,还有如何使用数字技术、云计算、区块链等最新技术工具等内容。
-
双向互动式教育:在未来,开源教育将更关注于实现师生之间的互动、分享、合作学习,并在此基础上进一步构建更加完善的教育生态系统和资源库。
-
教师和学生能力提高:开源软件和技术将会成为未来学校教师和学生必不可少的基础课程之一,同时学生和教师在使用开源技术的过程中也将提升其相关技能 ,对区块链、人工智能等新兴领域进行深度应用或研究。
-
产业化合作:随着开源教育的不断发展,各种教育企业也开始关注这个市场,并与国家级机构和高水平研究机构共同合作,在教育科技的研究、开发以及推广方面积极探索。
MySQL 之父 Monty对中国的开发者说的建议:
在你热爱的领域多花时间。如果你喜欢编程,那么你就得开拓自己的领域,从你当前的项目开始寻找更多的可能性;不要将自己拘束在一项任务上,试着对自己的领域了解更多,试着参与到社区当中,和不同的人互动。总而言之,尝试承担更多的责任,尝试做你最擅长的事情。MariaDB 的开发者很喜欢与客户互动交流,因为只有和客户直接接触,你才能了解到客户的需求,并且从客户那里获取反馈;在这个过程中,你会获取成就感和满足感,并从自己的事业中感受到热情。如果是在以前,沟通交流也许较为困难,甚至不起作用;而现在,开源使这一切成为了可能,所以,去参与开源项目吧!