首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

讨论下中文编程?

  •  
  •   947211232 · 353 天前 · 3692 次点击
    这是一个创建于 353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    中文编程

    • 理想主义:从中文编写的汇编语言直接作用于机器开始
    • 现实主义:使用国际性的、已存在的高级编程语言开发,并用中文散播学识思维
    • 魔幻主义:给现实主义披一层怪诞的外套,稳中向好,引领全人类

    经过

    • 最近帖子总是把国际技术用语用中文表达,不是说不好,知识给人的理解造成一定的障碍

    举个例子:有回复帖子提到 “阿贾克斯”,后端的我(很久没弄过前端)神经线首先反射的是:人名,贴近生活-》阿贾克斯-》武器大师贾克斯。。。excuse me ?越想越懵,google 下 “阿贾克斯” -》足球俱乐部,再来 “阿贾克斯 编程” -》 AJAX ???

    • 每个人的生活都不易,毕竟说中文当然是首先想到围绕墙内的日常生活——少点套路,多点真诚
    • 好好学习,天天向上,学好外语,沟通全世界
    第 1 条附言  ·  353 天前
    # 看法
    * 对于国内的中文编程的看法是,根本上就没有中文编程,只是国人使用得多了就被称谓中文编程,根源还是编程
    * 所谓的中文编程其实就是一个伪命题,国内可以有粤语编程、 闽南语编程、藏语编程,要坚持的中文编程就是想范围性统一编程,所以现在主流是国际性英文编程,真要继续所谓的中文编程,即逆水行舟,不进则退,加倍努力了
    * 中文编程的核心应该是属于某一群人的编程思想,而不是区区的语言,用语言来区分个人感觉有点肤浅,应该用思想,也只有思想碰撞才能并发花火,语言碰撞是点燃导火索

    # 吐槽
    * 回帖有些是蛮抵触所谓的中文编程,但请不要人身攻击可否,本人只是抛出一个论点大家讨论而已
    类似吃太饱这些无意义的无聊回复就算了,当你回复这种信息的时候也某程度代表了吃太饱

    * 26 个字母跟 3000+中文,选择 26 个字母的;这个很有问题啊,本人敢肯定的是声母韵母加起来也不会超过 50 个

    # 编程
    * 如果非要说国内现在中文编程是为了便利,我觉得可以进一步研究“语音编程”,“脑电波编程”
    * 编程的本质是作用于机器
    第 2 条附言  ·  353 天前

    讨论

    • 人们总是以为这样以为那样的,其实世界不是这样子的
    • 请不要主观性的认为楼主已经上车并认真地在开车,楼主只是一个等车的过客
    • 楼主只是抛出一个论点,大家可以阐述各自的论点: 譬如,低层硬件用中文有哪些麻烦,能不能解决,不能的话所谓的中文编程是什么;

    譬如,既然不用中文,那么我们的中文编程是不是应该重心在思想,然后设计出属于大家的高级语言;

    然后大家可以愉快地讨论出很多种分支

    讨厌

    • 可以批判、校验论点,但直接到人就很讨厌了,就事论事不好吗?
    • 楼主有说过支持中文编程吗,有说过不支持中文编程吗?
    • 一些人被心里的贫穷蒙蔽了双眼,一些人被生理的贫穷蒙蔽了双眼
    第 3 条附言  ·  352 天前

    最后一次APPEND了

    什么是中文编程

    • 其实英文编程也是不对的,机器只能识别01,01是阿拉伯数字,是否叫“阿拉伯编程”
    • 为什么机器只能识别01,能不能识别xy
    • 编程是一种思想,一种概念,一种表达;中文编程应该是代表中国程序员集合的一种思想,这种思想可以用任意模式表达,但可以定义为“中文编程”
    • 中文编程不是强调使用中文来编程研发,而是强调使用中文来表达程序设计思想(编程)
    76 回复  |  直到 2018-12-21 18:27:08 +08:00
        1
    AaronWoong   353 天前
    会被鄙视的
        2
    947211232   353 天前
    @AaronWoong 会被鄙视什么?有点懵
        3
    hugee   353 天前 via Android
    神经反射:荷兰劲旅,世界第一的球星加工厂
        4
    quwabcxyz   353 天前 via Android
    中文语法性不强,词库不深,造字能力差,词义没法严谨。相对来说不会有优势
        5
    947211232   353 天前
    @quwabcxyz 是啊,连“回”都有多种写法,连“喜欢上一个人”都可以有 4 种读法,但只要弄好直接作用于机器的步骤,理想还是可以有的。
        6
    lingo233   353 天前
    变量一正片叠底变量二
        7
    yidinghe   353 天前 via Android
    先不说什么主义,对于中文编程的现状,楼主有何看法
        8
    trait   353 天前   ♥ 2
    你站日常 PL 基础匮乏时间
        9
    littlewing   353 天前
    java 支持 unicode 命名,再搞个关键词转换器,把中文关键词转成 java 关键词再编译,好了,发明一种新的中文编程语言
        10
    qiumaoyuan   353 天前   ♥ 3
    NoMethodError: undefined method `阀值' for #<系统:0x00007f1ffe0fa260>, did you mean `阈值'?
        11
    easyhead   353 天前 via iPhone   ♥ 1
    楼主还是吃的太饱了
        12
    saulshao   353 天前   ♥ 2
    最近有很多人在讨论中文编程。还有人在知乎上开了专栏,试图推广中文编程。
    中文编程这个概念,我记得最早是从 VB6 的时代开始兴起的。我最早用 VB 的时候,互联网上有人搞了一个中文编程语言,我记得当时就是把中文字词转换成 VB 的关键字,然后可以允许用 VB6 来编译转换后的结果。
    我当时研究过这个,核心思路我觉得和中文写文章最大的区别就是:必须引入空格来确认表意,绝对不能像日常写文章一样连续用一串中文来表达一个完整的含义,因为断句在中文中是一门学问,即使引入了标点符号也是如此。
    今天我们来看这个问题,我觉得用中文来编程其实没有技术上的障碍。主要还是一个观念的问题。
    我的观念是:我不想用中文编程,如果你用中文写出了一个程序,试图让我用,对不起,我不用。
    理由如下:
    1. 最近的 10 年大陆中文互联网的封闭性是在提高的,而大陆的程序员虽然整体水平不低,但是那些最有原创性的工作基本都是由欧美人完成的,我们是在学习别人。
    2. 中文互联网的商业环境在全世界都是非常好的,人口足够多,创新意识也很强,接受新事物的速度快,要多加强与别人的交流,我们是可以为世界作出贡献的。
    3. 其实这个世界上不存在一个"英文编程语言",为什么大多数的编程语言都是用英语作为关键词和基本语法,其实我觉得很简单,就是用英文的人比较多而已。
        13
    molvqingtai   353 天前 via Android
    杰阔瑞
        14
    codermagefox   353 天前
    还是吃的太饱了.
        15
    envylee   353 天前
    26 个字母和基础字库 3000 字起的两种语言,我肯定选前者;

    而且阻碍编程的绝对不是对字词含义的快速理解和反应,就像大家都知道你做不出数学题绝对不是因为不认识 10 个数字;

    所以,我们不做动机揣测,只是单纯认为你们怀着让中文走向世界的决心来做这个事;

    那么是否可以考虑一下先推广中文数字(一、二、三)以取代阿拉伯数字;

    这样我们何止屹立于计算机的世界之林,那简直可以称霸数学物理全学科啊,怎么样,是不是想想都觉得激动人心。
        16
    JCZ2MkKb5S8ZX9pq   353 天前
    好像十年前吧,广电总菊就走在了中文化的前列。
    美国职业篮球联盟,国民生产总值,首席执行官,图像最大化技术,不新鲜啊。
        17
    kaid97   353 天前 via Android
    易语言,貌似就是中文语法
        18
    KasuganoSoras   353 天前
    想学中文编程?先去学易语言吧,相信我,如果你是写了很多年英文编程的人,你会疯的
        19
    defel   353 天前 via iPhone
    编程是用来解决问题的,不是制造问题的。程序的可移植性和可扩展性决定了程序的生命力。不得不承认的是,世界上的顶尖的程序员和科学家都用英文沟通交流,那么中文编写的程序指望谁去移植和扩展,靠那些用英文不顺利,使用中文编程的人?那些人英文都读不顺,怎么可能知道最新的技术和方法,只能找过时的文档去看。

    编程也不仅仅局限于 pc 平台,arm 平台,工业单片机。谁敢用中文编程去编写铁路交通控制系统,或者飞行导航系统,或者火箭发射系统。。。
        20
    xuanwu   353 天前
    如果要实现中文语法的编程语言, 最好在实现代码中使用中文命名. 因为用户+开发维护者都是中文使用者. 这样可以尽可能减小维护改进的代价, 也增加用户->维护者的转化率.
        21
    huntzhan   353 天前   ♥ 1
    太监讨论生理需求
        22
    Everyxin   353 天前
    Ajax 读额界克斯有没有毛病
        23
    wmhack   353 天前 via iPhone
    用中文编程写到后面,你连维护的想法都没有
        24
    lovelybear   353 天前
    请移步易语言
        25
    fyibmsd   353 天前 via iPhone   ♥ 1
    不讨论,滚犊子
        26
    krixaar   353 天前
    @xuanwu 出现了!大佬考虑下 zhpy 如何?和 python 代码无缝衔接,语法简洁,简繁皆可,安装方便,因为年久失修,如果大佬能继续维护一下就更好了!
        27
    jaaazzz   353 天前
    代码即注释,就是这么棒
        28
    Tengdw   353 天前
    那群人用所谓的中文编程写的代码还要用英文标点符号。。。嘛意思弟弟?
        29
    sumu   353 天前
    用中文学习英语?

    有本事就用中文从理论开始,用一百年时间再发明一套计算机体系,比如以五行、阴阳什么的作为基础的易经 xx 系统,否则就不要整这种乱七八糟的东西,说白了就是一层皮,还是 low 到家的皮,毫无价值,如果是骗国家补贴,那另说啊,如果可以,请带上我。
        30
    CallMeReznov   353 天前
    E 语言牛皮!(破音!
        31
    mohoumk2   353 天前 via Android
    我刚把那个天天宣传中文编程的给 b 了,现在又来一个………
    反正我的观点就是,只是单纯的翻译没什么意义
    但是能像写文章一样的中文编程我还是支持的
        32
    MeteorCat   353 天前 via Android
    是不是还得区分全角半角中文
        33
    quwabcxyz   353 天前 via Android
    @947211232 中文是个泛概念,它是好几种语言的杂合体,算是次语言,表达起来很困难,日常都不爱用。
        34
    zarte   353 天前
    js 可以部分使用
        35
    947211232   353 天前
    @quwabcxyz 那些都是没思想的硬中文,就像机翻一样,毫无营养可言,民以食为天,我喜欢好吃的。
        36
    abc635073826   353 天前
    @quwabcxyz 你仿佛在逗我笑
        37
    zifangsky   353 天前
    研究中文编程还不如一起来研究脑电波编程(手动狗头)
        38
    xpresslink   353 天前
    卤煮在试图解决一个并不存在的问题。
        39
    cyspy   353 天前
    CRUD 或者 UI 程序其实还行,语法糖多的,涉及到元编程的,用中文简直就是灾难
        40
    947211232   353 天前
    @xpresslink 是讨论一个问题,或者是论证什么是中文编程
        41
    kyuuseiryuu   353 天前
    打一行中文敲出来的拼音字符我能打多少行英文代码......
        42
    quwabcxyz   353 天前 via Android
    @abc635073826 对啊,博君一笑
        43
    xpresslink   353 天前   ♥ 1
    卤煮在试图解决一个并不存在的问题。

    编程的本质并不是用英文或中文,写代码时候那个些字符串只是某种符号,只是借助某种自然语言便于记忆。最后到机器那里都只是 0 和 1.

    编译器改一下,那些关键字用什么文都可以。C 语言就 32 个关键字,记忆力再差的人也不是负担。你把 if then 改成如果那么就能减小逻辑思维的负担了么?

    编程语言本身不是障碍,主要计算机编程是英美最先搞起来的,从基础的理论教学到技术文档和经验交流,最新最全的是英文的,而恰好你的英文又不好,这个才是障碍。

    不过说心理话这个还真没有什么好办法,好好学英文吧,多翻译一些英文资料成中文比你折腾这个有意义得多。
        44
    meik2333   353 天前
    https://i.loli.net/2018/12/21/5c1c55ae8e1d2.png
    https://i.loli.net/2018/12/21/5c1c55f59a665.png

    这种算是中文编程么。。。没有足够的能力把这些都翻译成英文,就直接上中文了。
        45
    quwabcxyz   353 天前 via Android
    @947211232 编程语言的趋势越来越数学化了,中文的机械理解多困难,歧义指数比较高,跟天猫精灵聊天好尴尬。单性器官都有几十种称呼,这种概率算法怎么算。
        46
    maplelin   353 天前
    语音编程?你吵着我用 TnT 了?
        47
    iango   353 天前
    楼主的第一个任务应该是搞一个脱离英文字符、包括键盘等硬件的中文输入方案。
        48
    xuanwu   353 天前
    @krixaar 之前组里提过, 还承蒙 zhpy 作者提点 ( https://github.com/program-in-chinese/overview/issues/95 ), 不过暂无投入. 个人认为现在大环境会比 zhpy 当年好很多, 因为很多非 IT 专业的都选择从 Python 入门. 但工程本身工作量较大, 有兴趣参与的话可以探讨下.
        49
    FantaMole   353 天前
    28L 倒是点醒了我,这个东西虽然大部分程序员觉得卵用没有,但是比国产浏览器还够噱头。就是在宣传公关的时候需要和易语言之类的区分开,类似那个国产浏览器要和 360 浏览器区分开,告诉公众(其实是领导)这个东西为什么与众不同,然后什么民族自豪感啊,中国自主核心技术啊,就往这上面引。这简直就是个为骗国家补贴而存在的点子。
        50
    luoway   353 天前
    楼主先学下易语言,说下易语言哪里不好,再来说下楼主想要的“中文编程”是什么
        51
    ZhLTE   353 天前
    统一标准是好事
        52
    947211232   353 天前
    @luoway 楼主都说了“中文编程”就是一个伪命题,为什么要学易语言,楼主想跟你们讨论的是你们定义的“中文编程”是什么
        53
    sl0000   353 天前
    魔幻主义
        54
    luoway   353 天前
    @947211232 #52
    实践出真知,如果楼主是易语言开发者,来布道的。
    作为其他语言的开发者,我们当然欢迎。
    但楼主作为一个门外汉,否定易语言,要“重新定义中文编程”。
    我觉得这是没有意义的。
        55
    pkookp8   353 天前 via Android
    游戏一般是语言文件
    我觉得可以做一种插件
    切换语言成中文,那么直接替换 int 为整形
    语言文件分关键词语言文件和项目语言文件
    myname 在项目语言文件中替换为我的名字
    提交代码时增加检测,新增关键词是否在项目语言文件中定义,相当于语法检测

    这样一来,谁都能看(毕竟语法不难),也都能写(ABC 甲乙丙一一对应,学会语法就行)

    结论是跑路从我做起
        56
    dachuige   353 天前
    易语言我也有用
    写出来的东西不比别的语言差到哪
    易语言为啥被鄙视,因为门槛低,多用于写非法的东西
    杀了人总不能去怪超市把刀卖给他吧
    适合自己的,能够高效率开发的就是好语言
    我们把编程工具当作真正的“工具”来用就行了
        57
    jimrok   353 天前
    故事讲的好,跟用什么语言真没关系。
        58
    af463419014   353 天前
    这主要是因为字节编码问题吧

    1byte=8bit,也就是 1byte 可以保存 256 种字符
    现在国际通用的标准就是 ascii 码,包括了字母(97-122,65-90),数字(48-57)和一些常用符号(括号,加减乘除,与或异或,大与小于,逗号句号等等)
    英文写的代码,每个字符可以转换为 1byte,并且以 ascii 为标准,编码转换不会有歧义

    但是其他语种(比如中文,日文,韩文),因为远超过了 8bit 的承受范围,不能使用 ascii 标准,每个字符需多个 byte
    目前国际上为了多国语言已经做出了很多努力,从 unicode,到 ISO,UTF,GBK,已经发布了太多的标准
    支持各国语言的 ISO 已经发布了 17000 多个国际标准,UTF 也有 UTF8,UTF16,UTF32,而专门支持中文的 GBK 标准也不少

    相信这里不少人在工作中都遇到过中文乱码的问题,即使解决了乱码,但是大多数也不会太深究其中的编码细节

    所以中文编程很容易造成不可描述的编码错乱
    而英文编程,实际上可以认为是 ascii 编程,或者字母编程,能很好的避免编码歧义
        59
    FrankHB   353 天前
    自然语言在表达精确含义的技术要求上通常是劣等的,因为:
    1.具有太多没有被清楚认知的歧义现象。
    2.包括歧义在内的文法性质通常不是人为有意引入的,而是演化上自然存在的。或者说,缺乏正向的“设计”。
    3.对演化路径不甚了解,连文法理论的框架基本目前都在逆向的过程中,没有严格公认的构造能写出 spec,且进展缓慢。
    作为典型自然语言书面语的中文符合所有这些问题。所以整体上这样的方案是不靠谱的,并且其投入产出完全不成比例——要想达到和人工语言类似的可靠性,基本就顺带先把中文相关的 NLP 问题解决了。现实证明,这个比设计可编程系统的难度要大得多。
        60
    947211232   353 天前
    @af463419014 又 get 到了,虽然知道编码但你将字节编码说得如此详细并结合论点讨论就很令人高兴了
        61
    947211232   353 天前
        62
    947211232   353 天前
    @FantaMole 你的讨论令楼主很高兴,thanks
        63
    FrankHB   353 天前
    @af463419014 你这里有明显的误读。
    1.文本编码问题即便在历史上有影响,例如输入和输出转换的问题,但现在已经有完善的方案解决,不会引起设计的困难。
    2.作为单位的 byte 是由具体语言规定的。ISO C 和 ISO C++中 byte 以 character type 定义,具有 CHAR_BIT bit,其中 CHAR_BIT>=8。
    POSIX 进一步限定 CHAR_BIT == 8。Java 等一些语言也直接假设 byte 具有 8 个 bit。大部分实现也符合这样的假设,以至于 byte 被不严格地作为 octet 的替代单位。但这不是 byte 的本来含义。
    作为反例,原版 TAOCP 的 MIX 使用 6bit 作为 1byte。
    3.ASCII 是 7-bit encoding。
    4.编码转换上的歧义本质上只有字符集表示上的原因,可以使用字符集并集解决。现在一般直接使用 Unicode,约定外部编码为 UTF-8。
    5.所谓的英文编程跟 ASCII 基本无关。例如,ISO C 和 ISO C++约定的 basic source character set 并没有涵盖整个 ASCII,事实上也有用 EBCDIC 的实现。而 extended source character set 早就被提议支持 Unicode 的特定子集了。前几天还有见过#define emoji 乱飞的……
        64
    gimp   353 天前
    这事儿得怪袁隆平
        65
    loading   353 天前 via Android
    楼主能不能写一段你觉得能看的中文编程伪代码放到 gist 上,大家评价一下。

    talk is cheap,show me the code.
        66
    xuanwu   352 天前
        67
    947211232   352 天前
    @quwabcxyz
    @littlewing
    @saulshao
    @envylee
    @defel
    @xuanwu
    @xpresslink
    @dachuige
    @af463419014
    @FrankHB

    由衷感谢你们的讨论,不管对错,但觉得你们都是在和楼主一起认真讨论,虽然楼主技术知识十分匮乏

    ——楼主只是想知道什么是中文编程,你们的中文编程是否活着,楼主不会坚持什么
    ——楼主只想汲取更多有营养的知识、思想
        68
    947211232   352 天前
    楼主其实连中文编程是什么都不知道,因为没有一个统一的定义、概念
        69
    FrankHB   352 天前
    实用的自然语言的可编程系统也就个别专家系统能够负担,通用的设计据我所知都不存在。
    所谓英文编程基本也是 YY 出来的——从英文里拿了几个单词的玩意儿就好意思叫英文了?
    大部分中文编程的逻辑类似。
        70
    xuanwu   352 天前 via Android
    @947211232 代码中的语法或标识符为中文都属于用中文编程 后者例子见 66 楼
        71
    947211232   352 天前
    @xuanwu 这只是中文编程语言,并不是中文编程
        72
    947211232   352 天前
    也就是说中文编程语言只是中文编程中的一个子集。
        73
    xuanwu   352 天前
    @947211232 当然. 使用中文命名并不需要中文编程语言即可实践, 因为大多数常用英文编程语言都支持了 Unicode 命名. 当然中文编程语言的语法应该让代码更接近中文使用习惯. 可以搜索'日语编程语言"抚子" - 第三版特色初探'一文, 看看日语编程语言的语法是如何借鉴日语语法习惯的.
        74
    947211232   352 天前
    @xuanwu 现在你的这个代价有点大,而且都不是属于自己的中文编程语言,依旧使用别人的编程语言,你的中文编程语言能不能摆脱对其他编程语言的依赖独立出来,否则习惯了使用其他编程语言,一旦更新当然是直接看官方的,你这种中文编程语言其实就是代理了其他编程语言,最怕代理的时候出错到时候这个锅官方可不背的。
        75
    xuanwu   352 天前
    @947211232 支持 Unicode 命名是所有非英语国家开发者都在使用的特性, 有些编程语言支持此特性至今已有十数年, 早已经过各国开发者社区检验. 这是在成熟通用的中文编程语言出现之前投入较小可以获得代码可读性提升的途径.
    而且实现通用的中文编程语言很有可能还需现有的英文编程语言实现, 在实现时使用中文命名是非常合适的, 因为用户和参与开发的都会中文.
        76
    quwabcxyz   352 天前 via Android
    英文编程也是要转录到符号制,机械语言都是都是可以任意关联的。看哪种效率更高,主要是中文的拆解和元音都是一摊泥,根基薄弱不成体系,用了怀疑人生,可以连话都不会说了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3386 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 32ms · UTC 04:34 · PVG 12:34 · LAX 20:34 · JFK 23:34
    ♥ Do have faith in what you're doing.