V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
tinybvjk
V2EX  ›  奇思妙想

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

  •  
  •   tinybvjk · 2022-04-28 08:37:21 +08:00 · 9168 次点击
    这是一个创建于 969 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

    结论

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


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

    第 1 条附言  ·  2022-04-28 09:48:39 +08:00
    感觉有些同学的发言不太友善。如果是讨论我很欢迎,但请不要做出以下行为:

    1. 只下结论,不提个人观点。你如果说不认可,不对,请提出你自己的看法。下结论每个人都会做,但请你说出你的看法,才能够让我们看到你的思考。

    2. 扣帽子。我只是有个想法,有人就怀疑我要做什么商业化。如果说一句话就可以联想那么多,那么大家就都不敢讨论了。

    3. 不讲道理。这个和只下结论是一样的,没有提出自己的论点,就开始攻击,除了情绪宣泄外没有什么意义。

    ------------------

    易语言有个很重要的问题是它不是开源的,而且收费,这肯定会导致它难以普及。不开源的第二个问题是除了作者外没人能够改进它。另外,我没有使用过它,所以暂时并不清楚它的设计能否满足最上面提到的需求。
    第 2 条附言  ·  2022-04-28 16:00:55 +08:00

    看了许多人的评论,我觉得这个问题争议还是很大的。我想先把问题理清楚,再来谈我们的争议。

    “需要一门中文编程语言”这个提议可以看做是“如何让青少年更容易学会编程”的一个答案。

    许多回复里没有抓住这个前提,以为我谈的只是中文编程,就扔出结论说不需要中文编程,那我觉得这并不能证明不需要。

    有人分析了该先学编程还是再学英语,还是一边学英语一边学编程。我觉得这抓住了我们的问题,是值得讨论的。

    还有人提到了中文编程语言不是“让青少年更容易学会编程”的一个最优解,提升数学教育才是更优解。这也是契合我们的讨论的。因为他认为解决这个问题不需要中文编程这个答案。

    对于上面的这些争议,我想先放在一边,先说一下有些人产生的误解

    中文编程就是关键字英语化

    关键字英语化其实大家都已经见过了,好多人在下面举了例子。但我想以Python为例说明关键字英语化只是问题的表象。

    Python的容易上手有几个原因,一个是它语法简洁,另外一个是它“自带电池”(batteries included)。我想着重说一下后者。当你想用什么特性或者功能的时候,你会发现它都被内置在标准库里面了,使用非常方便。对于一门用于教学的编程语言来说,也需要大量的相关标准库,比如画一些绚丽的图形,这样才能吸引学习者的兴趣,让他感觉有成就感。

    我们所说的语言不应只是语法本身,还应该包含它的标准库,以及编译器实现。我们来想象一下这种场景。假如我们的英语很差,但记几个关键字不成问题,不过我们还要记那么多API似乎会比较困难。另外,当出现语法错误时,编译器的报警信息也是英文。请问,这个时候英语不好的我们是否会很容易放弃。

    也有人谈到了中文输入不如英文方便的问题,这个我觉得是另外一个问题,不是我们当前讨论的主要问题。

    英语没有带来问题

    我之前没有贴一些链接,这里可以放两个,里面谈到英语非母语的人学习编程会比较困难。

    1. Coding Is for Everyone—as Long as You Speak English
    2. Non-Native English Speakers Learning Computer Programming: Barriers, Desires, and Design Opportunities

    在第二篇论文中,作者提到了几个结论,母语非英语的人会在下面这几个方面遇到问题:

    1. 阅读材料。
    2. 与人沟通。
    3. 阅读代码。
    4. 编写代码。

    假如英语真的为学习编程带来了困难,就只有三种方案:

    1. 不管。我们不去解决这个问题。
    2. 提高英语教学,让青少年尽量好、尽快地掌握英语。
    3. 尽量将各种英文信息中文化,降低难度。

    青少年不需要学习编程

    这个问题我觉得争议会更大,所以在这里就不做讨论了,大家见仁见智吧。


    请大家友好地发言,不要互相攻击。

    126 条回复    2022-07-26 17:55:49 +08:00
    1  2  
    gainsurier
        1
    gainsurier  
       2022-04-28 08:42:18 +08:00 via iPhone   ❤️ 14
    有没有一种可能,让小孩直接不学汉语学英语是不是更加有效?
    lx000377
        2
    lx000377  
       2022-04-28 08:44:38 +08:00   ❤️ 8
    有一说一,我的入门语言是易语言... 还是初中的时候,打 cf 打不过别人,就想自己写个外挂,就开始上网搜教程....慢慢就掉坑里了
    dcty
        3
    dcty  
       2022-04-28 08:47:03 +08:00 via iPhone   ❤️ 2
    他们阅读代码很自然,几乎没有阻碍,因为使用的是他们的母语。
    ========
    中国人阅读文言文几乎没有阻碍(开个玩笑而已
    noe132
        4
    noe132  
       2022-04-28 08:47:19 +08:00 via Android
    其实我觉得这个想法挺不错的。但执行起来肯定不会很简单。写一个语言不难,但是配套设施搞起来那就是个生态系统的问题了。
    Chad0000
        5
    Chad0000  
       2022-04-28 08:50:30 +08:00   ❤️ 1
    意义不是很大,如果学了中文编程,那么迟早还是会遇到英文编程,那么前面学的中文编程知识可能很难转化到英文编程环境中来。比如你看 HTML 就是英文的,要不要也同时出个中文版?

    中文写代码也比英文慢。if 只需要两下,而中文的“若”就多打几下而且还说不定要选字。
    lower
        6
    lower  
       2022-04-28 08:51:47 +08:00   ❤️ 1
    你还不如倡议大家多用中文作变量、方法名,反正现代编程语言都支持
    ekidona
        7
    ekidona  
       2022-04-28 08:53:16 +08:00 via iPhone   ❤️ 58
    如果连编程语言那点英文都能成障碍那这智商发育水平也没必要学什么编程了
    anmie
        8
    anmie  
       2022-04-28 08:57:02 +08:00
    想法很棒

    盲猜后面有人会回复诸如:为啥孩子要学编程?想孩子就掉头发?从孩子就开始卷?。。。。之类的
    kongkongyzt
        9
    kongkongyzt  
       2022-04-28 08:59:18 +08:00   ❤️ 4
    因此,这门理想中的中文编程语言应该有中文的文档,中文化的社区。使用者遇到问题可以阅读文档,也可以用中文求助。
    ============================================
    你要做的不是创造一个中文编程语言, 而是搭建一个有 `有中文的文档,中文化的社区。使用者遇到问题可以阅读文档,也可以用中文求助。` 的 Golang/Python/Java/Node/C/C++ 的中文社区,这和语言是不是中文没有关系。
    des
        10
    des  
       2022-04-28 09:06:05 +08:00 via iPhone
    有没有可能已经有了?比如易语言
    zqlcrow
        11
    zqlcrow  
       2022-04-28 09:07:09 +08:00
    不觉得“学习编程和学习英语划等号”,现在学编程需要英语了?

    等中文资料和基本大段翻译都不够用的时候,那已经是大佬级别的时候了。
    mazyi
        12
    mazyi  
       2022-04-28 09:08:15 +08:00
    两个大的论点没有一个是对的,
    StanMarsh
        13
    StanMarsh  
       2022-04-28 09:14:27 +08:00   ❤️ 4
    别虾铽马感觉,想做生意想营销就直说,不丢人。
    southsala
        14
    southsala  
       2022-04-28 09:17:21 +08:00
    然后搞个 demo 激动半天吗?初学者是需要这种,但是学完这种又有啥用呢,做一个完整项目难点不是中文,而且小学学编程还是太早了
    Unclev21x
        15
    Unclev21x  
       2022-04-28 09:17:43 +08:00
    别闹了,英文现在和将来都将是编程语言的不二选择。

    我热爱中文,我觉得中文是世界上最牛逼的语言。但我觉得如果用中文当作编程中的语言,那将是灾难。
    tinybvjk
        16
    tinybvjk  
    OP
       2022-04-28 09:26:04 +08:00
    @gainsurier 对于少部分人来说可以这样,大部分人应该不行。
    HiCoder
        17
    HiCoder  
       2022-04-28 09:27:21 +08:00
    为什么非要学编程?学学语文直接做产品经理吧
    tinybvjk
        18
    tinybvjk  
    OP
       2022-04-28 09:29:13 +08:00
    @noe132 是的,大部分开源软件都是需要许多人才能够搞得起来的。现在中国这么多开发人员,但开源软件很少,是一个很奇怪的问题。
    tinybvjk
        19
    tinybvjk  
    OP
       2022-04-28 09:30:07 +08:00
    @anmie 谢谢。你猜得很对,已经有人这么说了……
    tinybvjk
        20
    tinybvjk  
    OP
       2022-04-28 09:31:31 +08:00
    @kongkongyzt 应该是不仅仅是中文编程语言,涵盖的范围可能要更广一些。
    Leonard
        21
    Leonard  
       2022-04-28 09:31:54 +08:00
    不是有易语言吗
    tinybvjk
        22
    tinybvjk  
    OP
       2022-04-28 09:32:36 +08:00
    @mazyi 如果你觉得不对,请提出你的论点。
    DOLLOR
        23
    DOLLOR  
       2022-04-28 09:33:33 +08:00
    易语言也算是中文编程的一个代表了。
    可那些天天嚷着中文编程的,又为易语言做过什么贡献了?
    whyzp2019
        24
    whyzp2019  
       2022-04-28 09:35:06 +08:00
    个人觉得,编程语言中的那几个单词,远远达不到需要专门学习英语的地步,但是如果想阅读文档查阅资料,是需要一些英文水平的,中文编程语言,不如完善的中文社区
    FanChen
        25
    FanChen  
       2022-04-28 09:35:38 +08:00
    初中高中更应该用英语学
    XiLingHost
        26
    XiLingHost  
       2022-04-28 09:42:35 +08:00
    问题是实际上编程语言里的英文不能算是一般的英文,而是“符号”
    符号使用什么语言实际上对学习难度没有很大的影响
    shyrock
        27
    shyrock  
       2022-04-28 09:44:20 +08:00
    OP 这想法还是比较契合中央的教育思路的,
    2022 版的《义务教育信息科技课程标准》有提到“课程教材要发挥培根铸魂、启智增慧的作用,必须坚持马克思主义的指导地位。。。”

    OP 拿这个想法创业,说不定能得到国家扶持。
    XiLingHost
        28
    XiLingHost  
       2022-04-28 09:44:54 +08:00   ❤️ 1
    另外且不说易语言,你要的全中文编程的语言其实还有一个文言
    https://wy-lang.org/
    编辑器,编译器什么都有了
    Weny
        29
    Weny  
       2022-04-28 09:45:53 +08:00 via iPhone
    华尔街不说中文…
    misaka19000
        30
    misaka19000  
       2022-04-28 09:48:22 +08:00
    我高中学 js 的时候感觉也没啥困难啊,楼主是不是把现在学生的英文水平看得太低了
    icyalala
        31
    icyalala  
       2022-04-28 09:48:29 +08:00
    @tinybvjk 你也知道开源软件很少啊。。除了经济等其他问题,做开源想要融入世界,当然要用英文。。
    日本人有写 Ruby ,巴西人搞出 Lua ,也没见有日文编程或者巴西葡萄牙语编程的流行吧。
    BingoXuan
        32
    BingoXuan  
       2022-04-28 09:50:18 +08:00
    编程者不懂英文,电脑也不懂英文。编程者会任一人类语言,电脑会任一机器语言。本来大家风马牛不相及。都是靠关键字不超过 100 的编程语言转换逻辑。问题关键不是那不足 100 的关键字是什么语言的 token 。而是编程语言是否好用。对于初学者来说,大部分语言上手难在于语法。比如 c 语言定义时候星号开头是指针,其他情况是解引用。语法最直白的编程语言肯定是可视化的编程语言。语法只有一个,你能套上去就行。

    最近一周我研究 labview 动态库,完全没找资料就能上手写一个比较简单调用自己写的动态库还带 GUI 的程序。不会就问一下会的人。花的时间最多就是,研究到底 labview 传进来的指针对映内存布局是什么。编程学习和编程侧重点完全不一样。语言不是关键
    binaryify
        33
    binaryify  
       2022-04-28 09:54:51 +08:00
    整个计算机体系就是英语那套的,老实学英语吧,没啥坏处
    HeliumTang
        34
    HeliumTang  
       2022-04-28 09:57:48 +08:00
    其实 scratch 已经很适合了。并不需要再自己搞一语言出来
    LinShiG0ng
        35
    LinShiG0ng  
       2022-04-28 10:11:20 +08:00
    这都 2022 年了,为什么还会有人觉得英语时学编程的阻碍? 我不理解啊,26 个字母 应该现在小学一年级就会教吧,难不成你想让孩子从幼儿园就开始学编程?那你这也太卷了吧
    sunnysab
        36
    sunnysab  
       2022-04-28 10:15:38 +08:00
    OP 可以了解一下,很多地方有中小学计算机竞赛,以前是 pascal, 现在都是 C/C++,就那几个关键字也还好……
    随着 python 流行,编程语言更好学了
    konnnnn
        37
    konnnnn  
       2022-04-28 10:16:25 +08:00 via iPhone
    小孩子从小就应该学 rust ,了解 ownership 和 lifetime
    Lancer777
        38
    Lancer777  
       2022-04-28 10:24:24 +08:00
    @gainsurier 有没有一种可能,放弃自己母语的国家基本上都废了?
    Aaron01
        39
    Aaron01  
       2022-04-28 10:34:49 +08:00
    有些人说就几个关键字是英语还好,有没有想过关于“关键字”内置的解释和使用方法也都是英文?
    morize
        40
    morize  
       2022-04-28 10:34:55 +08:00
    第一个观点没错。第二个就离谱了,编程的难点不是语言本身,你为什么要用英文键盘打字,而不是用几千个中文字符的键盘呢。现在还有哪个主流语言不支持 utf8 吗?我看 python 就很好,你的五个要求全都满足。
    guzzhao
        41
    guzzhao  
       2022-04-28 10:43:23 +08:00
    最主要的问题我觉得是写代码,输入法得配套, 中英文字符切换,圆角半角,再想想写代码还得翻页找字🙄
    v2ka
        42
    v2ka  
       2022-04-28 10:43:31 +08:00
    我觉得 OP 的提议很好。
    dddd1919
        43
    dddd1919  
       2022-04-28 10:50:23 +08:00
    条件语句是用 假设 /如果 /要是 /假如 /假若 /假使 哪个好呢🤔
    renhou
        44
    renhou  
       2022-04-28 11:01:05 +08:00
    只要华为出一个国产自主编程语言,那么就会流行起来
    westoy
        45
    westoy  
       2022-04-28 11:04:29 +08:00
    不是没有, 是都凉了

    连台湾那边早年都有开发者出过一个 python 的中文方言叫周蟒的
    ClericPy
        46
    ClericPy  
       2022-04-28 11:05:06 +08:00
    说了半天, 感觉在说那个基于 Python 的中文编程语言...

    说个不算题外话的: 青少儿编程连 Python 里面的那么二三十个关键字都记不住还学什么编程, 现在的小学生词汇量都好几百了, 家里有条件的已经三四千以上了(比我高中还厉害...)

    不过楼主的本意看起来是好的, 只是有几个门槛根本过不去:

    1. 让正规军去搞, 层层审批估计 Python 都入了高考了也没审批结束
    2. 让大厂去研发, 不挣钱不做
    3. 让教培行业做, 都快饿死了还管这个
    4. 让学术部门上, 做出来就被骂 Python 套壳骗经费(之前有过一个)
    5. 让开源社区玩, 玩玩就是玩玩

    个人看法就是, 为了三十几个单词不学英语有点多余, 至于注释和文档是英文的, 学几个单词也没坏处. 很多家长在孩子小时候培养各种素质能力, 布局的根本不是当下, 而是十几二十年后, 所以顺便把英语学了也不冲突, 否则建议童年别学奇怪的东西好好玩儿吧, 学不进去浪费时间.
    loryyang
        47
    loryyang  
       2022-04-28 11:09:50 +08:00   ❤️ 2
    就编程语言里面那几个英文单词,幼儿园的小朋友也能记下来了
    编程入门的难点在于抽象思维,数学逻辑思维,这些思维是人类相对高级的能力,是随着年龄增加而不断成熟的。所以我坚持一下几点:
    1. 过早的编程培训没有任何意义。多关注小朋友的数学,适时(注意不是提前)地促进数学水平的提高。随着抽象、逻辑思维水平的提升,找个时间开始学习编程即可
    2. 学习编程直接从 Python 这类脚本语言入手就足够了,没必要用 Scratch 。图形化其实就解决了分支、循环、迭代这么几个概念。但是通过单步调试,大部分人就能理解里面的运作规律了。
    3. 如果一个人,觉得编程难,那他就不适合学习,或者年龄太小。那就别学了,拔苗助长,徒增痛苦
    4. 对于青少年非专业人员的编程培训,建议抛弃传统的教育方式,以实战,趣味为主。不要纠结于算法复杂度、树、图、编译原理这类理论知识,而是写个爬虫,写个小游戏,写个语音合成器等等。每次以一个小专题的形式教学,附带上一些专业知识即可。大部分人不要走竞赛的模式,又痛苦又没意义
    afewok
        48
    afewok  
       2022-04-28 11:21:46 +08:00
    从利益的角度反思下,中文附带了什么价值???
    makelove
        49
    makelove  
       2022-04-28 11:33:31 +08:00
    一个语言十几个关键词都记不住的废物还学什么编程??
    angrylid
        50
    angrylid  
       2022-04-28 11:36:05 +08:00
    所以我感觉你要找的就是 Python + 中学生能看懂的中文教程,是吧?
    ALLROBOT
        51
    ALLROBOT  
       2022-04-28 11:41:47 +08:00
    @afewok #48
    如果中文编程语言流行起来,至少能加快编程速度。。。毕竟语言障碍放在那呢
    soupu626
        52
    soupu626  
       2022-04-28 11:45:38 +08:00
    ```
    # -*- coding: utf-8 -*-

    prov_list = [{"code": 110000,"name": "北京市","level": 1,"pcode": 0,"children": [{"code": 110100,"name": "市辖区","level": 2,"pcode": 110000,"children": [{"code": 110101,"name": "东城区","level": 3,"pcode": 110100},{"code": 110102,"name": "西城区","level": 3,"pcode": 110100}]}]},{"code": 120000,"name": "天津市","level": 1,"pcode": 0,"children": [{"code": 120100,"name": "市辖区","level": 2,"pcode": 120000,"children": [{"code": 120101,"name": "和平区","level": 3,"pcode": 120100},{"code": 120102,"name": "河东区","level": 3,"pcode": 120100}]}]}]

    def 打印(input):
    print(input)

    class 列表(list):
    def 追加元素(self, __object):
    self.append(__object)

    全国三级区划数据 = 列表()
    省级列表 = prov_list
    for 省级数据 in 省级列表 :
    市级列表 = 列表();
    转化后的省级数据 = {'编码':省级数据['code'],'标签':省级数据['name'],'子级':市级列表}
    全国三级区划数据.追加元素(转化后的省级数据)
    for 市级数据 in 省级数据['children']:
    区级列表 = 列表();
    转化后的市级数据 = {'编码':市级数据['code'],'标签':市级数据['name'],'子级':区级列表}
    市级列表.追加元素(转化后的市级数据)
    for 区级数据 in 市级数据['children']:
    转化后的区级数据 = {'编码':区级数据['code'],'标签':区级数据['name'],'是叶子结点':True}
    区级列表.追加元素(转化后的区级数据)

    打印(全国三级区划数据)
    ```
    把前两天跑的一个转格式的脚本翻译了下,这大概就是如果要搞中文编程语言的结果,翻译下类库,进一步的话改改解释器、编译器,把关键字替换了,有什么意思呢。

    编程的核心永远不是语言,所谓的青少儿编程教育,我理解其实际目的也是训练程序化解决问题的思维,*代码能力应该是最不重要的,用什么语言都是一样* 。
    darkengine
        54
    darkengine  
       2022-04-28 11:50:30 +08:00
    对于初中、高中阶段的青少年来说,编程用到的那点儿英文不是问题,数学和逻辑才是问题。
    zhttp
        55
    zhttp  
       2022-04-28 11:50:30 +08:00   ❤️ 3
    缺的根本就不是中文编程语言,而是高质量的中文技术社区以及技术文档,就编程语言里那一点单词随便来个会 26 字母的人花个两天时间都能学会,难的是有疑问、遇见 bug 的时候,中文搜索往往很难找到有用的答案(刚开始学的时候倒是还行,一些初级问题随手就可以找到解决方法),不得不去看英文文档。
    zhttp
        56
    zhttp  
       2022-04-28 11:55:59 +08:00
    另外赞同楼上的说法,变量名关键字什么的都只是符号,中英文没有区别,用这些符号按照不同的逻辑实现不同的功能,这种思维方式才应该作为小孩子学编程的目的,而不是拘泥于中文还是英文。
    soupu626
        57
    soupu626  
       2022-04-28 11:56:01 +08:00
    fredli
        58
    fredli  
       2022-04-28 11:57:17 +08:00
    知道去学编程的家庭,还搞不定英语么?
    est
        59
    est  
       2022-04-28 11:59:28 +08:00   ❤️ 1
    编程语言就是编程语言,既不是中文,也不是英文。

    如果你说用了字母就算英文,那么很遗憾,数学公式也需要字母

    如果你说小孩子学编程不需要数学,那么你编了个啥? CURD ?
    v2eb
        60
    v2eb  
       2022-04-28 12:06:28 +08:00 via Android   ❤️ 1
    中文编程是一直存在的伪需求吧。
    基于英文的编程环境基本是不可替代的。
    中文编程的概念也许更适合解读为:需要一种更易于理解的编程方案来引导初级开发者学习?
    season8
        61
    season8  
       2022-04-28 12:22:21 +08:00
    1. 学习编程不应该和学习英语划等号
    我认为,确实不是等号,现实就是很多程序员英语真的稀烂,别说说了,音标都不会,大把单词不认识,包括 日常术语。我开始还经常感叹:这同事英语真是菜。。但后来我发现菜的很多,但不影响他们编程。你问我英语啥水平?我 CET4.

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

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

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

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

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

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

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

    整 主()「
    输出 << “世界你好” << 行尾;
    返回 0 ;
    jedihy
        74
    jedihy  
       2022-04-28 13:39:11 +08:00
    >> 英语作为母语国家的开发者在编写代码时的感受似乎和非母语国家的开发者是不一样的。这个结论是我之前在有个地方看到的,到时候我把链接补充上。他们阅读代码很自然,几乎没有阻碍,因为使用的是他们的母语。
    这就毫无根据了。如果英语为母语的人比中国人读代码快一下,那只能说明中文作为一种语言没有逻辑。
    a132811
        75
    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
        76
    xQmQ  
       2022-04-28 14:18:54 +08:00
    我一直以来的观点是,中文编程不应该关注编程的关键字是不是中文,文档、社区才是关键。

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

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

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

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

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

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

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

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

    对了, 说到中文编程, 贴主有没有考虑过, 是用 UTF-8 保存还是 UTF-16 保存还是 GBK 保存还是 GB2312 保存文件呢? 会不会出现烫烫烫昆斤拷?
    segama201901
        81
    segama201901  
       2022-04-28 15:15:18 +08:00   ❤️ 1
    这种月经贴。。。码代码用的什么语言重要吗?就那几个关键字 A4 纸都写不满,用什么语言重要么?有这功夫真不如去把英文文档翻译成中文。脚踏实地的干点事比这个无谓的空中楼阁式的瞎想有意义的多了。
    zachgenius
        82
    zachgenius  
       2022-04-28 15:16:52 +08:00
    接续. 对于小孩子来讲, 我认为认全 26 个英文字母比认识几千个常用汉字效率要快很多, 更别说还得让小孩子先弄懂拼音, 多音字, 同音字, 白字(我相信有相当多的朋友打字打白字或者发音习惯混淆一些词汇发音, 比如崩溃打成“奔溃”, 在 throw exception 的时候用 抛出 例外还是 抛出 异常? 我感觉分清这些的难度比用英文高很多, 而且“抛出例外 /抛出异常”也很难懂是什么意思). 关键字用词使用北方常用语的词汇还是南方常用语的词汇呢? 另外拼音也是用英文字母来使用. 绕了一大圈, 键盘上就是英文字母, 何不如让小朋友直接用英文字母编程呢?
    zachgenius
        83
    zachgenius  
       2022-04-28 15:19:03 +08:00
    我觉得对于青少年而言需要做的不是中文编程, 而是降低编程所需要的复杂代码量, 用更直观更快乐的方法让他们对编程 /计算机感兴趣.
    RainCats
        84
    RainCats  
       2022-04-28 15:29:07 +08:00
    @gainsurier 有没有一种可能,让国家废除汉语等各种非英语语言文字,将英语设为唯一标准语言。。。(纯粹将你的意图说出来,不代表本人看法)
    gainsurier
        85
    gainsurier  
       2022-04-28 15:55:57 +08:00
    @RainCats 是的,我是这么想的
    3dwelcome
        86
    3dwelcome  
       2022-04-28 16:17:53 +08:00
    和我以前发过的帖子很像,我也支持中文编程,唯一有两点不同。

    1. 尽可能不用函数。
    2. 关键词不用中文。

    不用函数,可以用大量的 switch case "中文函数":来替代。

    在我看来,英文编程对于国人最大的困难,是变量和函数的起名,只要这两点解决了,别的都还好。最近接触的一个 github 项目,代码占了 1/3 ,非英文注释占了 2/3 ,这又是何苦呢。
    afewok
        87
    afewok  
       2022-04-28 16:23:04 +08:00
    直接放弃中文,启蒙就英文不好嘛?
    zagfai
        88
    zagfai  
       2022-04-28 16:26:01 +08:00
    python
    zxCoder
        89
    zxCoder  
       2022-04-28 16:26:38 +08:00
    函数 赢了吗(中国):
    返回 (中国 等于 赢麻了)


    这样子吗
    Oucreate
        90
    Oucreate  
       2022-04-28 16:31:49 +08:00
    (要不是 @RainCats 阐述了 @gainsurier 的观点)
    中国废汉语?这可是我见过最反智最“妄妄”的言论之一!
    (来 V 站七年了,这还是我首次忍不住站出来批驳)
    zagfai
        91
    zagfai  
       2022-04-28 16:46:11 +08:00   ❤️ 1
    其实,那编程语言里面的都不是英语,只是一个符号,不要想着太多什么中文英文的。
    Samuelcc
        92
    Samuelcc  
       2022-04-28 16:49:15 +08:00 via Android
    1. 为了不用学那一点点关键字英语做一套语言社区 ide 是不是有点南辕北辙
    2. 英语都学不好,还学什么其他东西呢?不会英语,只能搬搬砖,当低端人才
    3. 为什么非要什么都要搞个中文版,然后无非就是把别人的成果照抄一遍,然后瞎吹一通赚钱蒙人?
    GeruzoniAnsasu
        93
    GeruzoniAnsasu  
       2022-04-28 16:52:46 +08:00   ❤️ 1
    @tinybvjk


    > 现在中国这么多开发人员,但开源软件很少,是一个很奇怪的问题。


    其实之前是很多的,臭名昭著的 CSDN 正是国内最早的开源文化中心,可以在上面免费找到极巨量的公开资料和代码以至于 CSDN 光把这些资源占为己有就能依赖它们活到现在



    平心而论,我觉得按键精灵正是 OP 心目中的理想产品

    全 GUI
    全中文
    有真的脚本代码
    丰富功能的内置库,效果也都非常直观
    可以调用 OS API




    你知道中文化「可编程软件」的桎梏在哪吗
    看看易语言,看看按键精灵
    想想全球 top3 的黑产业界







    「微信做得像坨屎」和「我需要另一个 im 产品」
    这是两个不同的问题
    (无端转进 :doge:
    alanse7en
        94
    alanse7en  
       2022-04-28 16:58:25 +08:00
    有没有可能小孩其实不需要学编程
    longbye0
        95
    longbye0  
       2022-04-28 17:07:32 +08:00
    编程语言关键字就那么几个,总比元素周期表好记吧
    krixaar
        96
    krixaar  
       2022-04-28 17:22:26 +08:00
    还以为是吴大师的小号……
    都初高中了在中国不背单词吗?必修课啊亲。多少年前电视里就有《中学生电脑课堂》了,根本犯不着用中文关键字。

    人家吴大师的论点偏向让没有学过英语的人学会编程,好歹逻辑通顺,你这上来就让已经不得不学了英语的用中文编程,何必呢。
    shyrock
        97
    shyrock  
       2022-04-28 18:03:21 +08:00   ❤️ 1
    OP 你有没有想过学习编程的目的是什么?
    如果是为了学习之后掌握一定的编程能力,从而将来能真正派上用场。
    那么现在学习的语言跟将来需要用到的目标语言就不能相差太大。

    如果你教学用的 C ,工作用 C++、JAVA 、PYTHON ,那么你就可以在教学的基础上较为容易的转换到新工具上。
    如果你教学用的 JS ,工作用汇编,那么你的几年 JS 基础几乎对你后续工作毫无帮助。

    如果说只是培养孩子的思维习惯,那么 Scratch 这种图形化的工具比你的汉字化更易懂。
    huntzhan
        98
    huntzhan  
       2022-04-28 18:17:49 +08:00
    有没有一种可能,中文编程语言还要做好标点符号的归一化,比如逗号与句号得同时支持半角全角以及各种 variant [狗头]
    jichangee
        99
    jichangee  
       2022-04-28 18:49:06 +08:00   ❤️ 1
    个人认为点子不错,但是需要有良好开发氛围才能够行得通,要达到 OP 说的目的,不仅仅是要靠口号就能行的。
    拿易语言来说,都是国人在用,最后就是拿来开发外挂的。
    还是承认吧,人家国外有这种开源的氛围在,而国内只想着白嫖,注定搞不起来
    malusama
        100
    malusama  
       2022-04-28 18:57:27 +08:00
    把编程语言那些保留字替换掉你就会编程了?
    你能替换那些关键字, 你能替换掉其他包的方法名么。。。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2921 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 14:04 · PVG 22:04 · LAX 06:04 · JFK 09:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.