感觉需要一门中文编程语言用于青少年的编程教育

2022-04-28 08:37:21 +08:00
 tinybvjk

现在很火的少儿编程大部分都是使用 Scratch 或者类似的图形化编程语言。对于小学阶段的小孩子来说,没有什么问题。但对于初中、高中阶段的青少年来说,就肯定不能满足需求。为何需要一门中文编程语言,我想到的原因主要是下面这些:

学习编程不应该和学习英语划等号

现在将学习编程和学习英语等同起来的一个重要原因是因为大部分开源软件或者基础设施都是英语系国家发明的。它们的文档是英语,源码中的注释也是英语。要想使用,在遇到问题时排错,必须要懂英语。

将英语和编程等同起来无疑增加了学习编程的负担。而且在初中的这个阶段可能英语词汇量还不足以流畅地阅读英文文章,所以会显得额外困难。

因此,这门理想中的中文编程语言应该有中文的文档,中文化的社区。使用者遇到问题可以阅读文档,也可以用中文求助。

编程如果是思想的表达,那使用中文会更加流畅

英语作为母语国家的开发者在编写代码时的感受似乎和非母语国家的开发者是不一样的。这个结论是我之前在有个地方看到的,到时候我把链接补充上。他们阅读代码很自然,几乎没有阻碍,因为使用的是他们的母语。

当我们使用英语编写代码时,会遇到两个问题。思考时,我们使用的中文,需要转换成英文写下去。阅读时,我们遇到的是英文,需要在脑海里转换成中文。假如说词汇量不足,这种转换就会出现问题。而且,转换本身是有成本的,会多耗费一点时间,结论是我们的效率肯定比他们要低。

这种理想中的用于教育的中文编程语言可能是什么样子?

  1. 简单易用。
  2. 对性能没有太高要求。
  3. 静态类型。
  4. 解释执行。
  5. 也许还需要一款配套的 IDE 。

结论

使用中文编程语言可以降低学习编程的难度,会增加许多人对这方面的兴趣,让更多的人学会编程,所以我觉得是有必要的。


只是我的一些突发奇想,欢迎大家提出自己的看法。

9087 次点击
所在节点    奇思妙想
126 条回复
season8
2022-04-28 12:22:21 +08:00
1. 学习编程不应该和学习英语划等号
我认为,确实不是等号,现实就是很多程序员英语真的稀烂,别说说了,音标都不会,大把单词不认识,包括 日常术语。我开始还经常感叹:这同事英语真是菜。。但后来我发现菜的很多,但不影响他们编程。你问我英语啥水平?我 CET4.

我觉得原因是: 术语就那么多,很容易熟悉;门槛不在语言,在于规则(语法),想想第一次接触 c 语言 helloword ,难的是怎么去接受 程序为什么要这么写,为什么这样能运行,为什么那样写是错的。

2. 编程如果是思想的表达,那使用中文会更加流畅
其实除了 命名的语义 能体现代码的可读性外,还有注释、格式、设计模型,看看 #53 的例子,可读性高吗?我觉得有点密集恐惧了。我觉得 中文一来字符过长,二来太过白话,指令感不强。

我觉得中文编程语言要好用,抛开性能,得有 更精简指令(关键字),大量语法糖...或者配合图形等组件(儿童编程?低代码?)
Pipecraft
2022-04-28 12:26:45 +08:00
从教育角度出发,是等长大了再学习英语,还是从小开始学习英语呢?我想没人不选后者。
那先用中文编程,长大了再用英语编程呢,还是从小就用英语编程呢?不管别人怎么想,我肯定选择后者。

因为英语,产生的学习编程的负担或障碍,大部分是可以解决的。不能解决的有什么?还没想到。

对适合少儿学习的编程语言,比如 Python ,完善适合少儿的中文技术文档,针对少儿的在线社区就可以了。
开发适合少儿的 IDE ,或 IDE 插件,提供对代码、注释的翻译功能,尤其需要对报错信息的自动翻译功能。

行驶不便的道路上,是选择造适合这里的车子,还是应该修建公路呢?
acmore
2022-04-28 12:48:44 +08:00
数学题不会做不是因为不认识 X Y Z 这几个符合
qrobot
2022-04-28 13:01:29 +08:00
楼主的想法很好,一下几点我想问一下

1. if for 这个关键字是否采用中文?
2. sha, rsa ecc 等等对称加密算法和非对称加密算法是否采用中文命名?
3. 在涉及到图形 x,y,z, 的算法上是否也采用中文?
4. 计算软件的时间复杂度和空间复杂度的公式也是否用中文表示?
5. Linux, Window 平台运行是否也用中文表示?例如语言调用 window api 或则 linux api
是否也采用中文方式进行调用?
qrobot
2022-04-28 13:02:25 +08:00
易语言曾经写过一段时间,但是相对逻辑复制的时候 明显 if else 比较好用
Kilerd
2022-04-28 13:06:32 +08:00
历史的车轮又转了一圈,又开始来聊 中文编程了, 不知道上次的那个老哥去哪里,还能找到不。
Danswerme
2022-04-28 13:17:10 +08:00
编程语言关键字什么的其实只是一种符号,用到的逻辑思维和英语也没有什么关系。 如果中文编程语言只是把 if/else 换成 如果 /否则,var name = "tim" 换成 `定义 姓名="tim"`,我没有看到任何中文编程的优势。
masterclock
2022-04-28 13:18:50 +08:00
我不会做数学题难道是因为我不认识数学符号吗?
wsseo
2022-04-28 13:21:06 +08:00
华为要出的仓颉语言并不是中文编程。
fuchish112
2022-04-28 13:22:56 +08:00
学习编程的思维模式就可以了
Vaspike
2022-04-28 13:30:38 +08:00
我认为学习编程最合适的时机是从数学中学习了分段函数了后,编程是数学,是逻辑,如果一点数学基础(至少能理解抽象出来的函数概念)都没有,那学会的也毫无用处,无法举一反三,编程不是文科,没听说有谁在背代码的
但楼主的想法很好,如果世纪初国家能认识到这件事或许东亚这几个国家是可以有一套中文编程语言的
niboy
2022-04-28 13:34:35 +08:00
入门的话,学个 python 和 C++都不算很难啊,变量、循环、判断、简单函数就足够了啊
WuSiYu
2022-04-28 13:34:59 +08:00
#包含 <入出流>
使用 命名空间 标;

整 主()「
输出 << “世界你好” << 行尾;
返回 0 ;
jedihy
2022-04-28 13:39:11 +08:00
>> 英语作为母语国家的开发者在编写代码时的感受似乎和非母语国家的开发者是不一样的。这个结论是我之前在有个地方看到的,到时候我把链接补充上。他们阅读代码很自然,几乎没有阻碍,因为使用的是他们的母语。
这就毫无根据了。如果英语为母语的人比中国人读代码快一下,那只能说明中文作为一种语言没有逻辑。
a132811
2022-04-28 13:46:20 +08:00
十年前某输入法作者用拼音做配置都被人喷了

现代语言基本都支持, 用中文、日文、梵语命名,都没有问题

```
const 打印=console.log

function 我是(姓名){
打印('我是'+姓名)
}

我是('张三')

```


```
package main
import "fmt"

func 打印(args... interface{}){
fmt.Println(args...)
}


func main(){
打印("我是", "张三")
}

```
xQmQ
2022-04-28 14:18:54 +08:00
我一直以来的观点是,中文编程不应该关注编程的关键字是不是中文,文档、社区才是关键。

1. 楼主提到编程的关键字应该是中文,这点我不认同。就那么几个词,敲拼音还得找;况且这种转换没啥成本
2. 编程思想的表达是如何使用控制流语句实现编程目标,更重要的是如何规划代码实现,编程关键词是不是中文无所谓
3. 赞同楼主对文档、社区的看法,中文化的文档和社区,应该是中文编程的关注点,而不是网上一些所谓中文编程,靠替换英文关键字为中文关键字去实现,纯属脱裤子放屁
RedBeanIce
2022-04-28 14:42:53 +08:00
看到楼里面的讨论,感想。

编程需要的是逻辑思维,并不中文日文英文法文。。。。。。
而国内的逻辑思维教育,,,自我感觉一塌糊涂,没有数据,别喷。

楼主的想法感觉不对。如上
Ourobotos
2022-04-28 14:57:47 +08:00
QWERT 键盘用这么多问题,大家都习惯了,铁路轨道用马屁股的宽度,大家都默认了,发明一款中文编程语言不过是对现有英文产品的复制,没有破坏性创新,没有增加生产力,没有降低成本,不可能流行起来。

除非这款语言能干点别的语言干不了的事情,出个杀手级应用,好比 iphone 里的切水果,又好比比特币之于区块链。

但有这功夫干点别的什么不好。
Curtion
2022-04-28 15:10:06 +08:00
我高考英语 20 多分的人都能学编程,还能找到工作,这根本不是语言的问题,我们要的不是中文编程语言,而是良好的中文编程社区,就随便拿代码托管平台来说,你看 gitee 那个体验,那个版面,一堆广告。还有百度搜索编程相关问题,出来的大多都是 CSDN ,这个网站什么口碑大家也都知道。为什么会出现上述问题,真是是市场选择吗? 我不认为。

我觉得是政策限制了社区的发展,例如 V2EX 是在我看来是一个比较亲中的社区,出现了一些个别极端的声音最终还是被墙了。gitee 作为一个代码托管平台连代码段都要审核,一堆编程社区陆续因为不满足审核条件被迫关闭,个人开博客连备案都不让过,小几个能做个人博客备案的地区也不能有评论功能,直接阻断了交流渠道,难道用 QQ 群吗,效率也太低了?就看工信部备案完成还要公安部再备案,连个数据统一都做不到。之前我就只发了一篇 KCPTUN 安装和使用的教程,全文没有提到过任何和 SS 、代理和翻墙相相的词汇,还是被勒令删除。

就这个环境,没什么机会,前几年掘金还行,被字节收购后成啥样了这都看见了,目前社区都是在商业公司主导下的垃圾卖课引流网站。
我现在只庆幸现在翻译足够智能,让我能去看懂一些较新的技术,遇到问题翻译能让我看懂 issues 如何去解决。

在政策改变之前,学习英语永远比出一些所谓的中文编程语言更靠谱,如果是为了学习编译原理那自己造着玩还挺好的。
zachgenius
2022-04-28 15:12:10 +08:00
最简单的, 代码里面的符号用半角还是全角? 用简中符号还是繁中符号, 比如直角引号等? 是否支持繁体中文编程? 代码书写效率有没有考虑过呢? 在写代码的时候要调拼音找半天, 用英语写代码可能早就干掉很多行了. 写代码用不了几个单词, 中文编程本身就是个伪需求, 因为最终还是要翻译成机器码, 在翻译过程中的中间码或者汇编指令的时候是否也要出一套中文汇编指令? 机器是否能看懂中文汇编指令呢?

对了, 说到中文编程, 贴主有没有考虑过, 是用 UTF-8 保存还是 UTF-16 保存还是 GBK 保存还是 GB2312 保存文件呢? 会不会出现烫烫烫昆斤拷?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/849700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX