-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
提一个新概念”汉字编程“ #42
Comments
对级别高低持保留意见, 个人更倾向于将它们看成不同方向, 而殊途同归. 已有的几个"长期"讨论主题基本对应:
索引: 用中文编写代码的实用开源项目
|
@nobodxbodon 对的,这个划分的方法就是为了方便概括目前正在进行的各项讨论和实践。可以很清晰的知道各个项目的特点和方向。随着讨论和项目的增多,也方便后来者集中精力,选择自己感兴趣的方向来贡献力量。 高低之分只是从最终代码量使用汉字的程度和是否符合中文语法习惯来划分的,比较客观,无贬义。比如有些人会认为汉化关键字意义不大,那可以不用去关注高级和终极相关的主题和讨论;有些人认为以现在的理论和技术水平设计不出终极的中文语言,那可以忽略终极相关的主题和讨论。 欢迎大家提意见。 @program-in-chinese/all |
迎新贴顶楼已经有类似的"地图". 我比较在意的是"低级"->"高级"->"终极"的提法. 每个方向都有其难度, 意义和必要性, 而这样的高低比较容易被误解. 一些个人看法:
|
高一层的包含对低一层的要求,说高低也不成问题的。 |
各个方向并不存在很强的依赖关系. 实际上, "自创中文语言"现在看到的所有项目都是用英文命名的. |
另外, 提出的"汉字编程"和"中文编程"的唯一区别, 好像是后者拥有无空格语法设计. 仅凭这点分高低恐怕不妥. |
这个中文编程厉害了这个应该是自然语言编程了, 现在英语也达不到自然语言编程. |
@hummerstudio 如有对不同方向的心得体会请在楼上列出的各个索引帖继续探讨. 如有没有包括的内容请新开帖讨论. 如果对哪个(些)方向有特别兴趣, 或者对哪个方向需要优先进行有看法/建议, 也请到该方向所在的索引帖继续. |
这只是非常初步的一点区别。在这里再多做一些说明。无空格并不表示要实现自然语言编程 。我们多做一些思考,目前的编程语言有空格是因为英文是有空格的,没有空格仅仅是因为无法区分单词,而使用中文时,空格完全是多余的。我不需要这样说话: @nobodxbodon
所以我这个提法并没有问题。目前除了Z语言,其他的项目都没有涉及到改变语法,所以也就不能说是中文编程。我们用“汉字编程”这个概念更准确一些。 我们也可以看看知乎上这个问题大家对中文编程的看法,比较有代表性。我们现在根本没有符合中文编程定义的语言,大谈中文编程,根本就是对牛弹琴,没有说到点子上。他们没有意识到语言中的语法问题,没有意识到API问题,只在想着关键字。我们拿着只改了关键字的例子去大谈中文编程,只会被嘲讽而已。事实也的确如此。我们哪有中文编程呢? 名不正,则言不顺。 我们既然要推广中文编程,那就要做好宣传,做宣传就不能泛泛而谈,要有理论做基础。共产主义还远,我们先说社会主义。中文编程还远,我们先说汉字编程。 防止出现认知偏差。任重道远,一步一个脚印,实事求是,才能不被误解。 @program-in-chinese/all |
目前来看,意识到计算机编程领域,英文(单词)占据过多权重的同志还是很多的,并且有很多技术水平也很高,已经有自己的项目实践,有些是对编译器做处理,有些是对语言自带库做处理,有些是创造全新的DSL语言或通用语言。总的来说,中文编程,有想法,有实践,我认为大有可为。
其实,中文编程的概念也存在很久了,包括易语言和习语言,都有好几年的历史,并且成熟度很高,但是这两个语言不开源,并且后续更新乏力,注定很难作为普通用户的选择成为普及性语言。后来无意间看到了Z语言,是开源的,但成熟度我并不清楚。但可以看到大家都很有动力和技术实力。
针对目前的现状,我想给目前的项目做一下梳理,分成两种类型:
汉字编程
中文编程
所谓汉字编程,指的是依然遵循现有语言的语法的编程形式,但是标识符使用汉字,甚至关键字也汉化为汉字。 现有语言都是外国人开发的,因此编程语言的语法也有英文语法的痕迹。比如
for ... in ...
,do ... while ...
,select ... from ... where ...
依据此规则,易语言和习语言都只能算是”汉字编程“形式。所谓中文编程,指的是遵循中文语法的编程形式,它比汉字编程更高一级。 中文语法的第一点要求,是汉字之间不需要空格分割。这是英文句子和汉语句子最明显的区别,英文单词是一维横排的,没有空格就无法分割区分,汉字则是方块字,每个字都是独立的。比如
echo Hello World!
,中文编程应该是输出世界,你好
,这是一个思维模式的转变。针对汉字编程,我们再做一划分:
初级:自己创建的类、方法、包等(标识符)使用汉字的
中级:不仅标识符使用汉字,编程用到的库也使用汉字的
高级:不仅标识符和用到的库使用汉字,关键字也使用汉字的
另外,我们可以将“汉字编程”称之为广义的“中文编程”的初级形式,“中文编程”称之为广义的“中文编程”的终极形式。
根据这些概念,可以更方便梳理目前的工作:
初级: 在编程实践中,自建类使用汉字,这就算“中文编程”入门了,个人学习就可以进行。
中级: 需要自己汉化库,或者使用“中文编程”相关开发者开发的中文库,更进一步。
高级: 关键字也是汉字,这个已经不是一般使用语言的开发者做的事情了,需要进行语言切换,切换为汉化的语言。代码变为更纯粹的纯汉字(阿拉伯数字和拉丁字母可接受)。这个阶段主要是“中文编程”相关开发者来对编译器进行修改。或者增加一个转换层。但整体上看,相当于再创了一门新语言了。
终极: 从语法上进行革新,符合中文语法的一般形式,将代码编译为JVM、CLI等虚拟机的字节码,或者直接编译为硬件平台的二进制文件。这个阶段,理论和实践上都需要继续投入精力。
The text was updated successfully, but these errors were encountered: