wenyan-lang/wenyan

关于采用中文实现编程实用性的想法

YuMao233 opened this issue · 3 comments

这是一个很有趣的项目,也是一种尝试。不过关键字确实过于啰嗦,可能也只能成为一个玩具,当然这个玩具也十分有意思,以至于我感叹现在才发现它。

中文编程,依然任重道远,也有可能它根本不需要,因为在现有计算机下的软件开发已经形成了成熟体系,不再准许一个非英文的编程语言出现并融入这个世界。

不过在未来前往宇宙探索时代,**的飞船或者基地运维,是需要无数的代码来支撑这个服务,由于航天领域属于半个军事领域,通常会拥有一定的非开放性,编程的代码也极有可能是针对特定硬件编程,而不是通用软件开发,这样的话,中文编程开发便有了存在的意义。

未来几十年,可能会有很多人为航天科技硬件编程,军事设备编程,这种领域都是针对性开发,很有可能中文编程会有独特的用武之处,中英文输入法切换问题或汉字输入麻烦问题自然会得到解决,再从军事方面适应到民用硬件,以后低轨道基地工厂,月球基地里面的电子设备,也是可以用到这种中文编程的。


个人认为最好的写法是关键字全部两个字以内,否则不具备实用能力。并且不要完全放弃字母和计算符号,因为在数学领域,这些都是通用的,不需要非得用中文表示大小(如:大于,小于)。

并且由于中文的多音字和中英文输入法切换,可能需要辅助插件才能解决这个问题。输入如果通过字形输入法会更好,比如五笔输入法,不基于拼音,不过这个会加剧开发人员学习成本。

此处是随便想象的一段伪代码,语法类似于 Python 格式与 Java 声明格式。


定 标准 于 “标准库"

数 A = 3
数 B = 4 // number
辑 旗帜 = 假 // bool
文 测试 = 空 // string
数[] 测试数组 = [1,2,3,4,5,6,7,8,9]

// if
若 A > B
    标准.显(A) 
则
    标准.显(A) 

// while
循 A != B
    A += 1

// 数组循环
循 i=0; i<测试数组.长度; i++
    标准.显(测试数组[i])  
    
// 类定义
类 管理员 继 用户 // class admin extend user
    私 文 用户名     // public username:string
    公 辑 是否管理 // public  isAdmin:bool
    
    函 下线(数 下线时间戳) // function xx(time:number)
        返回 “用户${本体.用户名}于${下线时间戳}下线”
 
// 中文的一大优势就是每个字都有单独的意思,不像字母脱离上下文就失去了意义。
// 所以很多事情,都可以通过简单约定实现关键字全部为一个字,并且很容易成为助记符。

个人认为代码一致性、可读性的优先级高于绝对简短程度。
像本项目这样跳出现今流行的英文语言语法、尽量利用中文特性和使用习惯的设计很有启发意义。
另,借鉴自然语法的抚子日语编程语言已用于中学教学,可供参考。个人之前一点粗浅尝试 在此

个人认为这个代码似乎有点像e语言了

我认为文言是一个很特殊的语言,甚至可以说是独一无二的语言,因为它不再是拘禁于如 @nobodxbodon 大佬所说的「英文语言语法」编程了。因此我认为若要如大佬代码那样的话,似乎就失去了文言这个语言的内味

I suppose there are still space of improvements...
I made my attempt: https://github.com/ProjectDimlight/RuCalculus/blob/main/samples/%E5%BF%AB%E6%8E%92.%E5%85%A5
Maybe lambda calculus fits Classical Chinese more?