仓颉语言开发者的100张面孔——第五期

01 我是谁?

@Lin_Qing_Ying

我是一位全栈开发者,也是开源世界的坚定践行者。我的技术背景涵盖前端、后端与数据库,始终怀揣着对代码世界无限热爱的激情。

02 结缘仓颉

22 年 3 月的某一天,在浏览技术社区时,我无意间看到仓颉的消息。出于对国产编程语言的兴趣与展望,我开始深入查询相关资料,奈何信息寥寥无几。但我不想就此放弃,于是疯狂地寻找内测渠道。终于,我找到了申请内测的方法,填写申请、签署保密协议,苦等半月后,成功加入了内测社区与微信群,拿到了仓颉的 SDK 与文档。

彼时,我满怀欣喜,决定用仓颉重温 C 语言的学习路线。不得不说,仓颉的语法现代、易懂,结合了多种编程语言的优点,极易上手。

MySQL 驱动的执念

当我在社区的三方库规划中发现 MyBatis 时,曾试图将 Java 的动态代理魔法注入仓颉的静态类型体系。在解析 MyBatis 源码的深夜,工厂模式与接口绑定的精妙设计让我惊叹,但仓颉缺失的反射机制如同锁死的保险柜,所有基于注解的 SQL 映射方案都成了纸上谈兵。那些反复推翻的类关系图,最终堆积成了废弃草稿文件夹里的二进制残骸。

转机出现在某个凌晨三点。屏幕冷光映照下,我忽然意识到一个缺口:仓颉标准库的数据库接口就如等待星星的夜空,当前生态中还未有一颗星辰尚未点亮--数据库驱动尚未开发。这个发现如同冷水浇醒梦中人,每当新版本发布时,它就像候鸟掠过湖面般轻触社区的涟漪,却始终没有人去填补。

直到 23 年盛夏,某种未完成的执念在蝉鸣中复苏。但这次,我选择潜入更深的协议层,将 JDBC-MySQL 驱动拆解成数万行代码的拼图,在仓颉严谨的语法规则中重新拼合。从握手协议到数据包校验,每个字节都在 WireShark 的监控下无所遁形;为处理 BLOB 类型转换而构建的缓冲池,更曾让测试服务器的内存曲线演绎出过山车般的起伏。

历经两个月昼夜奋战,所有基础功能终于完善;紧随而来的一月零散时光中,我为其镶上了 SSL 加密的铠甲,并构建了严密的事务管理机制。当第一个 SELECT 语句带回正确结果的那一刻,窗外的梧桐叶已从翠绿转为金黄。

然而,没有人催促更新的压力,动力也就随之消逝。如今社区的第三方库百花齐放,MySQL 驱动层出不穷,而我的驱动也像退潮后搁浅的旧船,锈迹斑斑地静静凝望着远去的海平面。

从 VSCode 到 IntelliJ——新梦想的诞生

在开发 MySQL 驱动期间,使用 VSCode 进行开发让我深刻感受到它与IntelliJ IDEA 强大能力的差距。这种感受激发了我一个梦想:打造一款功能强大、智能便捷的 IntelliJ 仓颉插件,构建出和 Java 开发环境一样友好的体验。

于是,我开始了 intellij-cangjie 的探索之旅。我深知,一个高效的编译器前端分析器是不可或缺的。尽管我对编译器前端的“三部曲”(词法分析、语法分析和语义分析)有所了解,但真正的挑战却远超预期。为此,我首先投入大量时间查阅开发文档、资料和官方插件模板,为项目打下坚实基础。

词法分析 → 语法分析 → 运行目标 → 调试目标 → 语义分析 → 依托语义分析的其他功能

  • 词法分析 阶段,我经历了大量重排与反复测试;
  • 语法分析 阶段,我深陷死循环和复杂的解析规则;
  • 运行目标 阶段,专注于编译器的封装集成;
  • 调试目标 阶段,我尝试了多种调试器继承方案,最终只能精简功能,转而实现基于 DAP 协议的调试支持。

在词法分析阶段,我经历了大量重排与反复测试;接着,语法分析阶段带来了死循环和层层迷惑;运行目标阶段则聚焦于对编译器封装集成的探索;而调试目标阶段,我尝试了多种调试器继承方案,结果屡屡未达预期,最终只能精简功能,转而实现基于 DAP 协议的调试支持。

最为关键的 语义分析 阶段悄然来临,但也充满迷茫——仓颉编译器并未开源,我始终找不到明确的实现标准。凭着那份不灭的执念,我开始借助 LSP 不断尝试,将语法与语义进行探索。当我成功解析出引用关系时,内心的喜悦一时间难以抑制。随后,我继续开发,添加了针对 生成类的快速修复功能。

然而,随着开发的深入,那份最初的喜悦逐渐被惆怅取代——实现的功能远未达到预期,甚至一度让我有了放弃的念头。于是,我不得不先行集成 LSP 与其他功能,待其他部分完成后,再回头重拾语义分析,但每次努力都仿佛浇了一盆冷水。如此循环往复,一年半的时光悄然而逝。

尽管历程充满波折与挑战,这段开发旅程却令我收获颇丰。每一次尝试、每一次失败,都是宝贵的经验积累,为未来的突破铺就了道路。面对未来,我依然怀揣热忱,坚定前行,期待有一天能将这款智能插件带给所有喜欢仓颉与 IDEA 的开发者。

项目地址:https://gitcode.com/Cangjie-SIG/intellij-cangjie

03 写给仓颉的三行情书

仓颉,你是算法中跳动的温柔心律,
每个字符都是你无声诉说的情诗,
愿我用代码细数,与君共赏那技术的浪漫。

欢迎关注"仓颉王学智"公众号投稿参与本系列,讲述你与仓颉语言的故事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值