作为使用者,我非常喜欢用 php 开发的程序;作为开发者,我讨厌 php - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tini8
V2EX    程序员

作为使用者,我非常喜欢用 php 开发的程序;作为开发者,我讨厌 php

  •  
  •   tini8 2014-12-19 09:42:09 +08:00 7497 次点击
    这是一个创建于 3962 天前的主题,其中的信息可能已经有所发展或是发生改变。
    php开发的程序部署太方便了,windows、linux、mac平台都有丰富的安装包供选择,phpmyadmin管理mysql数据库堪称利器,网上各种成熟的网店、cms、bbs程序,应有尽有,下载下来丢到文件夹稍作配置就能跑起来,各种好用各种方便。

    但是作为开发者,php语言写起代码来心塞
    第 1 条附言    2014-12-19 11:31:04 +08:00
    感谢神,兼具ruby的优美和php的易部署的语言已经存在了

    https://github.com/slash-lang/web/blob/master/pages/home.md
    56 条回复    2014-12-20 10:50:58 +08:00
    ConteMan
        1
    ConteMan  
       2014-12-19 09:49:57 +08:00
    为啥写起来心塞 0.0
    baichi
        2
    baichi  
       2014-12-19 09:51:17 +08:00   1
    @Conte 因为PHP是世界上最好的语言
    tini8
        3
    tini8  
    OP
       2014-12-19 09:54:00 +08:00
    @Conte 写了快10年了,php的函数命名、参数位置还是记不住
    zhkzyth
        4
    zhkzyth  
       2014-12-19 09:55:44 +08:00
    我是觉得它比起python来,不够智能优雅=.=
    baichi
        5
    baichi  
       2014-12-19 09:56:50 +08:00
    coldwinds
        6
    coldwinds  
       2014-12-19 09:58:00 +08:00
    有哪种语言的的函数命名、参数位置你是记得住的?
    roys
        7
    roys  
       2014-12-19 10:00:00 +08:00
    赶紧技术转型~
    我开始学ruby了。
    tini8
        8
    tini8  
    OP
       2014-12-19 10:00:35 +08:00
    @coldwinds 问这种问题说明你对php还不够了解,或者对php之外的语言不够了解。
    tini8
        9
    tini8  
    OP
       2014-12-19 10:01:33 +08:00
    @roys ruby on rails用起来不方便,光部署程序就有很高的门槛,注定小众
    roychan
        10
    roychan  
       2014-12-19 10:20:55 +08:00
    @tini8 学习曲线略显陡峭,但是一旦入门会很惊喜。部署程序也不是很难吧…
    darkmatter
        11
    darkmatter  
       2014-12-19 10:23:19 +08:00   1
    跟我学做菜吧~
    TangMonk
        12
    TangMonk  
       2014-12-19 10:23:41 +08:00
    @tini8 ruby on rails注定不适合web 开发新手
    tini8
        13
    tini8  
    OP
       2014-12-19 10:29:27 +08:00
    @roychan 难者不会,会者不难,你无法想象php新手有多菜,这个圈子有多烂,我见过连ftp软件都不会用的,只会在IE6里面输入ftp地址,然后拷贝文件,正是php的这种低门槛,才让它火起来的。
    WildCat
        14
    WildCat  
       2014-12-19 10:29:51 +08:00
    @tini8 Rails部署门槛高?这也说明你对php之外的语言不够了解。
    难道您认为的部署门槛低就是FTP传上去就可以运行了是吗?
    tini8
        15
    tini8  
    OP
       2014-12-19 10:31:01 +08:00
    @WildCat 对很多公司来说,部署就是FTP上传
    WildCat
        16
    WildCat  
       2014-12-19 10:31:34 +08:00
    @tini8 那就不辩论了。
    tabris17
        17
    tabris17  
       2014-12-19 10:31:47 +08:00
    PHP门槛低,学习曲线平缓,5.6之后高级语言特性也丰富了。我觉得还行
    hging
        18
    hging  
       2014-12-19 10:34:57 +08:00
    @tini8 你以为PHP的环境很容易搞么.........
    tanywei
        19
    tanywei  
       2014-12-19 10:52:19 +08:00
    python党来了,鄙视PHP啊, . 是最优美的连接字符串符。
    kmvan
        20
    kmvan  
       2014-12-19 10:53:02 +08:00
    感觉比较错对象了。PHP 能跟 C那些语言相比较吗?两者应用层面不同,PHP也是C搞出来的不是吗?PHP 本来就是大笨象的英文,笨笨重重的十分形象,有些函数天然呆这就是 PHP 的萌点好不好。如果说 PHP 坑多,我想往往就是能否跳过这些坑决定了能否成为一流的 PHP 开发者,这些坑可以说是门槛吧。语言并没有好坏之分,他们大多都会进步,随着版本的迭代,不科学的地方将会被改进,请不要用一成不变的眼光来看待 PHP。
    因此,PHP 将是世界上最好的语言。
    jarlyyn
        21
    jarlyyn  
       2014-12-19 10:54:05 +08:00
    作为使用者,我很讨厌php。作为开发者,我最厌恶php。作为一个工作者,我要靠php赚钱。
    66beta
        22
    66beta  
       2014-12-19 10:57:02 +08:00
    PHP出生时就是函数式的,而且函数多页好用啊,有系统级的函数不用,你老想自己单独开发一个?
    PHP入门简单,但是要精通还是很难的,像我这种停滞不前的新手,也就会用用CI这种大众化的框架了
    frankzeng
        23
    frankzeng  
       2014-12-19 11:20:35 +08:00
    @hging 真的容易搞,因为有一键安装包,无论linux还是windows,一个包帮你搞定。
    hging
        24
    hging  
       2014-12-19 11:22:27 +08:00
    @frankzeng 一键包....现在最不信任的就是一键包.....如果出各种bug都无从下手......
    frankzeng
        25
    frankzeng  
       2014-12-19 11:27:28 +08:00
    @hging 所谓一键包装完还不是一样的,可以各种改配置,只不过装完立即可以用而已。消费者不是都喜欢选择折腾的,有时候简单粗暴更好。
    jarlyyn
        26
    jarlyyn  
       2014-12-19 11:34:44 +08:00
    顺便说一句,我不觉得php容易部署。一般来说,我觉得php更难部署。
    一般语言的部署,一般都是安装依赖,设置端口,设这assets目录,执行主体程序,结束。
    php程序,真正要部署的话,往往还要指定那些文件可以作为php执行,哪些不可以,特别是上传文件的目录。
    hging
        27
    hging  
       2014-12-19 11:35:23 +08:00
    @frankzeng 看25L .
    jarlyyn
        28
    jarlyyn  
       2014-12-19 11:36:19 +08:00
    当年传说中的nginx漏洞,不就是某个包中,.jpeg.php的文件会传给apache,然后再以php格式来执行么?php部署的难度可见一斑。
    hging
        29
    hging  
       2014-12-19 11:36:21 +08:00
    BTW 我是不是可以说我只要配置好我直接在我本地直接敲cap production deploy然后就可以出去喝茶上厕所就是易部署了呢?
    哈哈 我暴露了. 我是写ruby的.
    jarlyyn
        30
    jarlyyn  
       2014-12-19 11:39:59 +08:00
    然后php的难度还在于,你的代码给到别人时,往往要给别人三套http服务器的配置。
    主要是伪静态,deny,sethanler。
    apache一套,nginx一套,iis一套。
    iis往往根据不同版本还要不同,不是一般的蛋疼。
    xwsoul
        31
    xwsoul  
       2014-12-19 11:40:38 +08:00
    不要总是诟病参数问题了, 参数这个东西有统一的规范么? 没有

    只不过PHP对老版本保持了很高的兼容性.所以, 会有很多历史遗留问题, 包袱也不是一下可以甩干净的.
    PHP 开发我从来没有脱离过手册, 我也无法清晰的记得很多基础函数的参数的位置.但是IDE可以帮你做这些事情不是嘛?非要用低效率的编辑器充当IDE, 那我也就不说什么了.

    另外, 如果实在觉得蛋疼, 完全可以实现一套自己的框架或者编码库来统一对函数位置的记忆问题, 不过我相信就算是自己写的这些东西, 时间久了自己也还是会忘记每个位置对应的参数是啥, 因为程序这个东西, 本来就是编写的时候是这么设计的, 不在当时的开发情况下, 根本不应该妄断参数的位置是否合理.

    另外, 以Python来说, 尽管他可以直接以参数名传参, 但是你确定自己可以记得每个参数的名字嘛? 我觉得也是不行的吧.

    最后, PHP是最好的语言.
    huigeer
        32
    huigeer  
       2014-12-19 12:34:44 +08:00
    最后, PHP是最好的语言. 楼下继续
    roychan
        33
    roychan  
       2014-12-19 12:35:27 +08:00
    @tini8 很多时候正因为 PHP 易于部署的特性才导致了它的流行,而与此同时,PHP 入门级应用的丰富与易用性让更多人接触到了这门语言。
    tabris17
        34
    tabris17  
       2014-12-19 12:46:28 +08:00
    @jarlyyn 这是配置不当造成的
    jarlyyn
        36
    jarlyyn  
       2014-12-19 13:48:41 +08:00
    @tabris17 所以我说php难部署啊……
    部署php可不是ftp传几个文件的问题……
    nine
        37
    nine  
       2014-12-19 13:58:21 +08:00
    所以从一年前正式转ruby了
    coolicer
        38
    coolicer  
       2014-12-19 14:11:59 +08:00
    slash-lang 有很成熟各种程序吗?
    thanksir
        39
    thanksir  
       2014-12-19 15:07:09 +08:00
    工作php,但我已经想转python了
    coldwinds
        40
    coldwinds  
       2014-12-19 15:07:32 +08:00
    @tini8 自己想法幼稚还特别能下结论。
    tini8
        41
    tini8  
    OP
       2014-12-19 15:11:49 +08:00
    @coldwinds 对你自己的描述蛮准确的嘛
    coldwinds
        42
    coldwinds  
       2014-12-19 15:16:36 +08:00
    @tini8 v2里混入这种人我也无语
    tini8
        43
    tini8  
    OP
       2014-12-19 15:44:56 +08:00
    @coldwinds 你有什么资格代表v2,臭不要脸
    coldwinds
        44
    coldwinds  
       2014-12-19 15:52:40 +08:00
    @tini8 你看看你
    skybr
        45
    skybr  
       2014-12-19 15:55:18 +08:00
    随便问个问题, 有多少人认为php是真的热部署的?
    chemzqm
        46
    chemzqm  
       2014-12-19 15:59:05 +08:00
    php写起来相比其它语言都要容易一些,就是看起来经常各种恶心的封装,还有满屏的$
    tini8
        47
    tini8  
    OP
       2014-12-19 15:59:50 +08:00
    @chemzqm 真知灼见。
    jarlyyn
        48
    jarlyyn  
       2014-12-19 17:05:57 +08:00
    @chemzqm php写起来也没比其他语言容易,不过天生是个很好的模板语言,写个简单模板比较容易。不过也可以通过前台+ejs之类模板来接近。
    vaNo
        49
    vaNo  
       2014-12-19 17:59:02 +08:00
    主要是因为PHP没有像visual studio这样好用的IDE!
    jsjscool
        50
    jsjscool  
       2014-12-19 18:26:03 +08:00   1
    哈哈!为什么最近V2EX比较语言的人这么多!你们的言论很容易误导初学者的。每门语言都值得去学,学牛逼之后都能成为大神。在这里数落语言的,基本都是菜鸟!
    zhujinliang
        51
    zhujinliang  
       2014-12-19 19:37:13 +08:00 via iPhone
    php最郁闷的是外层变量不能直接进函数,还得来个global关键字。其它的都很好,尤其圆点(字符串连接)跟加号(数值相加)的区分,简直万能胶啊。去客户那部署写些转换工具太顺手了
    jacob
        52
    jacob  
       2014-12-19 21:29:33 +08:00
    我觉得php不好的地方是->符号总是搞忘,还有require echo这类语言结构,弄成函数多好。简单说php好用,但不优雅。
    msg7086
        53
    msg7086  
       2014-12-20 05:38:50 +08:00
    @jacob 向前兼容性。

    @frankzeng 一个安装包搞定,然后每隔一段时间来折腾一下Bug修一下配置恢复一下被人黑掉的网站什么的,不算是很简单的活吧。

    @tini8 Ruby On Rails本身已经把很多工序自动化了。
    数据库建表可以用rake,生成assets可以用rake。
    启动网站程序有Passenger也可以用Unicorn之类的独立程序。
    像我用Unicorn的,写好一个万能的配置文件unicorn.rb,往里一放,然后往systemd里写个简单的配置文件,就可以轻松做成系统服务。真的非常非常难么?

    PHP,首先你不可能写自动化程序。(难道要写makefile?)
    所以数据库建表需要
    (a) 安装PMA,打开PMA,建立数据库,导入SQL文件;或者
    (b) 让程序员为软件编写一个安装程序,就像DZ/PW/WP之类的软件那样。
    生成assets……有多少网站会用assets pipeline么
    然后要跑PHP程序,不还是得修改nginx/apache的配置么。

    其实那种上传FTP就能部署的服务器,本身也要安装面板才能方便地维护。
    而面板本身又会带来漏洞。
    什么?你用Windows?已醉。

    所以说PHP更方便部署其实不算太正确。

    ----

    PHP做成现在这样其实还是为了向后兼容性。
    语言一旦建立起来了就很难随便再改动了。
    否则后果参照Py3。
    frankzeng
        54
    frankzeng  
       2014-12-20 10:05:44 +08:00
    @msg7086 要是一个不懂的人从零安装,从零配置,你会觉得就更加可靠可安全?
    hyzjshwo
        55
    hyzjshwo  
       2014-12-20 10:50:46 +08:00
    做为一个ruby党,每写一行php代码我都觉得心里压抑,特别是用laravel这样的rails风格的php框架,我真是精神分裂,但是公司项目用php做的。。 没办法。。
    msg7086
        56
    msg7086  
       2014-12-20 10:50:58 +08:00 via iPhone
    @frankzeng 从零是什么心态…用系统包不好么
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3367 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 00:08 PVG 08:08 LAX 17:08 JFK 20:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86