本文转载自 果壳

“会Python的人,工作都不会太差”。学编程,却依旧卡在了英语这一关?面对满屏连不成句子的英文字,我就想问一问发明编程的人:fine,thank you,and you? “好优美的中国话”在编程届可以拥有姓名吗?

满屏英文丨《Linux内核代码情景分析》

说真的, “从入门到放弃”的队伍里应该有不少人是被这密密麻麻的字母劝退的。想比数的大小,都得写好几行代码,直接输入“a和b谁更大”不好吗?

等等……中文编程还真行,更贴心的东北话、上海话甚至是文言文编程都有了,那接下来是入门还是放弃,就得看你自己了!

东北话编程:我先来整一个

GitHub上有一个名为“dongbei”的项目,由用户zhanyong-wang开发。

东北话编程教程丨zhanyong-wan/dongbei/GitHub

东北话编程把编程里的英文全部替换成了东北话,唠唠=print,没毛病=true,整完了=end……

举个例子,如果你想用常规的编程语言在屏幕上输出一句话,以前得在编程软件里写成print(“编程可真难!”),这要是换成东北话编程,直接写成唠唠:“编程可真难!”

再举个例子。如果想设置一个x,你在东北话编程里可以把x叫成老王,“老王走四步”就表示x+4,“老王稍五步”则表示x-5。

再比如想比两个数的大小,x叫老王,y叫老张。谁更大就输出“某某比较厉害”,相等就输出“一样厉害”。写成程序就是表格的左边:

看,我用上毕生所学的东北话知识,总算是学废了一点dongbei。

既然是东北话编程,那不得整个东北特色小程序?想来想去我整了个计算猪肉炖粉条所需食材数目的小程序:

假设有一家菜单里只有猪肉炖粉条的饭店,店主需要根据顾客人数和食量准备食材。让我们来品味一下这种沙雕(亲切)的程序。

整点猪又炖粉条丨作者供图

程序的代码也是真·东北话代码丨作者供图

“装”表示把后面的内容赋值给前面,相当于“=”;

“整”则代表运行,比如“咋整”下面就定义了“吃多少”这个部分是如何运行的,“整完了”就代表运行完了;

判断两者是否相等变成了“寻思xxx跟xxx一样一样的?”;

用 “要行嘞就/要不行嘞就……”来判断不同的条件。

如果你会一点编程,看到这似曾相识的格式,是不是想拍案而起——这不就是Python嘛!没错,dongbei正是基于Python3开发的,你甚至可以尝试把它反推成英文。

基于这个思路,各地的方言都有机会加入“中文编程”的版图中来。这不,紧接着还有人开发了基于上海方言词汇的编程语言。

侬上海言话讲得来伐?丨cabuliwallah/shanghai-from-dongbei/GitHub

上面的编程方式虽然是用中文,但整个语法基于英文编程,看起来还是令人费解。2019年发布的文言文编程项目“文言/wenyan‑lang”更进一步,让编程看起来真的像古文了。

文言文编程:吾有一术

上边用文言文编程表述5+3=8,下边是输出斐波那契数列的示例

丨wenyan-lang/wenyan/GitHub

相比直接的关键词替换,文言文编程的书写更接近自然语言。同样的1+2,既可以写“加二於一”,也可以写“加一以二”,这两种写法都会被识别,并通过通过NLP(自然语言处理)的算法,翻译成JavaScript和Python。

文言语言编程入门教程。这还得考文言文能力丨wy-lang

目前,该项目在GitHub上获得17k星星——要知道在4亿个仓库里只有不到800个有此殊荣。文言文编程项目不仅有了更全面的配套工具(被命名为“文渊阁”开发环境和包管理器),还有了详细的官方教程——当然也是文言文版的。可以说这个文言文编程项目已经非常完善了。

如此看来,中文编程大有前途?

中文编程:请叫我古董

早期国内的英文教育并不是特别普及,而学习编程的过程涉及到很多资料与技术文档——这些大多都是英文的,有些人就想着:不如把整个编程都给汉化,这样学起来、用起来,都更方便。后来出现了以“易语言”为代表的中文编程工具。

2000年前的中文编程丨中国知网截图

中文编程甚至有过专门的图书教程丨《中文编程从入门到精通》

其实,“本土化编程语言”不止在中国被提出了。通过关键词替换等方法,人们可以将编程里的文字替换成中文、俄文甚至是Emoji。

Emoji编程丨EmojiCode.org

既然群众呼声这么高、实践这么早,为什么本土化的编程语言仍然不是主流呢?

程序语言的本质不是任何自然语言:不是中文也不是英语。它是根据特定语法规则拼起来一堆符号,更像人造的语言。编程用的是Java、C语言或者Python,都是这种“人造语言”,只不过它们所使用的“符号”恰好是英文单词。

但机器也没法直接看懂这些这些“人造语言”,这时就需要编译器了。它会像翻译员一样,将人类所写的最接近自然语言的高级编程语言,一层层“翻译”到低级的机器语言,直到二进制编码——0和1。

左边是我们写的代码,经过一步步“翻译”最终成右边机器可以识别的二进制码丨codeforwin

现在通用的编程语言,只是恰好用英语单词作为符号。那用汉字来表示这些符号,也就是用中文编程,不是也挺好吗?

的确可以,但或许没有必要。

非英语编程的壁垒之一在于,底层的语言被英语世界占领——接近硬件层面的语言,用的符号还是英语单词。这就意味着,如果将中文作为接口搭载在主流编程语言上,会多一次“将汉字翻译成英文字”的过程,增加了机器处理的时间,牺牲了效率。

