从航模少年到最年轻创始理事,在开源世界里逐光前行|CodeMaster #2
CodeMaster#2
在开源的世界里,总有一些年轻人凭借对技术的热爱和坚持,走出了一条属于自己的道路。本期「CodeMaster 专栏人物」将为你讲述东北大学秦皇岛分校计算机专业大三学生陈朝臣的故事。他是洛书编程语言的发起人,也是编程语言开放社区(PLOC)的创始理事之一。初中自学编程,高中尝试写解释器,大学带领团队开发国产编程语言。
他的故事没有惊天动地的转折,却充满真实的探索与坚持。本期专栏将还原对话细节,带你深入探索这位 00 后开发者的技术世界,看他如何在开源江湖中逐光前行。
朝臣同学你好!非常开心能邀请你参与本期「CodeMaster 专栏人物」。先请你简单做个自我介绍吧。
代码君你好!我叫陈朝臣,是东北大学秦皇岛分校计算机科学专业本科三年级的学生。我也是洛书编程语言项目的发起人,编程语言开放社区(PLOC)创始理事之一、OpenKylin 社区 easylosu SIG 的 owner。我有大概五年的开源参与经历,从最初使用开源软件,到后来维护自己的开源项目、参与社区工作,开源已经成为我大学生活中很重要的一部分。
陈朝臣参加 2024 GitCode 开源共创大会 暨 G-Star 嘉年华
听起来你的开源经历十分丰富,能和我们讲讲你是如何与编程结缘的吗?
我最初是因为对航模感兴趣,在调试航模遥控器飞控参数时接触到类似程序的概念,开始探索编程。我的 helloworld 是使用 vb6 编写的,后来学习了 C 语言、C++ 。初三的时候,为了制作个人主页,我自学了 HTML、CSS 和 JavaScript。这些经历让我逐渐掌握了编程的基础知识,也让我对编程语言越来越感兴趣,之后就开始尝试自制编程语言。
你说开源是你大学生活中重要的一部分,你觉得学校环境对你的编程学习和项目实践有哪些帮助呢?
学校环境对我的帮助很大。一方面,在学校能系统地学习知识,不再像以前那样只凭兴趣自学,知识体系更加完善。另一方面,学校有实践课程,让我有更多机会写代码,将理论知识应用到实际中,提升自己的编程能力。
学校里也能找到很多志同道合的伙伴。高考结束后,我就想把洛书变成一个具有实际价值的开源项目,但是我当时意识到,凭我一个人是完不成的。上大学后,我认识了洪晓森学长,我们都对这个方向感兴趣,于是我们开始招募同学,组建了一支大学生创新创业的队伍。
一开始,大家主要进行技术开发,在竞赛和知识产权方面努力。大概过了一年多,项目基本成型,队伍里的同学就开始组建社区,对项目进行推广和宣传。在这个过程中,学校给我们提供了资金、场地支持,还开展知识产权相关的培训,帮助我们更好地进行项目开发和保护。
洛书编程语言是你参与的重要项目,它的名字有什么特别含义吗?
作为一个来自国内社区的编程语言项目,我们希望有一个具备文化内涵的名字。在传统文化中,“洛书” 是中国古代术数的源头,正如编程语言是搭建现代计算机世界的基石。《易·系辞上》有:“河出图,洛出书,圣人则之”之说,希望项目可以在发展的过程中,得到更多的关注与使用。也希望项目可以像 “洛书” 一样,在国产编程语言的发展历程中,留下自己的足迹。
你对洛书编程语言有着怎样的期待呢?
我们把洛书定位为一门轻量级的胶水语言,我们希望洛书最终能成为在某一个或几个特定领域比较好用的嵌入式 DSL 脚本引擎,提高项目的灵活性、扩展性和定制功能。考虑到团队人员、资金和时间成本,我们觉得做成像 Java 之类的全场景通用语言难度太大,所以专注于特定领域更符合实际情况。
可以介绍一下洛书项目团队的情况和开发过程中遇到的困难吗?
2019 年我个人开始做洛书项目,当时我刷到了一篇文章让我印象很深刻,标题是「自制脚本语言是编程语言的最高境界」。这句话很有煽动性,当时就觉得这是一件很酷的事情,于是就开始动手自制一个脚本语言。
2022 年上大学后,我们组建了创新创业队伍“汤洛小组”,进行洛书的开发与维护。当时团队核心成员有五位左右,我负责总体设计和写核心模块,还有同学负责编写运行引擎、拓展库以及接口。
在开发过程中,确实也遇到了很多困难。一是技术上的问题,编译器、虚拟机与标准库涉及的知识面很广,大家缺少足够的经验,只能慢慢摸索。另外人员方面也会发生变动,项目前期的时候知名度很低,大家对项目未来一片迷茫,一些成员选择退出。
那后来是怎么解决这些问题的呢?
2023 年暑假,团队决定把洛书变成一个社区化的项目,我们建立了属于自己的一个社区,社区包括了原有的双创团队、校外的贡献者以及合作伙伴,我们开始着重在开源领域参与一些社区活动以及交流分享,去打破项目运营局限在校园里引起的困境,慢慢达到一个良性循环。团队同学完成一个新的成果后,可以去参加学科竞赛检验技术的可用性,收获荣誉。同时也可以去申请知识产权授权,比如软著,来保护自己的成果。最后在作者自愿的前提下,可以选择把代码提交到社区,推进项目发展。
成天宇:社区核心成员,开发者; 社区模块建设负责人,来自校外的开源爱好者
在洛书的开发过程中,有没有哪些理论知识是团队通过实践才真正掌握的?
有很多。比如洛书要求可以在 Windows、Linux、RTOS、裸机四类环境下运行,跨平台编程相关的理论知识,我们都是通过实际代码来掌握的。再比如为了实现原生协程这一特性,我们根据操作系统相关的知识,设计了一套原创的算法,又用了半年左右的时间,提交了可以稳定运行的实现。
洛书编程语言主要应用在哪些领域呢?有没有比较成功的案例?
洛书目前最大的卖点为“轻量化”与“易用性”,洛书可以为资源受限的项目提供脚本语言编程能力,提升项目的灵活性、拓展性和定制性。同时,它上手难度低、定制性强,也可以基于它改造出 DSL,为特定领域赋能。比如在 IoT 领域,对比现有的一些脚本语言,洛书的资源占用更加轻量、拓展性与移植更简单,应用场景更灵活。
目前的洛书的应用大概分为两类:
一类是我们团队自己做的软件作品和工具,用于参加学科竞赛与创业竞赛,收获专业相关的成果。
另一类是对外合作,这里以可执行考鼎码(EC2)这门编程语言为例,它是 HVML 的作者魏永明老师发明的,用于少儿信息学启蒙的新兴编程语言,现在已经可以在线使用。
EC2 在线运行平台
EC2 项目的核心是解释器部分,负责运行 EC2 代码。这个解释器由我和洛书社区的另外两位开发者共同完成。我们通过对洛书进行改造拓展,删除了无用的特性,替换为 考鼎码 的原创功能模块。另外,为了提高用户体验,魏老师希望该语言能在浏览器中直接运行, 所以我们使用了支持 WebAssembly 平台的版本,并按照魏老师的要求实现了动画播放、语音合成、运算计数等有趣的功能。
从这个项目可以看出,洛书具有可靠性、灵活性和定制性,能够基于其核心语法拓展出适用于其他领域的 DSL,并移植到所需的环境中。
另外,我们计划发布洛书的首个 MMP(最小可市场化产品)。这是我们规划了很久的里程碑,预计在今年上半年就能与大家见面。有点像在带货(笑)
在洛书的应用过程中,收到过哪些反馈呢?
有好的反馈,也有一些批评。比如全局变量,局部变量与作用域问题,我们采用的是类似 JavaScript 的规则,对于部分用户来说可能不太符合直觉,提出希望我们能改成类似 Python 的规则。
如果把洛书编程语言比作一座建筑,你觉得它现在处于什么阶段?接下来有什么建设计划?
haha~我觉得洛书现在就像一座正在崛起的摩天大楼,地基已经稳稳地扎好了,我们的团队不仅能搬砖,还能保证砖块的质量,所以这栋楼的根基是相当牢靠的。现在,我们已经把一楼的“门面”盖好了,正在进行最后的装修。等今年上半年计划发布的 MMP 推出后,就好比是正式开门迎客啦。
不过,这只是一个开始。接下来,我们还得继续往上盖楼,把生态、框架和各种有趣的应用样例都加进去。简单来说,就是让这栋楼不仅有颜值,还有内涵,让大家都愿意来“入住”!
你希望洛书在未来给编程行业带来怎样的影响呢?
其实,我们不敢妄言要颠覆整个编程行业,那太“凡尔赛”了。我们更希望洛书能在一些具体的开发场景中发光发热,让编程变得更简单、更高效,真正体现出它的实用价值。同时,我们也希望洛书能成为团队成员成长的“加速器”,帮助他们积累经验、提升能力。更重要的是,我们想为国内那些对编程语言感兴趣的小伙伴们提供一个“练手”的平台,让他们能够深入了解编程语言的架构和运行原理。说不定,他们可以从这里受到启发,发挥创意,打造出属于自己的编程语言项目呢!
郭奕辰:社区开发者,原核心成员,现维护 zwpython 项目
你有提到你参与了很多开源方向的活动,有没有让你印象特别深刻的?
印象深刻的活动确实不少,但最让我难忘的还是两件事。
第一件事是编程语言开放社区(PLOC)的成立和建设工作,我有幸参与了社区的初期筹划和项目邀请工作,并成为了创始理事。PLOC是国内编程语言从业者和爱好者自发组成的共同体,社区成立后,我参与了很多活动,比如杭州的社区线下交流会,还见证了《国产编程语言蓝皮书》的编撰工作,这些经历让我对开源社区的运作有了更深刻的理解。当然我也参与了不少大型的开源活动,像 OS2ATC、G-Star 1024 嘉年华活动、COSCon'24中国开源年会等等,这些活动拓宽了我的视野,也让项目有了展示机会。
国产编程语言蓝皮书-2024
PLOC 社区的成员们目前达成了一个最大的共识,即每年发布一版国产编程语言蓝皮书,2023 年社区成立时就发布了第一版初稿,发布后,收到了很多反馈,例如,部分新的项目提出了被收录的期望,还有用户指出项目分类方式不够细致,并且缺少英文版本等问题。之后我们就采纳了一些建议进行了完善。自 2024 年下半年起,在大家完成申报工作后,我们着手进行了 PR 的合并、审核材料及页面排版等一系列工作。最近,2024 版蓝皮书已成功发布,在此,我们非常感谢 GitCode 平台给予的大力支持。
第二个是我们社区自身相关的。具体来说,我们今年参与 OSPP 2024,一项面向高校在校生的开源开发活动 。这是社区第一次参加这类活动。参与该活动时,我们需要申请报名,提供课题,聘请指导老师,还要审核开发成果。对于我们这样一个学生社区而言,这些工作其实充满了未知性。
方淼:社区核心成员,“汤洛小组”创业团队指导老师
在这个过程中,我们学校的方淼老师,从创业队伍刚起步就一直陪伴我们的指导老师,为我们提供了不少帮助。他从帮助我们完善申请资料开始做起,因为我们第一次提交的申请资料被驳回了,在方老师的建议下,我们对资料进行了完善,提交了第二次申请。随后就是选定课题,方老师还亲自担任了社区课题的指导老师。从 3 月份到 11 月份这几个月间,方老师一直在利用自己工作之外的时间,也就是他的休息时间,来帮助社区开展这个活动,非常感谢方老师!
在这些活动中,有没有结识到有趣的人或开发者?
有很多。比如今年参加 OSPP 和 GLCC 活动时,社区吸引来了两个贡献者,其中一个现在已经成为核心贡献者。还有在宣讲交流时,我结识了很多从业老师和同学。最惊喜的是在 GitCode 的开发者活动 G-Star Gathering Day 北京站中,我还结识了东北大学本校参与仓颉社区的两位同学,虽然大家参与的项目不同,但都对国产编程语言感兴趣,很有共同话题。
黄东桥:社区开发者,维护社区预编译器, OSPP2024 结项后加入社区
作为一名学生,课业负担通常比较重,你是如何平衡学业和编程语言开发的呢?
哈哈,这其实很简单,就是“挤”时间嘛!就像鲁迅先生说的,时间就像海绵里的水,只要愿意挤,总是有的。我会优先把课程和考试任务搞定,毕竟缺课或挂科会耽误更多时间。完成学业任务后,我就会利用课余时间推动编程语言开发,比如压缩自己打游戏、和同学出去玩的时间,把这些时间都投入到项目里。我觉得做项目本身就是一种很酷的娱乐方式,沉浸其中,乐趣无穷!
你的乐趣,与 CodeMaster 第一期的张引老师梦幻联动了(笑)现在很多大学生面临“理论大于实践”的困境,你在开源方面有丰富的实践经验,你认为应该如何打破这种局面,把握实践机会呢?
我觉得就两个方面。一方面是“抱老师大腿”,利用校内资源,老师一般都有实验室相关课题和实践项目,跟着老师参与科研项目,不仅能积累实践经验,还能混个脸熟,一举多得!另一方面就是”冲进开源江湖“,开源是很好的实践方式,就像 GitCode 这样的开源社区,里面项目资源丰富,能找到各个领域的成功案例。读代码能学规范,贡献代码能锻炼协作和沟通能力,要是能自己创建项目,那更是能全方位提升自己,享受项目从无到有、不断完善的过程。
能否给对开源感兴趣的大学生一些学习和时间规划方面的建议吗?
我觉得首先要以兴趣为驱动,在完成日常课业和科研任务之后,根据自己的兴趣和未来职业方向,主动去学习相关知识,积极参与开源项目。把开源项目当作是未来工作或研究的“实战演练”,坚持下去,你会收获很多。当然,学业永远是第一位的,一定要保证开源活动不会影响到正常的学业哈~
最后用一句话总结你的2024吧!
2024 对我来说是充满挑战与成长的一年,顺境不骄,逆境不馁,始终保持前行的动力。也祝大家新年快乐,GitCode 2025码力全开!
相关链接
Star for me :https://gitcode.com/cthree
EC2 在线运行平台:https://play.fmsoft.cn/ec2/
洛书 GitCode 仓库 :https://gitcode.com/cthree/losu-lang
zwpython 首页:https://zwpython.cn
写在最后
陈朝臣的编程之路充满了探索与实践,从初中时的编程启蒙,到如今的洛书编程语言项目,他始终保持着对编程的热爱与坚持。通过开源社区的参与,他不仅提升了自己的技术能力,还结识了许多志同道合的伙伴。未来,他希望通过洛书编程语言为业界提供实用价值,并为国内的编程语言爱好者提供一个实践平台。
成为 CodeMaster
「CodeMaster 专栏人物」聚焦开源界有影响力与创新力的人物,通过深度访谈挖掘他们开源旅程中的故事,展现其魅力风采。「CodeMaster 专栏人物」会在 GitCode 公众号独家发布,依托庞大用户群体和广泛传播渠道,给予参与者大量曝光,使其理念与成果在开源乃至整个技术领域产生深远影响。
如果你在开源领域拥有丰富的故事和经历,想要展现自我、收获成长,添加vx:GitCodeassistant,联系代码君报名「CodeMaster 开源先锋计划」,一同在这个平台上书写属于自己的开源故事,为开源事业发展贡献一份力量。
更多推荐
所有评论(0)