CodeMaster#1

进入 2024 年,国产编程语言领域迎来了新的探索与发展浪潮。其中,仓颉编程语言备受瞩目,其在编程体验优化、功能创新等方面展现出独特魅力,同时,高校与开源社区的积极合作,为仓颉语言的成长与应用拓展注入了强大活力。

GitCode 代码君有幸邀请到东北大学软件学院软件工程系的张引副教授做客首期「CodeMaster 开源创新先锋」,我们将与张老师一同深入探讨仓颉语言的发展现状与未来潜力,以及在推动仓颉语言教学与社区建设过程中的宝贵经验和深刻见解。

张老师,您好!非常高兴能邀请您做客首期 CodeMaster 专栏人物!首先,请您做一个简单的自我介绍吧

代码君你好!我在东北大学软件学院软件工程系任教。在开源领域,我长期关注开源社区项目,不断学习并转化为课堂教学内容。同学们评价我的课程内容与行业技术对齐度高,这让我很自豪。其实殊不知我一直在占开源社区的”便宜“~(笑)

说到仓颉编程语言,2021年,我偶然听闻华为在研发这门语言,之后便一直留意相关信息。直到今年开发者大会公布后,我通过在华为工作的硕士学生联系上仓颉团队,当天就获取了使用权限,深入学习后,我发现仓颉是一门非常有趣的语言,它让我重拾学习新编程语言时的兴奋感,那种当初学 C#、后来学 Kotlin 的特别开心的感觉又回来了,当时就想让学生们也学一学。

工作中的张引老师

所以接下来您就开始行动了吗?

对,我当时就想能不能尽快在学院开一门仓颉相关的课程。鉴于仓颉刚推出时其生态中开源项目较少,基于过往经验,我觉得学习最好的方法就是重新造轮子,别人做过的东西,你再重新做一遍。所以我想用同样的方法招募同学用仓颉实现初级开源项目,一方面为仓颉社区做贡献,另一方面让同学们成长。

很快招募到二十余名同学,带领他们挑选合适项目,在学习仓颉语言的同时,用其重新实现其他语言的项目。实践证明,结果这套机制运转得很好,既丰富了仓颉社区的项目资源,又助力同学们在实践中成长,很高兴能用这种方式把多年所学回馈给社区。

那么目前您除了在课程和推广方面与仓颉合作之外,还有其他形式的合作吗?

有的。我们学院成立了一个小开源社区,叫仓颉兴趣组。为仓颉社区贡献了不少项目。我还鼓励一些学生以仓颉开源项目作为毕业设计,既是一种约束,因为完成才能毕业(笑),也是一种新奇挑战,他们做的很开心。我还会带同学做自由探索的开源项目,目前有六位在做。也有同学利用业余时间自己开发,像有同学把大模型推理工具 llama.cpp 用仓颉重新实现,现在能用仓颉在 CPU 上对大模型进行推理,还有同学把 Go 语言的简易键值数据库搬到仓颉里。

来自仓颉兴趣组的两位同学(右二、右三)获得“ GitCode 贡献之星”荣誉证书

下学期我们计划将大型 Java 开源项目的仓颉迁移任务融入课程,让同学们少量贡献代码,体验开源社区的流程流程,像项目操作、提交 PR、代码审核、合并到仓库等,还能让自己名字出现在开源项目里。

我自己也把仓颉当成娱乐,工作不开心时,写一两个小场景调剂一下。记得小时候看的书上说过曾有伟人把做高等数学题当作娱乐,当时还很不理解。现在我理解了,因为我把写开源项目当娱乐了(笑)。

我比较好奇的是,您的学生在这个过程中都有哪些收获和体会呢?

我的观察是,同学们的成长非常显著。特别代码编写方面。起初许多同学代码风格比较粗糙,但在按照开源社区标准要求后,部分同学的代码尽管仍存在一些问题,但已颇具成熟工程师风范。部分基础扎实且参与过开源项目的同学对仓颉的函数式编程、协程、宏等特性特别有兴趣,还会积极分享技术探索心得;从事算法研究的同学则更关注仓颉底层数据结构特点。

其他同学也有一些收获,比如学会阅读技术文档,这在实际开发中至关重要,以往学校作业很少涉及,通过参与社区项目,同学们意识到主动研究文档的重要性。同学们还会探索如何编写符合仓颉语言特色的代码,这一过程体现了他们从工程师角度思考问题的能力,这是一种文化层面的成长。

因学校的作业不涉及,因此许多同学编程时很少关注序列化、反射、单元测试等实际工程开发必备的内容。但参与社区项目后接触到这些技术,有了全新理解,部分同学参与线上课程后称仿佛打开新世界大门(笑)。

您认为如何才能将开源文化更好地融入计算机专业教育中呢?

您的提到了“文化”这一关键要素。我们学校曾组织赴丹麦奥尔堡大学学习现代教育方法,我在那里深刻体会到文化在教育中的重要性。文化并非仅靠文字语言传授就能被理解吸收,通过这种方式传达的往往只是表面,难以深入人心并融入日常生活。因此,要将开源文化引入学校教育,最有效的途径是让学生深度参与开源社区运作,模拟社区模式实践探索,只有真正按照开源社区的模式让学生动起来,才能让他们感受到真正的开源文化,老师和学生应成为开源世界的一部分,而不是旁观者。

