“科幻迷”开源软件开发者 —— 揭秘“仙童”、“动词算子”来历

发布于 2023/05/30 16:48
阅读 11K+
收藏 4

如果你经常关注开源中国的资讯版块,相信对下面这位开源软件开发者发布的内容应该不会感到陌生:

你可能也跟下面这名水友一样,疑惑这些从未见过的名词到底是什么意思。

同样的,我也对这个项目乃至作者感到好奇,惊叹于他的取名鬼才和极高创造力。如果你也同样好奇,那么请一定要读完这篇对这位作者的采访。


1. 请先自我介绍一下,可以聊聊你的个人喜好、从业经历、技术生涯和参与开源的体验等。

我是 Java 程序员沈戟峰(社区昵称“火箭船”),毕业于上海海事大学和同济大学,在两家印度外包公司 Infosys(印孚瑟斯)和 Cognizant(高知特)工作了十多年时间,也曾在国内的互联网和软件公司工作过。目前在一家小公司从事一些维护性的技术工作,不是很忙,所以有时间维护开源项目。

我喜爱阅读科幻小说,最初参与体验开源是从公开自己的学习项目开始。最早的开源项目是 Java 的 JMine 扫雷项目和 ClockSimpleJEE 项目。这两个项目现在在网上还可以查找到。

我还有一个翻起过浪花的项目是开源公司订饭系统,这是一个 PHP 项目,曾经在 PHP 网站上被追捧。

我最早参与开源是在各种技术论坛上。现在开源的技术基础设施比原来完善多了,但美中不足的是现在的开源技术论坛已经凋零了。

对于开源,我的看法是,如果你对代码技术有独到想法,但是没有多少经商天分,开发开源软件是实践你的技术理想的很好方法

下面是受访者最早开源的三个项目,最初发布在其他技术论坛。

https://gitee.com/jerryshensjf/JMine
https://gitee.com/jerryshensjf/ClockSimpleJEE
https://gitee.com/jerryshensjf/Food

 

2. 后来是怎样的机缘发现了开源中国社区,并且一直在上面持续运营开源项目。

2017 年,我在找一个项目托管的地方。CSDN 那时候有 git 托管服务,但是我用下来觉得做得并不好。后来我就发现了码云。

差不多同一时间,我在开源中国尝试性发表一些话题和资讯。后来,两个站点深度合作了,对用户很方便。所以就一路用到了现在。我的开发和推广主平台现在是码云和开源中国。

 

3. 你目前核心维护的开源项目是三个通用代码生成器:光、仙童、莲花。为什么选择了代码生成器这个赛道?另外,你提到过代码生成器显著提升了开发效率,有没有实测的数据支撑?

这事情说起来有点长,我在 2004 年发现了动词算子式代码生成器的原理。

2014 年,我把原理转化为实际的软件,即无垠式通用代码生成器,然后一路开发维护到现在。

代码生成器的效率如下,皆为估算值,未经实测,但经过验证。

  • 如果你有一个符合规范的 SGS2 文档,代码生成比手工实现同样的功能效率高数万倍。

  • 如果大家从零开始,代码生成比手工实现同样的功能效率高 1000 倍。

  • 如果是项目前期功能,截至到 CRUD 功能完成。代码生成比手工实现同样的功能效率高 10-15 倍。

  • 如果所有功能,完整开发周期。代码生成是手工实现同样的功能效率的 2 倍。

 

4. “动词算子”是你自创的概念,有什么含义吗?

动词算子式代码生成器是这一系列代码生成器本质上的原理的抽象而已。

下面的屏幕录像描述了动词算子式代码生成器的根本原理。你看了就明白,为什么要叫这个名字。

下载地址:https://gitee.com/jerryshensjf/InfinityGPGenerator/attach_files

相关博客阅读

 

