黑PHP是其他业余程序员的日常了吗?

论坛 期权论坛 工作     
爱用户   2019-8-19 01:17   3364   5
php劝退是什么鬼?

说这些言论的人脑子是坏了吗?

说php脏的是不是要去医院把自己大肠割了~

因为大肠里装的都那啥!

一门语言只是一个工具!

最少php在动态网页领域是无敌的!

现在发热的也是这个领悟!

虽然现在很多公司用go java 但是这冲突吗?

煎牛排就比盖浇饭高大上?
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
热心回应  16级独孤 | 2019-8-19 01:17:16 发帖IP地址来自
别这么激动,没什么语言是无敌的,你也没必要那么忠贞只守着一门语言。
php的问题主要是整体逼格不够,听说世界上80%还是90%的网站都是用php的,但中小应用偏多,大应用很少。如果题主能做那种一二线网站,比如说facebook或者百度的php项目,并发数非常大,业务逻辑有一定复杂度,我觉得是非常好的经历,完全没必要退,而且你会接触到非常多的技术和其他的语言。但如果只是在外包的中小项目中打滚,我觉得可以考虑改变一下,因为好多老代码真的挺脏的,开发体验不好。这个大家心里都有杆秤,你要自己衡量你自己日常工作的技术含量,而不是使用什么语言。
关于脏不脏,我觉得ruby更脏,但人家ruby项目把脏东西藏的好,题主那个大肠的比喻特别好,有脏东西不怕,你得装大肠里,不能放外面。这方面php项目这些年的进步是巨大的,不过老代码和老php程序员的编程习惯已经在那了,有点积重难返,所以要远离这种人和项目,而不是远离PHP。
评论区的评论很多其实和我的回答无关,都是意气之争,大家不用太在意。兄弟我也是当过两年PHP架构师的,我可以用php做很高的并发服务,性能并不是问题,而且对于多数web服务,与其换种语言,不如把数据库调一调。所以没有鄙视任何语言的意思。我不希望年轻的Php程序员固步自封,还是应该睁开眼看这个世界的。
3#
热心回应  16级独孤 | 2019-8-19 01:17:17 发帖IP地址来自
黑PHP,没什么意思。

然而反过来黑其他语言呢?那又变成了五十步笑百步。

冤冤相报何时了?OMG
4#
热心回应  16级独孤 | 2019-8-19 01:17:18 发帖IP地址来自
你们都没注意到吗?人家说的是黑php是“业余”程序员的日常。
所以正确的回答是“不是”,因为吹php才是“业余”程序员的日常,黑php的是“专业”的程序员。

题主的素质充分体现了某个现况。
5#
热心回应  16级独孤 | 2019-8-19 01:17:19 发帖IP地址来自
业余程序员 Michael Snoyman;下图来自 Developing Web Applications with Haskell and Yesod



PHP SKRRRRRRRRRRRR


然后是喜闻乐见地吐槽 @eechen  时间:
Perl和PHP用点号(.)连接字符串的好处是不用像JS等脚本用加号(+)连接字符串时进行额外的判断
确定是否是字符串连接需要判断二者是不是 string,但是作为动态语言,即使确定是字符串连接,依然要判断二者是否是 string;直接看 zend_ini_add_string 的代码 php/php-src
static void zend_ini_add_string(zval *result, zval *op1, zval *op2) {
...
   if (Z_TYPE_P(op1) != IS_STRING) { .... }
if (Z_TYPE_P(op2) != IS_STRING) {....}
}
Perl和PHP用$修饰变量的好处是变量的命名不受关键词和保留字约束,跟常量名和函数名区分,一目了然,还能简化字符串插值(模板字符串).
我就不说这直接取消了正常路径下把函数(以及类作为一种函数)当作第一成员的方法。说了 phper 也听不懂。
说能简化模板我觉得也太扯了,来看看 js
  1. `JS can evaluate expression inside template, like ${IS_DEV ? 'development' : 'production'}`
复制代码
然后 hs
  1. [r|Haskell can have expression inside bracket like $(DEV $> "Dev"  return "Production")|]
复制代码

然后 php 呢?
  1. $isDevString = IS_DEV ? "DEV" : "PROD";return "PHP cannot have expression inside string, and you must write like $isDevString"
复制代码

不过我也能理解,php 5.3 那群人对 PL 的理解和 @eechen 不相上下,所以写出了那么难看的闭包实现。


实际上为什么 php 用 $ 呢;因为他们早期实现者不会写 parser,用 lex 时来将 $ 强行作为变量美滋滋。
PS: Php 后期似乎支持了 template 中加 expression(没有测过),但是语法是 {${expr}} 两层括号....听说有人说 php 的模板字符串是简化的
更新:{${}}  里面无法加入 expression。
6#
热心回应  16级独孤 | 2019-8-19 01:17:20 发帖IP地址来自
世界上只有两种语言: 没人用的和经常被人喷的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:31799
帖子:6375
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP