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

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

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

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

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

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

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

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

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

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

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

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

结论

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


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

10392 次点击
所在节点    奇思妙想
126 条回复
ericgui
2022-04-29 13:15:43 +08:00
不要污染一张白纸
marcong95
2022-04-29 14:17:19 +08:00
我小学五六年级接触编程,自己脑抽闹着买了本 vb 的书,学校老师推荐去学的 pascal ,初中参加了学校机器人班,用的 Lego 、中鸣的图形化编程。期间也碰过 C#、Perl 。虽然迫于从小的拖延症末期啥都没做出来

面向 k12 的 Scratch 、Lego Mindstorm 、中鸣机器人的图形化编程全都是有中文的。语言并不是孩子学习的障碍。要是孩子有兴趣,你只要打开你的淘宝,下单一套 ev3 丢给孩子让他自己折腾去就好了。

此外 CircuitPython 好像是有拼音表示的报错信息的,你可以看看。

孩子要是单纯因为报错信息是英文就想着放弃,说明他可能根本没有兴趣,那就别逼着孩子卷了。
weichzh
2022-04-29 17:33:49 +08:00
首先不做动机推测,也不附加自己的意识形态攻击,只针对这个问题谈谈我的想法。
加上楼主附加的这些信息来看,对问题的说明还是清楚的。先剥离这么几个问题。

1. 编程跟语言无关吗?
其实上面的观点是有矛盾的。如果认为编程是一门新的语言,那么只能说是跟其他语言无关,但跟语言学习能力是挂钩的,自然也就得出英语学不好,编程也学不好。但有些人又认为自己英语不好但照样学会了编程,这是试图说明编程并不靠语言能力,而是比如逻辑数学等。所以建议这里解决一下冲突。
可以将这么一个理论性质的问题转化成实际的问题,比如学编程要不要学好英语?你不能一边说学编程跟语言无关,又说学编程怎么能不学英语。我个人当然认为要,我也不认为编程跟英语无关,理论上可以这么说,如果不是英语国家发明的计算机,照样会有编程。但现在毕竟就是英语国家发明的,那么现实的编程当然是有关系的,上面也都谈到了,比如文档,注释,库,社区的问答等等。我不信大家都没用过翻译,而经过了翻译这一手,效率相比母语者自然是下降的。甚至还会有文化上的障碍,用翻译软件也无法理解的。所以,这里我的结论是:理论上学习编程与特定语言无关,但现实是英语不好就很难做好。
因此,搞中文编程是理论上可行的,因为理论上编程跟语言无关。但实际上是问题很多的,这个下面再谈。

2. 如何满足青少年的编程教育?
首先问个问题:一个孩子在小时候学习的是一门已经淘汰的编程语言,那么是不是后面学习现在流行的语言会有很大障碍?我认为并没有多少障碍,在掌握了一门编程语言之后,学习一门新的语言相对初学者是容易很多的,所以认为学了中文编程之后,就跟之后的发展脱节了的观点我不能认同。CS 一直宣扬终身学习,不能这个时候又说起点是决定性的。但障碍还是有的,所以这可以当成中文编程需要面对的问题,但并不能当成一个有力的反驳。
而对于吸引青少年编程这个意义上来说,中文只是一个手段,而非目的。是,现在青少年单词量很丰富,但决没有普遍达到能够看英文文档无压力的程度。更何况程序员用翻译软件的时候,自身是有一定的知识储备的,你让一个菜鸟去看翻译后的文档也是一脸懵。所以我还是认为一个好的中文文档和社区才是最应该考虑的问题。用中文搜索结果得到的全是一些小网站机翻 Stack Overflow 的内容,实在让人难以绷得住。比如数学,数学也是理论上跟语言无关的,而且也比编程更有底气,怎么所谓中文数学没有那么多声音呢?不考虑宣传,其实数学的中文资料是非常丰富的,所以我还是认为丰富的中文资料比中文编程更重要。

