译者注:这篇文章很长,而且可能读起来很乱,很难懂前言我的脾气古怪. 我会抱怨很多东西. 这个星球上大多数技术我都不喜欢.PHP不仅使用起来尴尬, 还有要嘛我想要的不适合, 要嘛不是最令人满意, 要嘛违背我的信仰. 我可以告诉你关于一门语言, 所有我想避免的好方式, 所有我喜欢的坏方式. 来吧, 问吧! 谈话会很有趣!php是唯一的例外. 几乎php抽象的所有东西都是支离破碎的. 包括语言, 框架, 整个生态系统都一塌糊涂. 我几乎不能单独列出咒骂的事情, 因为它全身都坏了. 每次我打算编辑一堆杂乱如麻的php抱怨清单的时候, 我都被一些琐事打乱, 越深入就越会发现其它令人震惊的事情.php让人难堪. 它是如此的破碎, 但那些被培训的业余爱好者, 却对它称赞不已. php在做一些徽不足道的挽回措施, 但我选择忘记它.不过我得让我的系统摆脱这些东西, 也就这样了, 这是最后一次尝试.打个比喻我只是随口和 Mel 抱怨下, 而她却坚决让我发表出来.我甚至说不出来PHP到底怎么了, 因为 -- 还好. 想想你有一个, 嗯, 工具箱吧. 一堆工具. 看起来还好, 有标准的东西.你拔除螺丝钉, 它怪异的有三个头. OK, 好吧, 这对你不太有用, 但你猜迟早有天会有用.你拿出榔头, 被震住了, 两边都有是尖爪. 但它仍然能用, 我的意思是, 你可以用两头的中部斜着敲.你拿出老虎钳, 但它们没有锯齿面. 表面平而光滑. 这没多大用, 但依然能用, 没什么.你可以继续. 工具箱的东西都是怪异和琢磨不定的, 但又不能说毫无价值. 整体看没什么大问题; 它的工具都齐全.现在, 想象有很多使用这些工具的木匠, 它们和你说:"这些工具有什么问题呢? 我们都用过, 它们工作都很好啊!". 工匠们给你展示他们建的房子,每个门都是五边形的而屋顶是癫倒的. 你敲前门, 它向内倒榻了, 而他们却抱怨你打破了他们的门.这就是PHP的问题.立场我认为下面的特质对于一门语言的生产力和可用性是重要的, 而PHP在大范围破坏它们. 如果你不同意这些, 好吧, 我无法想像, 我们永远不会达成一致.>> 一门语言必须是可预见的. 它是將人类的思想反映给计算机执行的媒介, 因此它的关键是, 人类对程序的理解实际要正确.>> 语言必须一致. 相似的东西就要看起来相似, 不同的就是不同. 学习了语言的部分知识, 就应能很容易理解剩下的部分.>> 语言必须简洁. 新语言应该减少继承旧语言的不好的形式. (我们也可以写机器码.) 新语言当然应努力避免织入新的特有的形式.>> 语言必须是可靠的. 语言是解决问题的工具; 应尽量避免引入新问题. 任何"陷阱"都会大量的分散注意力.>> 语言必须是可调试的. 当出错的时候, 程序员必须修正它, 我们需要获得我们想要的帮助.我的立场是:>> PHP到处处充满惊奇: mysql_real_escape_string, E_ACTUALLY_ALL>> PHP不一致: strpos, str_rot13>> PHP需要特别形式: error-checking around C API calls, ===>> PHP古怪: ==. for($foo as &$bar)>> PHP晦涩: 默认无栈跟踪或fatals, 复杂的错误报告我不能就单个问题解释为什么它归为这些类, 否则將会没完没了. 我相信读者自己会思考.不要再和我扯这些东西了我知道很多有利的论点. 我也听到很多反驳的论点. 这些都只能让谈话立即停止. 不要再跟我扯这些东西了, 求你了. :(>> 不要和我说"好的开发者能用任何语言写出好的代码", 或者坏开发者.. 吧啦吧啦. 这毫无意义. 好的工匠可以用石头或锤子驾驭钉子, 但你见过有多少工匠用石头的? 成为一个好开发者的标准之一就是善于选择工具.>> 不要和我说熟记上千个例外和古怪行为是开发者的职责. 是的, 这在任何系统中都是必要的, 因为电脑是傻的. 这不意味着, 系统能疯狂的接受而没有上限. PHP有的