• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Actrace
V2EX  ›  程序员

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

  •  3
     
  •   Actrace · Jan 5, 2015 · 5519 views
    This topic created in 4320 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
    holystrike
    Jan 5, 2015
    1
    你这岂止是深坑,完全就是火坑

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

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

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

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



    要改就彻底一点:

    <?php ---> PHP文件

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

    @return --> 返回值

    function --> 函数

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

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

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

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

    比如说我摘抄一下:

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

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

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