5. 你的开源项目在取名方面挺别具一格,比如「仙童」、「和平之翼」、「时空之门」等等,颇有修仙和玄幻的味道,这些名字有什么来历吗,和大家分享一下背后的故事吧。

我是科幻小说的重度爱好者,对修仙和玄幻不感兴趣。当然这是民族性格,还是应该尊重。

对我印象最深的科幻小说是苏联叶菲列莫夫的《仙女座大星云》和阿瑟克拉克的《与拉玛相会》和《火与冰》。

这些开源项目名字也不是瞎起的。仙童名字来源于著名的仙童八叛徒——这是开天辟地的众神们的故事。没有他们,也许我们还在忙着插拔真空管。

和平之翼是一个和平组织的名字,时空之门是源于他的项目图片和科幻小说的影响。

 

6. 社区用户普遍都有一个疑问,为什么你发布的项目更新一直都是尝鲜、或者 beta 版?

实现赶不上想法,所以大半时间都在赶工,就是在开发阶段。因此我发布的很多版本只能归类为尝鲜版,Beta 版代表的其实是稳定版。但是,新想法和新功能构想会逼着你推出新版本,就是更高版本的尝鲜版。

你可以看看最早的动词算子式代码生成器:

https://gitee.com/jerryshensjf/InfinityGPGenerator_0_6_5

它没有三大变形功能群,也没有 Excel 模板生成功能,也不支持花式的数据导出,再看看最新版本的光或者仙童,这些功能是如何想出来的?

开发动词算子式代码生成器就像攀爬一棵魔法豌豆树,也许这就是科技树。你越爬越高,越是会解锁先进的功能。这些功能会渐渐显现。Linus 有一句名言,别人问他的开发计划,他说,他是泥萝卜,擦一段,吃一段。我是在豌豆树上爬一段,规划一段。

另外,最新的光 2.4.0 电音之王版本会支持日期和时间,支持水平和竖直的部分导出代码生成物,还支持上传两个模板,自动生成差异版本。即支持全程使用代码生成器。

我原来的确有开发光 2.3.0 文明的 RC 版和正式版的计划。但是实际上,文明版本还是终结于 Beta11。计划赶不上变化。

 

7. 在你投递的版本更新资讯里面用过下面这张图片,可以展开聊聊。

up-389c815ed0ce7471d493c81a7a4b53a833a.jpg

正如前面所说,仙童的名字来自仙童八叛徒,但是项目图片不可能使用安琪儿或者类似的东西。

所以,我需要一个民族风的仙童图片。这张图片是网上搜索的,是杨柳青年画的仙童,非常合适,也很漂亮。这张图并不简单,喜庆和传统的构图,但是你看看仙童的结构,是非常厉害的解剖学和绘画功底。

 

8. 你的开源项目现在有多少用户,贡献者呢?

我的所有代码生成器项目大概有 1000 颗星,300 多分支。我为项目合并过一个 PR。

另外,我有一个 QQ 群,总共 280 多人。有一些贡献者贡献过各种需求,在这里向所有为动词算子式代码生成器做过贡献的用户表示感谢。

 

9. 做这些开源项目是你的业余爱好吗?有没有相应的收入?

主要是业余爱好,没有靠这些爱好盈利。

我对未来功能演进是有规划的。但是商务方面,没有太多想法。

 

10. 看了你的开源项目,你涉猎的技术挺广泛(Java、Go、Rust、Python),能展开聊聊吗,比如你关注最多的领域。

我非常看好 Rust,可以以可以接受的速度开发高速和内核相同的语言开发 Rust Web 项目。以我开发莲花时对 Axum 和其他 Rust 技术的理解,这是一个重大机会。

虽然我现在的 Rust 水平是堪用水平,还没有太多项目经验。但是我对 Rust 编译器的严谨深有体会。

其实,通用代码生成器也是一种编译器,对我有参考作用。

 

11. 看到你有在关注最新的 AI 编程语言 Mojo,说说你对它的看法吧。

