V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Actrace
V2EX  ›  程序员

chnstyle, PHP 中文语义化计划。深坑。

  •  3
     
  •   Actrace · Jan 5, 2015 · 5149 views
    This topic created in 4141 days ago, the information mentioned may be changed or developed.
    昨天脑洞大开。。。
    chnstyle是一个专注将PHP原生函数进行中文语义化重写的一个计划。
    对于大部分生活在中文环境的入门编程者来说,纯英文代码对于程序理解是一个很大的障碍
    我们认为编写程序是针对问题寻找机械化的解决方案,因此对于程序员来说,编程语言只是一种工具
    即使是PHP这种足够简单的编程语言,仍然需要进行优化,以适应初学者

    https://github.com/actrace/chnstyle
    Supplement 1  ·  Jan 5, 2015
    楼下很多同学其实都误解了这个计划的目的。

    本计划旨在让使用PHP进行编程的初学者能够深入理解编程,而不是为了学习如何使用这门编程语言。
    大部分内容都中文语义化后,实际上能够很好的加速对代码的解读。
    也就是说,至少是站在对代码解读重要性的认识上,你才有继续下去的基础。
    至少把README看完吧?
    60 replies    2016-12-24 15:44:23 +08:00
    holystrike
        1
    holystrike  
       Jan 5, 2015
    你这岂止是深坑,完全就是火坑

    烧死人不偿命啊
    drush
        2
    drush  
       Jan 5, 2015
    爲何不直接用 易語言?
    Actrace
        3
    Actrace  
    OP
       Jan 5, 2015
    @drush 是为了教PHP。。。
    haiyang416
        4
    haiyang416  
       Jan 5, 2015 via Android
    毁人不倦。
    miyuki
        5
    miyuki  
       Jan 5, 2015 via Android
    倒不如让初学者提高英文水平
    mahone3297
        6
    mahone3297  
       Jan 5, 2015
    什么意思?就是易语言的意思?
    xz
        7
    xz  
       Jan 5, 2015 via Android
    不如直接去学易语言得了
    abelyao
        8
    abelyao  
       Jan 5, 2015
    楼主别这样…
    翻译这件事,翻译得好,初学者容易理解,但如果翻译得稍微有歧义,影响可能就很大了。
    私以为、PHP 的英文单词也不复杂,如果想学的,那些 function 不会成为障碍,何况还有 IDE 强大的代码提示功能。
    Kilerd
        9
    Kilerd  
       Jan 5, 2015 via Android
    没意义,你这相当于写一个IDE,基于中文编程的php。

    没多大用处吧。
    Actrace
        10
    Actrace  
    OP
       Jan 5, 2015
    @abelyao 其实任何东西想学都不难。不过我只是想把学习天梯缩短。实际上大多数PHPer水平真的很烂,不是他们无法写代码,而是他们不知道其原理。“开源”的特性造成了大部分的PHPer习惯于复制粘贴而忽略实现的过程,对于进阶来说是一个很大的阻碍。
    我希望能够通过这样一个计划,在入门的时候就让初学者明确进阶方向,避免误入死胡同。
    BigUncle
        11
    BigUncle  
       Jan 5, 2015
    我看成中文划词了。。。
    anewg
        12
    anewg  
       Jan 5, 2015
    1k多函数,慢慢磨是能磨完的。注释就ok了,函数名和参数就不要中文了吧。。。
    Actrace
        13
    Actrace  
    OP
       Jan 5, 2015
    @Kilerd
    @mahone3297

    中文语义化,不等于中文编程。
    abelyao
        14
    abelyao  
       Jan 5, 2015
    @Actrace 我去看了一下你这个 GitHub,感觉还不如提供函数名中文词典。
    另外到现在学了这么多语言,从没觉得把函数名换成中文的就能缩短学习的天梯了,你再怎么扩展中文版的函数,你也避免不了 public, private, array, string, int, function, var 等等这些单词。
    最后补充一句,如果学一门语言,函数名都要靠背来记住的,那真的不适合学了。
    wwek
        15
    wwek  
       Jan 5, 2015
    佩服 楼主的勇气. 也佩服你的工作!
    加油
    nbndco
        16
    nbndco  
       Jan 5, 2015
    这个很简单的啊,写一个函数名的映射就好了,不就是翻译几个名字么。
    像你现在这个还有return,根本就不彻底,直接写个预处理用替换功能搜索替换一下就可以做到全中文了。
    haiyang416
        17
    haiyang416  
       Jan 5, 2015   ❤️ 1
    @Actrace 请不要做可能将初学者引入歧途的东西。中文函数并不能让他们明白其原理,既然你说任何东西想学都不难,你应该引导他们学习英语,学习比 PHP 更底层的 C 语言,学习信息技术理论。

    如果一个初学者一开始就“被人教育”写中文函数这类只能自己看懂,不可交流,不可复用打代码,实在是太可悲了。
    coolicer
        18
    coolicer  
       Jan 5, 2015
    还不如写一段中文的注释在旁边
    invite
        19
    invite  
       Jan 5, 2015
    这个跟中文域名一样,脱裤子放屁。



    要改就彻底一点:

    <?php ---> PHP文件

    /** **/ --> 注释开始 注释结束

    @return --> 返回值

    function --> 函数

    $字符串 -> ¥字符串
    icedx
        20
    icedx  
       Jan 5, 2015 via Android
    调试输出 '神奇的易语言'
    luoyou1014
        21
    luoyou1014  
       Jan 5, 2015
    支持楼主,话说我也想参与下。
    robertlyc
        22
    robertlyc  
       Jan 5, 2015
    意义不明
    atan
        23
    atan  
       Jan 5, 2015
    函数 字符串长度 小括弧开 变量字符串 小括弧关...
    robertlyc
        24
    robertlyc  
       Jan 5, 2015
    中文二义性更多 if 是翻译成"如果" 还是"假设" 还是"若"
    x86
        25
    x86  
       Jan 5, 2015
    话说我在贴吧里看过有用中文写PHP的...
    feiyuanqiu
        26
    feiyuanqiu  
       Jan 5, 2015
    没看出有什么意义
    lvfujun
        28
    lvfujun  
       Jan 5, 2015
    楼你把所有函数实现思想写个文档我感觉就挺好.
    hfcorriez
        29
    hfcorriez  
       Jan 5, 2015
    从项目本身存在的价值来说,基本没有意义。因为编程本身已经处于一个时代的环境中,被环境所认知了,如果你让非常新的新手去学习一个中文编程。首先他还是要学习这些函数,这个门槛还是在;其次他没法通过大环境了解到他怎么去学习(因为搜不到,StackOverflow 和 SF 都没有);最后如果你无法维护的很好,那就真带人进沟了。

    但是如果做为个人项目去尝试做语法的解析和模式替换之类,对自己的学习是很有帮助的,建议自己做但不要到处拉人来用。别害了人家!
    RemRain
        30
    RemRain  
       Jan 5, 2015   ❤️ 1
    作为一个中文项目,项目名和 LICENSE 居然不是中文,差评
    RemRain
        31
    RemRain  
       Jan 5, 2015
    文件名也是英文的,再差评,强烈建议汉化以下文件名:
    index.php -> 索引。拍黄片
    README.md -> 读我。妈蛋
    BGLL
        32
    BGLL  
       Jan 5, 2015   ❤️ 1
    在这里发这个绝对会被喷,楼主应该去中文编程的论坛去发,易语言、快手什么的
    我觉得还是有意义的,如果像易语言一样有个适用于中文的IDE的话。

    楼上那些说中文编程没意义的肯定没用过或者只是试玩过一下的,我用过快手和易语言,并用易语言开发过几个完整的软件,输入速度不慢于英文甚至快于输入英文(以C++、Python、C#为参照),因为只要输入首字母后面的能自动补全,相比英文的中文单词很难超过5个字,而输入一般只要输入2、3个字后面就能补全了,比如getText()要补全至少得输入gett 而 取文本()只用qw。这对初学者易用太多了,要记忆的东西少多了。

    对初学者中文上手都肯定是好于英文的,这还用怀疑?虽然关键字很好记,但是各种函数名初学者一眼看的懂?
    不过我觉得如果只是把单词映射翻译一下,不能减少很多学习php的难度,倒不如把各个函数的使用方法翻译了,然后做一个快速查询工具,比如光标移动到函数名上显示函数的用法之类的......
    yegle
        33
    yegle  
       Jan 5, 2015
    初学编程遇到的第一个难点不是用英文写代码,而是理解概念。这种项目明显就是假设使用者已经理解部分编程基础。

    比如说我摘抄一下:

    /**
    * (PHP 4, PHP 5)
    * 获取字符串长度
    * @param string $字符串
    * @return int 返回目标字符串长度
    */

    请问什么叫字符串?int是什么?string是什么?

    /**
    * (PHP 4, PHP 5)
    * 使用一个字符串分隔符分割另一个字符串,得到一个数组.
    * @param string $分隔符 用于在 $字符串 中进行切割数组的字符串.
    * @param string $字符串 此变量将会被分隔符切割成数组
    * @param int $最大数组单元 此项为可选项,当传入了此变量时,所返回的最大数组单元数将不超过设置值.如果值是0,则会当做1.如果值是负数,则返回除了倒数设置值个元素外的所有元素。
    * @return array 返回一个数组
    */

    请问什么是数组?

    function 字符串长度($字符串){
    return strlen($字符串);
    }

    什么是function?什么是return?
    sujin190
        34
    sujin190  
       Jan 5, 2015
    @yegle +1
    BGLL
        35
    BGLL  
       Jan 5, 2015
    @yegle
    初学者看
    数组 -- array
    和你看
    array -- tableau(法语数组)
    的难度一样
    用英文不仅要学 array 的含义还要记 array 的拼法,和你不久要学 tableau 的含义还要记 tableau 的拼法一样,莫菲直接用自己母语不更易学? 用母语望文生意的能力不更强?输
    初学者母语上手都肯定是好于英文的,这还用怀疑?
    m939594960
        36
    m939594960  
       Jan 5, 2015
    与其弄这个 都不如去弄个中文phpide 可以参考 e4p 本人也很想开发一个 。。 不过心有余而力不足!
    kisshere
        37
    kisshere  
       Jan 5, 2015 via Android
    PHP的die函数和exit函数就成这样了:
    if($用户名=="")
    {去屎吧("用户名不能为空");}

    if($用户名=="")
    {滚粗("用户名不能为空");}
    kookxiang
        38
    kookxiang  
       Jan 5, 2015
    本身PHP函数命名就够乱的了,楼主还要乱上加乱……
    你项目中的例子:
    字符串切割为数组 OR 字符串切割成数组 OR 字符串切割到数组
    你要玩死开发者么 = =
    Actrace
        39
    Actrace  
    OP
       Jan 5, 2015
    @luoyou1014 欢迎参与提交文件~
    kaneg
        40
    kaneg  
       Jan 5, 2015
    楼主,不是泼你冷水,这样做真的没必要,你要做的就如上面几位说的,最多做一些函数注释的中文翻译。这么多年了,编程语言以英文作为书写语言,就像数学用阿拉伯数字0-9,而不用中文的一,二,三是一样的道理。
    yegle
        41
    yegle  
       Jan 5, 2015 via Android
    @BGLL

    是,你可以告诉初学者数组是数组,但你告诉初学者return是返回,他就可以不在代码里打return这几个字符吗?最终还是要死记硬背R-E-T-U-R-N。
    BGLL
        42
    BGLL  
       Jan 5, 2015
    @yegle 为什么要打R-E-T-U-R-N,换成返回不就得了。全部换成中文不行吗?
    另外大部分非英语编程语言都是 相应语言关键字+英文关键字 可以混用的,只是楼主这个还没完善,不代表非英语编程没用
    yegle
        43
    yegle  
       Jan 5, 2015 via Android
    @BGLL
    你的意思是用了
    yegle
        44
    yegle  
       Jan 5, 2015 via Android
    @BGLL 你的意思是学完楼主的项目就自己开发一个中文语言自己用,不用看别人代码也不准备写了代码别人用?当然可以啊,欢迎中文编程爱好者自己组个小团体。
    bingu
        45
    bingu  
       Jan 5, 2015
    “ " "
    Actrace
        46
    Actrace  
    OP
       Jan 5, 2015
    @bingu 输入法可以设置的。。。符号这块不用单心。。
    BGLL
        47
    BGLL  
       Jan 5, 2015
    @yegle 楼主说了教编程用。
    这跟不用看别人代码也不准备写了代码别人用有任何关系?你的逻辑是什么?不是英文就不能用了?
    非英文的编程语言\开发工具多的去了:
    http://en.wikipedia.org/wiki/Non-English-based_programming_languages
    在教育、行业软件、非职业软件开发上母语编程有其易学的优势,国内看到中文编程就是讥讽真是Bigger than bigger。像是学了个C语言就鄙视学LOGO的了....
    Yien
        48
    Yien  
       Jan 5, 2015
    辛苦了,支持!
    tinyhill
        49
    tinyhill  
       Jan 5, 2015
    楼主有这心情,还不如回家多煎俩荷包蛋吃…
    finian
        50
    finian  
       Jan 5, 2015
    无意泼冷水,不过这种做法显然是治标不治本,吃力不讨好。
    shiny
        51
    shiny  
    PRO
       Jan 5, 2015
    楼主还不如来帮忙翻译 PHP 手册
    picasso250
        52
    picasso250  
       Jan 5, 2015
    我喜欢这个项目,加入了。
    Actrace
        53
    Actrace  
    OP
       Jan 5, 2015
    @picasso250 欢迎入坑.
    msg7086
        54
    msg7086  
       Jan 6, 2015
    为什么要重新发明易语言呢?
    非英语编程势必要引入输入法。
    全程靠输入法势必会产生各种错别字之类的问题。
    所以势必需要一个IDE。
    这个IDE,易语言在15年前已经做过了,而且很成功,在VS2003出来之前根本找不到什么对手。
    楼主你真的想好完整地重新发明一遍这个轮子了吗?
    hxtheone
        55
    hxtheone  
       Jan 6, 2015
    看完README,仍然觉得没有特别大的意义,这样做还不如给PHP所有原生函数写一个中文的注释手册,说不定更有用
    zonyitoo
        56
    zonyitoo  
       Jan 6, 2015
    看了一下index.php,看来意思是想把函数名和参数名翻译一下?
    那不如楼主做个更好一点的中文手册。
    楼主面向的那些水平低到连手册都看不懂的PHP开发者,你怎么就能保证你用中文写了函数名之后,他们的水平就会提高了呢?
    2unc
        57
    2unc  
       Jan 7, 2015
    各行各业都是有门坎的,而要从事这个行业英语是绕不过去的,硬着头皮学才是真正的捷径,越往后拖越是绕远路。
    yegle
        58
    yegle  
       Jan 7, 2015
    忘了跟楼主说了,有个PHP函数叫rename_function
    http://php.net/manual/en/function.rename-function.php
    Actrace
        59
    Actrace  
    OP
       Jan 7, 2015
    @yegle 谢谢~
    一眼看上去似乎挺符合需求~不过有两个问题没法解决。
    1,APD扩展需要额外安装,而且似乎没有对应的DLL,这意味着无法在windows上使用。
    2,函数注释还是需要中文化的。
    mingyun
        60
    mingyun  
       Dec 24, 2016
    2 年过去了,楼主的项目果然烂尾了,只写了 116 行
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5626 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 150ms · UTC 09:00 · PVG 17:00 · LAX 02:00 · JFK 05:00
    ♥ Do have faith in what you're doing.