社区在仓颉编程语言生态的发展壮大过程中发挥了重要作用。那么,您认为普通开发者可以通过哪些方式积极参与到国产编程语言仓颉的生态建设中,并实现自身的成长呢?

对于已工作的开发者,虽然我对国内开源社区工作模式了解有限,但我能感受到越来越多人投身开源,公司通过KPI激励或个人兴趣驱动,大家都在为开源贡献力量,这也是一种中国特色的开源文化。我切实感受到中国的开源文化正朝着越来越好的方向发展。

所以,开发者若有时间精力,不妨尝试用仓颉编程语言开发项目。毕竟,地球上永远不多一门新的开发语言,也永远不怕多一个轮子,但仓颉编程语言值得去尝试!轮子不怕多。在实际开发中,不同编程语言社区对同一功能常有多种实现,用仓颉编程语言开发项目即便类似也有其价值。对于学生来说,仓颉是难得的机遇。在成熟的编程语言社区,缺乏经验的学生很难有发挥空间,而仓颉社区还存在诸多未开发领域。学生可从其他社区选取难度适中项目,用仓颉编程语言重新实现,

今年我们已经有好几位同学收到了 GitCode 贡献之星荣誉证书,他们感到既惊喜又惶恐,甚至怀疑自己是否真的有资格获得这样的荣誉。我告诉他们,应该坦然接受这份认可,因为他们证明了普通学生也能够为社区做出有价值的贡献。同时,他们也应该铭记这种惶恐的心情,以此激励自己为社区做出更多的贡献。仓颉社区和 GitCode 对学生微小贡献的认可,是一种“双向奔赴”,激励学生敢于走进开源社区。

您觉得在推动仓颉编程语言人才培养方面,高校、科研机构和企业开源社区应如何建立更有效的产学研合作模式?

这个问题我们可从不同角度分析:

从学习角度,主要针对本科生,仓颉有潜力成为计算机专业学习的关键线索。我曾设想,学生可用一门编程语言深入学习多门课程,如应用开发、服务器开发,同时理解操作系统、数据结构、数据库原理等。这样做能加深对语言的掌握,明晰其在不同领域的底层实现及应用,降低学习成本,避免知识碎片化,提升学习深度广度。尽管推广面临很多挑战,如教学资源调整、课程体系规划等,但长远来看,若能围绕仓颉构建课程体系,我相信高校会感兴趣并积极采纳。

从研究角度,涉及研究生和导师。此前仓颉团队希望与教育管理部门探索方向,如用仓颉实现关键科学基础设施,如科学计算库、模拟仿真软件等。关键在于如何确保基于仓颉的科研成果获学校认可,作为衡量工作量的标准,若解决此问题,我相信这将为相关研究工作的推进提供一个极具潜力的切入点,有力地推动仓颉在科研领域的应用和发展。

您觉得 GitCode 为您的开源项目推进以及计算机教育开展提供了哪些便利和支持呢~

我在使用中有非常切身的感受,首先就是首页 Readme 定制功能,等于说我们不用自己去琢磨网站的问题了,直接可以用来当作我们的网站,实际上我们也是这么做的,这个功能是我比较喜欢的。

还值得一提的是,GitCode 的客服是真人客服,响应非常快,这要为你们点赞!比如我们社区首页 readme 定制功能出现故障无法显示,我反馈后很快就接入真人客服,问题当天或第二天就解决了,这种高效的服务真的非常出色!

从平台功能看,GitCode 要素齐全,几乎涵盖开发所需所有功能,为我们提供一站式解决方案,大大提高效率。能找到一个工具,具备了你想要的所有东西,这不是一件容易的事情。

更何况 GitCode 的特色功能对学生友好,因为服务器在国内,速度快,网络延迟低;PR 机制设计合理,流畅好用,我们很快就掌握了操作。仓颉社区建议我们优化工作模式,并且已经计划在我们社区内积极推广 PR 机制,相信会帮助同学们更好地参与开源项目的贡献中。

相关链接

张引老师B站地址:

https://space.bilibili.com/15135791

Star for me :

https://gitcode.com/zhangyin_gitcode/naiveioc/overview

仓颉TPC仓库地址:

https://gitcode.com/Cangjie-TPC

写在最后

首期「CodeMaster 开源创新先锋」对张引副教授的采访中,我们全面知晓了仓颉编程语言在教学推广、社区建设等方面的实践与成果。张老师通过多种途径引导学生参与仓颉相关项目,助力学生成长同时丰富仓颉生态,并且针对开源文化融入教育、开发者参与仓颉建设、产学研合作以及 GitCode 平台优势等话题分享诸多有价值观点,为国产编程语言发展提供有益参考。

成为 CodeMaster

「CodeMaster 专栏人物」聚焦开源界有影响力与创新力的人物,通过深度访谈挖掘他们开源旅程中的故事,展现其魅力风采。「CodeMaster 专栏人物」会在 GitCode 公众号独家发布,依托庞大用户群体和广泛传播渠道,给予参与者大量曝光,使其理念与成果在开源乃至整个技术领域产生深远影响。

如果你在开源领域拥有丰富的故事和经历,想要展现自我、收获成长,请添加代码君vx【账号:GitCodeassistant】报名「CodeMaster 开源先锋计划」,一同在这个平台上书写属于自己的开源故事,为开源事业发展贡献一份力量。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