我注册了用户,收到了许可。但是还没有真正上手。我写过两个 Python 项目,之前看了有关 Mojo 的介绍视频,感觉它就是披了 Python 皮的 Rust。这个语言还不成熟,关注下就好了。

 

12. 对于目前的技术趋势(生成式人工智能)有什么看法?是否有计划为代码生成器集成对话式 AI 技术?

世人认为人工智能和代码生成器是竞争技术。我觉得,其实用 ChatGPT 类的对话式人工智能驱动动词算子式代码生成器,是一个很好的解决方案。我认为两种技术完全可以相互成就。

我会改进动词算子式代码生成器,自己也曾做过一个大数据和人工智能项目,都是 Python 项目。但对生成式人工智能,没有太多经验。

 

本次受访者(火箭船)的社区帐号主页:https://my.oschina.net/jerryshensjf

加载中
4
火箭船
火箭船

你根本没用过,用过,理解了,就不会有这样无知的见解了。

4
火箭船
火箭船

文中提到的阿瑟克拉克《火与冰》国内的常见译名为《冰霜与烈火》,是阿瑟克拉克的杰出中短篇科幻小说。

3
火箭船
火箭船

你如果能把自己胡诌的厉害名词实现出来,也是牛皮的。但是,你的东西根本没有实现 动词算子,棱柱,域对象都是有实现的,不是空洞的概念。

2
PSI
PSI

做代码生成器产品,需要很深的编译技术(就是写编译器的那些技术),再深入就需要写虚拟机的技术。如果产品介绍中能更多地使用计算机专业术语来说明产品本身的特色,会更容易让大家理解一些。

作者加油。

1
刘白白
刘白白

虽然项目没能用上,但是老哥的精神还是值得钦佩的!

1
Francesca
Francesca

这哥们说句公道话就是自娱自乐,别说动词算子这个词,这哥们早期还有“动态椰子树”这个新名词,看的我一愣一愣的,也不知道是什么鬼东西,现在不说这个词了。类似的还有什么“无垠式”,配上那个图,只能说两眼一黑,这都是些啥啊,确实过于沙雕了。造概念我也会啊,“脉冲式高阶复合流体函子模型表达式“,”电磁力逆量子曲率推进AI引擎“,知道这些是什么东西吗?,不知道吧,啊?你问我什么意思?我也不知道啊。

火箭船
火箭船
回复 @Francesca : 你还是用那种后台管理系统吧。他们代码生成后,代码里还留着一个代码生成模块。好像楼建好了,上面还留着一个吊车。
火箭船
火箭船
动态椰子树功能群现在也有啊。它说的是项目的包结构像一棵可配置的椰子树。不是很形象,很容易理解吗?
火箭船
火箭船
Java通用代码生成器光2.4.0电音之王版本TechnoKing已公布第一个尝鲜版。欢迎使用。 https://gitee.com/jerryshensjf/LightSBMEU/attach_files
火箭船
火箭船
回复 @lgscofield : 其实我认为,批评是可以的,喷也是基本RQ。但是,喷之前,你最好自己用一下。
火箭船
火箭船
回复 @Francesca : 你根本没做过,固然,界面是重要的。但是,功能,弹性和易用性也是重要的。不亚于界面。
下一页
1
火箭船
火箭船

其实,编译原理也是可深可浅。关键是要实践。如果你的编译原理理解深刻,东西做出来就好,否则,就没那么好。但是,如果不做的话,连挨砖的机会都没有。

0
zgldh
zgldh

大龄中二患者

0
火箭船
火箭船

Java通用代码生成器光2.4.0电音之王版本TechnoKing已公布第一个尝鲜版。欢迎使用。

https://gitee.com/jerryshensjf/LightSBMEU/attach_files

0
火箭船
火箭船

动词算子式代码生成器原理,手工代码生成视频重置版,请见:https://www.bilibili.com/video/BV1RP411q7AS/

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部