同时,如果直接使用中文作为编程符号,会降低世界范围内的通用性。毕竟,编程语言不只是关键字,更包括第三方库、学习材料等技术生态。如果你用中文版我用英文版,交流起来恐怕是鸡同鸭讲。

总而言之,虽然以英文字为基础的编程语言学起来要花时间,但综合权衡效率和难易度,程序员还是更倾向于使用主流语言。

这么说来,中文编程只能用来娱乐?倒也不是。中文编程可以让想了解编程的人了解基础的编程思路,还可以用于培养编程思维。针对孩子的编程语言scratch,甚至没有一个单词。

Scratch图形化编程,只需要拖拽各个模块就可以让右边的猫猫做出特定的动作,这种编程更像是学习流程图丨Wikimedia Commons

如果把“实用”换成“有趣”来看这个问题的话,中文编程确实给大家提供了一些新鲜的角度,或许也吸引了一批人加入了编程的行列啊!

还能用中文写代码?东北话:我先来整一个相关推荐

  1. python用中文怎么说-震惊!!!python可以用中文写代码

    [Python] 纯文本查看 复制代码#!/usr/bin/python3 from time import sleep as 暂停一下 from os import system as 系统 def ...

  2. 少说话多写代码之.net core——001:建一个api

    一..net core环境准备 直接装visualstudio 2017,具体安装方法,自行下载安装即可. 二..net core使用 用.net core编写一个webapi. 具体过程如下, 1. ...

  3. 为了营造一个看代码舒服的氛围,写了获取王者荣耀所有高清皮肤的代码,现在写代码舒心了(中途发现了一个秘密)

    自从发现了该海报,我沦陷了

  4. 全宇宙最强AI 聊天机器人模型ChatGPT惊艳来袭,你还不上车?居然能写演讲稿和帮忙写代码

    目录 1.ChatGPT介绍 2.ChatGPT如何注册,国内不可用 3.VS Code下载安装ChatGPT 3.1 打开VS Code找到ChatGPT 3.2 ChatGPT 详细安装步骤: 3 ...

  5. 不只在办公室写代码, 程序员的一天还可以是这样的!

    除了坐在办公室里写代码.做一个安安静静的"美程序员"外,他们还有哪些工作方式?他们的工作.闲暇的时间怎么度过?--今天我们随机抓了几只程序员,让我们听听他们的日子过的咋样. 人物# ...

  6. 中文写程序,何陋之有?

    我近期经常放出一些用中文写的类库.代码,总会招致围观,搞得我跟动物园里新来的稀有动物似的. 围观众人中有些朋友表示支持,有些朋友则不屑,甚至鄙夷,在这个MVP候选人公告中,更是有人这样评价我: #46 ...

  7. 关爱码农成长:关于写代码二三事

    2019独角兽企业重金招聘Python工程师标准>>> 工作这么多年以来,一直从事软件相关领域,即使担任主管职务,也一直对技术充满热情.写代码写了这么多年,多少有些体会.我把自己对写 ...

  8. 用Macbook-苹果系统写代码出现显示问题Text input context does not respond to _valueForTIProperty:

    Macbook / 苹果系统写代码出现显示问题 当使用Mac系统,在写代码的时候,如果是有一个GUI显示界面,然后你又去点击这个界面.此时,将报错. 我的源代码,是读取图片,显示图片. import ...

  9. 离职后竟半夜偷溜回办公室写代码?一个为自由软件而战斗的程序员

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 理查德•马修•斯托曼(Richard MatthewStallman)是个非常厉害的程序员,他开发出了Emac ...

最新文章

  1. java取字符串中不相同的字母_java 判断两个字符串是否为相同字母异序词 --- 记录...
  2. php文章编辑页面,zblogphp在文章页面中增加直达后台编辑该文章内容功能
  3. 敏捷软件开发实践-Sprint Setup Meeting
  4. Traumland--梦乡--IPA--德语
  5. python中基例_Python python从入门到实践(5) --代码复用
  6. opencv画框返回坐标 python_20行Python代码实现视频字符化
  7. linux下的进程间通信-管道及共享内存
  8. 拓端tecdat|R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告
  9. Windows个人常用软件推荐
  10. 【k8s】K8S中的IP地址(Node IP、Pod IP、Cluster IP、External IP、Internal-IP)
  11. 大华工业相机SDK【QT+ C++】vs2015配置环境
  12. Android音乐播放器开发
  13. lob 索引 oracle,oracle 12c lob索引
  14. java项目笔记 - 第18章:坦克大战2.1
  15. 10年后,从新开始...
  16. linux系统locale的设定
  17. html监听多选框事件,复选框事件监听使用求助
  18. Unity数据持久化——Json
  19. 六度分离理论、150法则与弱链接
  20. UE4的JSON读写方式二

热门文章

  1. Datawhale集成学习笔记:XGBOOST算法
  2. 计算机科学家丁诚,丁平尖
  3. Python语言更适合低代码开发平台
  4. 时间都知道 作者: 随侯珠 txt格式下载
  5. FAILURE: Build failed with an exception. * Where: Build file ‘D:\ProgramData\AndroidStudioProjects\ѧ
  6. 【前端学习笔记 CSS系列二十二】justify
  7. 程序员职场生涯最重要的三个阶段!
  8. Linux上 journal 可以删除吗?
  9. MySQL:如何获得 MySQL 毫秒、微秒
  10. 滥用线程,导致线上线程池被撑爆的一次意外