首页系统为什么程序员都黑php,程序员可以黑别人网站吗

为什么程序员都黑php,程序员可以黑别人网站吗

编程之家2024-05-23114次浏览

一、为什么有些程序员看不起PHP这门语言

对于计算机语言的使用者程序员来讲是存在鄙视链的,看不清php的直接说就是用JAVA的。JAVA吹的厉害,积累了很多脑残粉儿,到处黑php。JAVA和php竞争了很长时间,原来php在web开发,JAVA主要在做toB项目,到了后来,也就10年开始,移动互联网大发展,大量的JAVA程序员涌入互联网,有做客户端的,就是安卓,有做后端的。JAVA生态好于php,又吸引很多脑残粉加入,所以人数太多了。

为什么程序员都黑php,程序员可以黑别人网站吗

他们大肆污蔑php,996的大部分是这帮孙子。给人的感觉是程序员看不起php,其实是歧视php的人在傻逼996被人剥削,而phper基本在创业发财或单干休闲。

二、为什么会有人黑PHP

好吧,作为一名从事PHP开发近9年的开发者,我来说说为什么PHP最容易招黑。

首先,纵观全网,貌似只看到过“PHP是世界上最好的语言,没有之一”,而没有其它语言敢号称是世界上最好的语言,所以激起不以数计的开发者声讨PHP。

其实PHP招黑只是片面觉得被黑了,其实任何一种语言都会被黑,在开发界也有不同语言的鄙视链,比如:

汇编工程师瞧不起C语言工程师↘

C语言工程师瞧不起C++↘

为什么程序员都黑php,程序员可以黑别人网站吗

C++看不上Java↘

Java看不上C#↘

C#看不上把#号读成“井号”的工程师↘

C#看不上PHP

PHP看不上JS

JS看不上Python

为什么程序员都黑php,程序员可以黑别人网站吗

.....等等.....

上面是每个程序员心里都有的鄙视链,但抛开心里因素,PHP虽然在语言上简单、函数库强大、运行效率也不低,但它毕竟是弱类型语言,而且充斥着大量“语法糖”,所以给开发者的感觉是“坑”很多。

最后,每种语言都有它存在的价值,PHP也不例外,但说出“PHP是世界上最好的语言,没有之一”就过分了哦~

三、为什么很多开发人员痛恨PHP

PHP不适合于比小型业余网站更大的网站。

1.对递归的不良支持

递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。有一个使用递归的例子是快速排序(quicksort)。不幸的是,PHP并不擅长递归。Zeev,一个PHP开发人员,说道:“PHP4.0(Zend)对密集数据使用了栈方式,而不是使用堆方式。也就是说它能容忍的递归函数的数量限制和其他语言比起来明显少。”见bug1901。这是一个很不好的借口。每一个编程语言都应该提供良好的递归支持。

2.许多PHP模块都不是线程安全的

在几年前,Apache发布了Web服务器的2.0版。这个版本支持多线程模式,在这个模式下,软件一个一部分可以同时运行多个。PHP的发明者说PHP的核心是线程安全的,但是非核心模块不一定是。但是十次有九次,你想要在PHP脚本中使用这种模块,但这又使你的脚本不能合适Apache的多线程模式。这也是为什么PHP小组不推荐在Apache2的多线程模式下运行PHP。不良的多线程模式支持使PHP常被认为是Apache2依然不流行的原因之一。

3.PHP因为商业应用而残废

通过使用缓存,PHP的性能可以陡增500%[见基准测试]。那么为什么缓存没有被构建在PHP中呢?因为Zend——PHP的制造者,它在销售自己的ZendAccelerator,所以当然,他们不想抛弃自己的商业产品这块肥肉。

但是有另一个可选择的:APC.(Zend后来推出ZendOptimizer,免费的加速器——译者)

4.没有命名空间

设想某个人制作了一个PHP模块用来阅读文件。模块中一个函数叫做read。然后另一个人的模块可以读取网页的,同样包含一个函数read。然后我们就无法同时使用这两个模块了,因为PHP不知道你要用哪个函数。

但是有一个很简单的解决方法,那就是命名空间。曾经有人建议PHP5加入这个特性,但不幸得是他没有这么做。现在,没有命名空间,每个函数都必须加上模块名作为前缀,来避免名称冲突。这导致了函数名恐怖得长,例如xsl_xsltprocessor_transform_to_xml让代码难于书写和理解。

5.不标准的日期格式字符

很多程序员对日期格式字符都很熟悉,它是从UNIX和C语言中来的。其他一些编程语言采用了这个标准,但是很奇怪的,PHP有它自己的一套完全不兼容的日期格式字符。在C中,“%j”表示一年中的当天,在PHP中他表示一个月中的当天。然而使事情更混乱的是:Smarty(一个很流行的PHP模版引擎)的strftime函数和date_format函数,却使用了C/UNIX的格式化字符。

6.混乱的许可证

你也许认为PHP是免费的,所有的在手册中提到的PHP模块也是免费的。错了!例如,如果你想在PHP中生成PDF文件,你会在手册中发现两个模块:PDF和ClibPDF。但是这两个都是有商业许可证的。所以,你所使用的每个模块,你都要确保你同意他的许可证。

7.不一致的函数命名规则

有些函数名称是有多个单词组成的。一般有三种单词组合的习惯:

直接拼接:getnumberoffiles

用下划线分开:get_number_of_files

骆驼法则:getNumberOfFiles

大部分语言选择其中一中。但是PHP都用到了。

例如,你想要把一些特殊字符转换成HTML实体,你会使用函数htmlentities(直接拼接单词)。如果你要使用相反的功能,你要用到它的小弟弟html_entity_decode。由于某些特殊的原因,这个函数名是由下划线分隔单词。怎么能这样呢?你知道有一个函数叫strpad。或者他是str_pad?每次你都要查看一下到底这个符号是什么或者直接等他出现一个错误。函数是不分大小写的,所以对于PHP来说rawurldecode和RawUrlDecode之间没有什么区别。这也很糟糕,因为两个都使用到了同时他们看上去还不一样,混淆了阅读者。

8.魔法引用的地狱

魔法引用(Magicquote)可以保护PHP脚本免受SQL注入攻击。这很好。但是出于某些原因,你可以在php.ini中关闭这个配置。所以你如果要写出一个有弹性的脚本,你总要检查魔法引用是开启还是关闭。这样一个“特性”应该让编程更简单,而事实上变得更复杂了。

9.缺少标准框架

一个成长中的网站没有一个整体框架,最终会变成维护的噩梦。一个框架可以让很多工作变得简单。现在最流行的框架模型时MVC-模型,在其中表现层、业务逻辑和数据库访问都分离开了。

led显示屏的主要厂家(国内led显示屏排名)方舟生存进化联机教程?方舟怎么邀请好友进房间