3. 中文编程如何进行?
广受调侃的只是粗暴翻译关键字的编程自然不行。有些术语的中文翻译本来就让人绷不住了,还让青少年学就是不当人子了。还有函数,变量的命名。这也是我特别头疼的事情,所以我对有些人认为的“写程序时全部都要用英文”的观点并不赞同,你让英语不行的人写英文,还不如写中文再机翻呢。顶多是说经验丰富了,才不会觉得棘手,但写英文文档和注释还是不简单的,对于英语实在学不好的人来说。所以中文编程需要解决的问题就是让使用者在中文环境下能够获得英语母语者相近的体验,而这个体验我并不认为只要采用了中文编程就理所当然了。

总而言之,我还是很期待中文编程能给出一个满意的答卷的。中国闲人现在确实越来越多了,我在 GitHub 和相关论坛上闲逛总能看到国人的作品,有些是玩具,有些则是很有潜力的项目。所以我不会对任何试图做一些事情的人冷嘲热讽。但我也极度反感把这些玩具性质的东西赋予很多“意义”,因为我认为这些“意义”都没有意义。你做得好自然有人捧,无论之前有多少人不看好。你做得不好,糊是应该的,不论之前有多少人加油打气。只是现在这个环境,项目无论是在技术还是应用层面的好坏都不一定能决定其热度了。不是说不该有环境的影响,这是不可能的,但环境的影响确实压过了项目本身的实力。
tinybvjk
2022-04-29 22:39:31 +08:00
@weichzh 感谢你发表你的真知灼见。你的讨论始终围绕着我们的问题,也回应了我的一些观点,而且非常客观,这也是我发这个帖子时希望看到的讨论,我相信也是许多人都希望看到的。在之前的回复中,很多人没有看清问题,就粗暴地发表自己的看法,对于问题的讨论没有丝毫帮助,这着实令人惊讶。

你对三个问题的讨论差不多回应了前面回复提到的问题,我大部分都是认同的。关于最后一段话,我可能有些其它的看法。

我一开始发这个帖子,是抛砖引玉,希望能够看看其他人对这个问题有何看法,理想情况下,也许能够看到部分人提出一些解决方案。有句俗话说,众人拾柴火焰高。但是这次讨论让我看到,关于这个问题,大部分人的分歧非常的大,连一些最基本的认识都不能达成一致。即使我引用了两篇文章,也未能改变许多人的认识。在这样的氛围下,要想讨论出结果,几乎是不可能的事情,最终可能就会变成比谁的措辞更加强硬,嗓门更加大,而不是谁更有理。在我看来,技术人员应当是这个社会最注重逻辑和正确性的一群人,但我在这里所见似乎并不如此。

最近见到有人在 V2EX 上发了一篇帖子,谈论为何中国缺乏开源文化和开源社区,也是我们在这里提到的问题之一。一群人要想合作达到一个目标,有几个因素。首先,他们要有一个都认同的目标。其次,他们要能够友好地讨论问题,紧密无间地协作,有良好的氛围。最后,他们要解决问题,稳步推进自己的工作。大部分国外的开源项目都是如此。而在这里,我们既没有目标,也缺乏友好地讨论,所以我感觉比较悲观。

你说的“意义”我觉得是非常重要的。如果一件事情没有意义,那么就没有人去做了。只是在计算机的历史上,有许多时候,是先做出来,才找到了它的意义,比如最著名的施乐发明 GUI 界面,后来被苹果微软“偷窃”。也有许多时候,是先有了意义,再有了实现,比如我们平常使用的 Git ,就是 Linus 先思考再做出来的。
seanzxx
2022-05-01 23:14:50 +08:00
"Talk is cheap. Show me the code."
- Linus Torvalds

楼主觉得需要一门中文编程语言,就应该说出你期待的中文编程语言应该是什么样子呀,至少展示一些示例代码,这样才是继续讨论的基础,而不是现在这种大而空的讨论
sihaozi
2022-07-26 17:55:49 +08:00
base64 MTMzNTY5OTQ2
OP 加一下 QQ 群详细聊一下

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

https://ex.noerr.eu.org/t/849700

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

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

© 2021 V2EX